Tailwind classes in OCaml
1open Tailwind
2
3let test_css_make () =
4 let css = Css.make "p-4" in
5 Alcotest.(check string) "basic class creation" "p-4" (Css.to_string css)
6
7let test_css_empty () =
8 let empty = Css.empty in
9 Alcotest.(check bool) "empty is empty" true (Css.is_empty empty);
10 Alcotest.(check string) "empty to string" "" (Css.to_string empty)
11
12let test_css_combine () =
13 let c1 = Css.make "p-4" in
14 let c2 = Css.make "m-2" in
15 let combined = Css.combine c1 c2 in
16 Alcotest.(check string) "combine classes" "p-4 m-2" (Css.to_string combined)
17
18let test_css_concat () =
19 let classes = [Css.make "p-4"; Css.make "m-2"; Css.make "bg-blue-500"] in
20 let result = Css.concat classes in
21 Alcotest.(check string) "concat classes" "p-4 m-2 bg-blue-500" (Css.to_string result)
22
23let test_css_deduplication () =
24 let c1 = Css.make "p-4" in
25 let c2 = Css.make "p-4" in
26 let combined = Css.combine c1 c2 in
27 (* Current implementation doesn't deduplicate - this documents current behavior *)
28 Alcotest.(check string) "no deduplication" "p-4 p-4" (Css.to_string combined)
29
30(* Additional edge case tests *)
31let test_css_empty_string () =
32 (* Test empty string handling *)
33 let css = Css.make "" in
34 Alcotest.(check string) "empty string class" "" (Css.to_string css)
35
36let suite = [
37 "css_make", `Quick, test_css_make;
38 "css_empty", `Quick, test_css_empty;
39 "css_combine", `Quick, test_css_combine;
40 "css_concat", `Quick, test_css_concat;
41 "css_deduplication", `Quick, test_css_deduplication;
42 "css_empty_string", `Quick, test_css_empty_string;
43]