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 | `O fields ->
52 (match List.assoc_opt "messages" fields with
53 | Some (`A messages) ->
54 Printf.printf "Got %d messages\n" (List.length messages)
55 | _ -> Printf.printf "No messages field found\n")
56 | _ -> Printf.printf "Unexpected JSON format\n")
57 | Error e ->
58 Printf.eprintf "Failed to fetch messages: %s\n" (Zulip.error_message e)
59
60let () =
61 Printf.printf "Zulip OCaml Client Test\n";
62 Printf.printf "========================\n\n";
63
64 Eio_main.run @@ fun env ->
65
66 (* Test authentication *)
67 let auth = test_auth () in
68
69 (* Test sending a message *)
70 test_message_send env auth;
71
72 (* Test fetching messages *)
73 test_fetch_messages env auth;
74
75 Printf.printf "\nAll tests completed!\n"