My agentic slop goes here. Not intended for anyone else!
at jsont 2.5 kB view raw
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"