forked from
anil.recoil.org/ocaml-requests
A batteries included HTTP/1.1 client in OCaml
1(*---------------------------------------------------------------------------
2 Copyright (c) 2025 Anil Madhavapeddy <anil@recoil.org>. All rights reserved.
3 SPDX-License-Identifier: ISC
4 ---------------------------------------------------------------------------*)
5
6(** Tests for Timeout module *)
7
8module Timeout = Requests.Timeout
9
10(** {1 none Tests} *)
11
12let test_none () =
13 let t = Timeout.none in
14 Alcotest.(check (option (float 0.001))) "connect" None (Timeout.connect t);
15 Alcotest.(check (option (float 0.001))) "read" None (Timeout.read t);
16 Alcotest.(check (option (float 0.001))) "total" None (Timeout.total t);
17 Alcotest.(check (option (float 0.001)))
18 "expect_100_continue" None
19 (Timeout.expect_100_continue t)
20
21(** {1 default Tests} *)
22
23let test_default () =
24 let t = Timeout.default in
25 Alcotest.(check (option (float 0.001)))
26 "connect" (Some 10.0) (Timeout.connect t);
27 Alcotest.(check (option (float 0.001))) "read" (Some 30.0) (Timeout.read t);
28 Alcotest.(check (option (float 0.001))) "total" None (Timeout.total t);
29 Alcotest.(check (option (float 0.001)))
30 "expect_100_continue" (Some 1.0)
31 (Timeout.expect_100_continue t)
32
33(** {1 create Tests} *)
34
35let test_create_with_values () =
36 let t = Timeout.v ~connect:5.0 ~read:15.0 () in
37 Alcotest.(check (option (float 0.001)))
38 "connect" (Some 5.0) (Timeout.connect t);
39 Alcotest.(check (option (float 0.001))) "read" (Some 15.0) (Timeout.read t);
40 Alcotest.(check (option (float 0.001))) "total" None (Timeout.total t);
41 Alcotest.(check (option (float 0.001)))
42 "expect_100_continue" None
43 (Timeout.expect_100_continue t)
44
45let test_create_no_args () =
46 let t = Timeout.v () in
47 Alcotest.(check (option (float 0.001))) "connect" None (Timeout.connect t);
48 Alcotest.(check (option (float 0.001))) "read" None (Timeout.read t);
49 Alcotest.(check (option (float 0.001))) "total" None (Timeout.total t);
50 Alcotest.(check (option (float 0.001)))
51 "expect_100_continue" None
52 (Timeout.expect_100_continue t)
53
54let test_create_all_fields () =
55 let t =
56 Timeout.v ~connect:1.0 ~read:2.0 ~total:10.0 ~expect_100_continue:0.5 ()
57 in
58 Alcotest.(check (option (float 0.001)))
59 "connect" (Some 1.0) (Timeout.connect t);
60 Alcotest.(check (option (float 0.001))) "read" (Some 2.0) (Timeout.read t);
61 Alcotest.(check (option (float 0.001))) "total" (Some 10.0) (Timeout.total t);
62 Alcotest.(check (option (float 0.001)))
63 "expect_100_continue" (Some 0.5)
64 (Timeout.expect_100_continue t)
65
66(** {1 Test Suite} *)
67
68let suite =
69 ( "timeout",
70 [
71 Alcotest.test_case "all fields None" `Quick test_none;
72 Alcotest.test_case "has expected defaults" `Quick test_default;
73 Alcotest.test_case "with connect and read" `Quick test_create_with_values;
74 Alcotest.test_case "no args all None" `Quick test_create_no_args;
75 Alcotest.test_case "all fields set" `Quick test_create_all_fields;
76 ] )