Tailwind classes in OCaml
at main 2.0 kB view raw
1open Tailwind 2 3let test_color_basic () = 4 let blue = Color.make `Blue () in 5 let bg_class = Color.bg blue in 6 Alcotest.(check string) "basic blue background" "bg-blue-500" (Css.to_string bg_class) 7 8let test_color_with_variant () = 9 let light_blue = Color.make `Blue ~variant:`V300 () in 10 let bg_class = Color.bg light_blue in 11 Alcotest.(check string) "blue-300 background" "bg-blue-300" (Css.to_string bg_class) 12 13let test_color_with_opacity () = 14 let semi_blue = Color.make `Blue ~opacity:50 () in 15 let bg_class = Color.bg semi_blue in 16 Alcotest.(check string) "blue with opacity" "bg-blue-500/50" (Css.to_string bg_class) 17 18let test_color_text () = 19 let red = Color.make `Red ~variant:`V600 () in 20 let text_class = Color.text red in 21 Alcotest.(check string) "red text" "text-red-600" (Css.to_string text_class) 22 23let test_color_border () = 24 let green = Color.make `Green ~variant:`V400 () in 25 let border_class = Color.border green in 26 Alcotest.(check string) "green border" "border-green-400" (Css.to_string border_class) 27 28let test_color_ring () = 29 let purple = Color.make `Purple ~variant:`V500 () in 30 let ring_class = Color.ring purple in 31 Alcotest.(check string) "purple ring" "ring-purple-500" (Css.to_string ring_class) 32 33(* Additional edge case tests *) 34let test_opacity_edge_cases () = 35 let transparent = Color.make `Blue ~opacity:0 () in 36 let opaque = Color.make `Blue ~opacity:100 () in 37 let bg1 = Color.bg transparent in 38 let bg2 = Color.bg opaque in 39 Alcotest.(check bool) "zero opacity contains /0" (String.contains_s (Css.to_string bg1) "/0"); 40 Alcotest.(check bool) "full opacity contains /100" (String.contains_s (Css.to_string bg2) "/100") 41 42let suite = [ 43 "color_basic", `Quick, test_color_basic; 44 "color_with_variant", `Quick, test_color_with_variant; 45 "color_with_opacity", `Quick, test_color_with_opacity; 46 "color_text", `Quick, test_color_text; 47 "color_border", `Quick, test_color_border; 48 "color_ring", `Quick, test_color_ring; 49 "opacity_edge_cases", `Quick, test_opacity_edge_cases; 50]