My agentic slop goes here. Not intended for anyone else!
1(* Simple test for Zulip client with requests library *)
2
3let test_auth () =
4 Printf.printf "Testing Zulip authentication...\n";
5 match Zulip.Auth.from_zuliprc ~path:"~/.zuliprc" () with
6 | Ok auth ->
7 Printf.printf "Successfully loaded auth:\n";
8 Printf.printf " Server: %s\n" (Zulip.Auth.server_url auth);
9 Printf.printf " Email: %s\n" (Zulip.Auth.email auth);
10 auth
11 | Error e ->
12 Printf.eprintf "Failed to load auth: %s\n" (Zulip.error_message e);
13 (* Create a test auth *)
14 Zulip.Auth.create
15 ~server_url:"https://example.zulipchat.com"
16 ~email:"bot@example.com"
17 ~api_key:"test_api_key"
18
19let test_message_send env auth =
20 Printf.printf "\nTesting message send...\n";
21
22 Eio.Switch.run @@ fun sw ->
23 let client = Zulip.Client.create ~sw env auth in
24
25 (* Create a test message *)
26 let message = Zulip.Message.create
27 ~type_:`Channel
28 ~to_:["general"]
29 ~topic:"Test Topic"
30 ~content:"Hello from OCaml Zulip client using requests library!"
31 ()
32 in
33
34 match Zulip.Messages.send client message with
35 | Ok response ->
36 Printf.printf "Message sent successfully!\n";
37 Printf.printf "Message ID: %d\n" (Zulip.Message_response.id response)
38 | Error e ->
39 Printf.eprintf "Failed to send message: %s\n" (Zulip.error_message e)
40
41let test_fetch_messages env auth =
42 Printf.printf "\nTesting message fetch...\n";
43
44 Eio.Switch.run @@ fun sw ->
45 let client = Zulip.Client.create ~sw env auth in
46
47 match Zulip.Messages.get_messages client ~num_before:5 ~num_after:0 () with
48 | Ok json ->
49 Printf.printf "Fetched messages successfully!\n";
50 (match json with
51 | Jsont.Object (fields, _) ->
52 let assoc = List.map (fun ((k, _), v) -> (k, v)) fields in
53 (match List.assoc_opt "messages" assoc with
54 | Some (Jsont.Array (messages, _)) ->
55 Printf.printf "Got %d messages\n" (List.length messages)
56 | _ -> Printf.printf "No messages field found\n")
57 | _ -> Printf.printf "Unexpected JSON format\n")
58 | Error e ->
59 Printf.eprintf "Failed to fetch messages: %s\n" (Zulip.error_message e)
60
61let () =
62 Printf.printf "Zulip OCaml Client Test\n";
63 Printf.printf "========================\n\n";
64
65 Eio_main.run @@ fun env ->
66
67 (* Test authentication *)
68 let auth = test_auth () in
69
70 (* Test sending a message *)
71 test_message_send env auth;
72
73 (* Test fetching messages *)
74 test_fetch_messages env auth;
75
76 Printf.printf "\nAll tests completed!\n"