OCaml client for the Slack Web API
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 56 lines 2.0 kB view raw
1let decode_ok codec s = 2 match Json.of_string codec s with 3 | Ok v -> v 4 | Error e -> Alcotest.failf "decode error: %s" (Json.Error.to_string e) 5 6let roundtrip codec v = 7 let s = Json.to_string codec v in 8 match Json.of_string codec s with 9 | Ok v' -> v' 10 | Error e -> 11 Alcotest.failf "decode error on roundtrip: %s\njson: %s" 12 (Json.Error.to_string e) s 13 14let test_decode () = 15 let json = {|{"id":"T123","name":"My Team","domain":"myteam"}|} in 16 let t = decode_ok Slack.Team.json json in 17 let expected = Slack.Team.v ~id:"T123" ~name:"My Team" ~domain:"myteam" () in 18 Alcotest.(check bool) "equal" true (Slack.Team.equal t expected) 19 20let test_decode_with_email_domain () = 21 let json = 22 {|{"id":"T1","name":"Team","domain":"team","email_domain":"team.com"}|} 23 in 24 let t = decode_ok Slack.Team.json json in 25 let expected = 26 Slack.Team.v ~id:"T1" ~name:"Team" ~domain:"team" ~email_domain:"team.com" 27 () 28 in 29 Alcotest.(check bool) "with email_domain" true (Slack.Team.equal t expected) 30 31let test_roundtrip () = 32 let t = Slack.Team.v ~id:"T1" ~name:"Team" ~domain:"team" () in 33 let t' = roundtrip Slack.Team.json t in 34 Alcotest.(check bool) "roundtrip" true (Slack.Team.equal t t') 35 36let test_pp () = 37 let t = Slack.Team.v ~id:"T1" ~name:"My Team" ~domain:"myteam" () in 38 let s = Fmt.str "%a" Slack.Team.pp t in 39 Alcotest.(check string) "pp" "Team(My Team: myteam.slack.com)" s 40 41let test_minimal () = 42 let json = {|{}|} in 43 let t = decode_ok Slack.Team.json json in 44 let expected = Slack.Team.v ~id:"" ~name:"" ~domain:"" () in 45 Alcotest.(check bool) "minimal defaults" true (Slack.Team.equal t expected) 46 47let suite = 48 ( "team", 49 [ 50 Alcotest.test_case "decode" `Quick test_decode; 51 Alcotest.test_case "decode with email_domain" `Quick 52 test_decode_with_email_domain; 53 Alcotest.test_case "roundtrip" `Quick test_roundtrip; 54 Alcotest.test_case "pp" `Quick test_pp; 55 Alcotest.test_case "minimal" `Quick test_minimal; 56 ] )