module Test.StyleSpec (spec) where import Data.Map.Strict qualified as M import Skeletest import Web.View import Web.View.Style ((-.)) import Web.View.Types (Attributes (..), Class (..), selector) import Prelude hiding (span) spec :: Spec spec = do describe "Style Class" $ do it "should compile, and set both the className and styles" $ do let as = list Decimal mempty length (M.elems as.classes) `shouldBe` 1 [c] <- pure $ M.elems as.classes c.selector `shouldBe` selector "list-decimal" c.properties `shouldBe` M.fromList [("list-style-type", "decimal")] it "should work with outside member None" $ do let as = list None mempty length (M.elems as.classes) `shouldBe` 1 [c] <- pure $ M.elems as.classes c.selector `shouldBe` selector "list-none" c.properties `shouldBe` M.fromList [("list-style-type", "none")] describe "ToClassName" $ do it "should hyphenate classnames" $ do "woot" -. None `shouldBe` "woot-none" it "should not hyphenate with empty suffix" $ do "woot" -. () `shouldBe` "woot"