forked from rescript-lang/rescript
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathjs_undefined_test.ml
24 lines (23 loc) · 948 Bytes
/
js_undefined_test.ml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
open Js_undefined
let suites = Mt.[
"toOption - empty", (fun _ -> Eq(None, empty |> toOption));
__LOC__, (fun _ -> Eq(None, return () |> toOption));
"return", (fun _ -> Eq(Some "something", return "something" |> toOption));
"test - empty", (fun _ -> Eq(true, empty = Js.undefined));
__LOC__, (fun _ -> Eq(true, return () = Js.undefined));
"bind - empty", (fun _ -> Eq(empty, bind empty ((fun v -> v) [@bs])));
"bind - 'a", (fun _ -> Eq(return 4, bind (return 2) ((fun n -> n * 2) [@bs])));
"iter - empty", (fun _ ->
let hit = ref false in
let _ = iter empty ((fun _ -> hit := true) [@bs]) in
Eq(false, !hit)
);
"iter - 'a", (fun _ ->
let hit = ref 0 in
let _ = iter (return 2) ((fun v -> hit := v) [@bs]) in
Eq(2, !hit)
);
"fromOption - None", (fun _ -> Eq(empty, None |> fromOption));
"fromOption - Some", (fun _ -> Eq(return 2, Some 2 |> fromOption));
]
;; Mt.from_pair_suites __MODULE__ suites