1 {-# LANGUAGE OverloadedStrings #-}
6 import Network.URI.Slug
9 import Test.Tasty.HUnit
11 import Examples.E01 qualified as E01
23 [ (E01.Index, ["index.html"])
24 , (E01.About, ["about.html"])
33 [ Node (LayoutNodeSlug "index.html") []
34 , Node (LayoutNodeSlug "about.html") []
35 , Node (LayoutNodeSlug "contact.html") []
41 testEncoder :: String -> Encoder a -> [(a, [Slug])] -> TestTree
42 testEncoder ex site as =
45 (\n (a, expected) -> testCase n $ encode site a @?= expected)
46 (show <$> [1 :: Int ..])
48 testLayouter :: Eq a => Show a => String -> Layouter a -> [Forest LayoutNode] -> TestTree
49 testLayouter ex site as =
52 (\n expected -> testCase n $ layout site @?= expected)
53 (show <$> [1 :: Int ..])