My agentic slop goes here. Not intended for anyone else!
at main 2.3 kB view raw
1(** Test demonstrating the unified Jmap API *) 2 3let test_module_aliases () = 4 (* Using the clean, ergonomic unified Jmap module *) 5 let id1 = Jmap.Id.of_string "test123" in 6 let id2 = Jmap.Id.of_string "test456" in 7 8 assert (Jmap.Id.to_string id1 = "test123"); 9 assert (Jmap.Id.to_string id2 = "test456"); 10 11 (* Test capability creation *) 12 let caps = [Jmap.Capability.core; Jmap.Capability.mail] in 13 assert (List.length caps = 2); 14 15 (* Test primitives *) 16 let limit = Jmap.Primitives.UnsignedInt.of_int 10 in 17 assert (Jmap.Primitives.UnsignedInt.to_int limit = 10); 18 19 (* Test comparator *) 20 let sort = Jmap.Comparator.v ~property:"receivedAt" ~is_ascending:false () in 21 assert (Jmap.Comparator.property sort = "receivedAt"); 22 assert (not (Jmap.Comparator.is_ascending sort)); 23 24 print_endline "✓ Unified Jmap module API works correctly"; 25 print_endline " - Short aliases: Jmap.Id, Jmap.Capability, etc."; 26 print_endline " - Mail modules: Jmap.Email, Jmap.Mailbox, etc."; 27 print_endline " - Client API: Jmap.Client" 28 29let test_mail_module_aliases () = 30 (* The unified module provides direct access to mail modules *) 31 let account_id = Jmap.Id.of_string "test-account" in 32 let limit = Jmap.Primitives.UnsignedInt.of_int 10 in 33 34 let query_req = Jmap.Email.Query.request_v 35 ~account_id 36 ~limit 37 ~calculate_total:true 38 () 39 in 40 41 (* Verify it works *) 42 let _json = Jmap.Email.Query.request_to_json query_req in 43 44 print_endline "✓ Unified mail module aliases work"; 45 print_endline " - Jmap.Email, Jmap.Mailbox, Jmap.Thread"; 46 print_endline " - Clean and ergonomic" 47 48let test_submodule_aliases () = 49 (* You can also use the submodules directly for specialized use *) 50 let id1 = Jmap_core.Id.of_string "test123" in 51 let id2 = Jmap_mail.Email.Query.request_v 52 ~account_id:id1 53 ~limit:(Jmap_core.Primitives.UnsignedInt.of_int 5) 54 () 55 in 56 let _json = Jmap_mail.Email.Query.request_to_json id2 in 57 58 print_endline "✓ Submodule access works"; 59 print_endline " - Jmap_core.Id, Jmap_mail.Email"; 60 print_endline " - For specialized use cases" 61 62let () = 63 print_endline "=== Testing Unified Jmap API ===\n"; 64 test_module_aliases (); 65 print_endline ""; 66 test_mail_module_aliases (); 67 print_endline ""; 68 test_submodule_aliases (); 69 print_endline "\n✓ All tests passed!"