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]