6266c5d32f
Rename my //users directory and all places that refer to glittershark to grfn, including nix references and documentation. This may require some extra attention inside of gerrit's database after it lands to allow me to actually push things. Change-Id: I4728b7ec2c60024392c1c1fa6e0d4a59b3e266fa Reviewed-on: https://cl.tvl.fyi/c/depot/+/2933 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in> Reviewed-by: lukegb <lukegb@tvl.fyi> Reviewed-by: glittershark <grfn@gws.fyi>
42 lines
1.7 KiB
Haskell
42 lines
1.7 KiB
Haskell
{-# LANGUAGE BlockArguments #-}
|
|
--------------------------------------------------------------------------------
|
|
module Xanthous.OrphansSpec where
|
|
--------------------------------------------------------------------------------
|
|
import Test.Prelude
|
|
--------------------------------------------------------------------------------
|
|
import Text.Mustache
|
|
import Text.Megaparsec (errorBundlePretty)
|
|
import Graphics.Vty.Attributes
|
|
import qualified Data.Aeson as JSON
|
|
--------------------------------------------------------------------------------
|
|
import Xanthous.Orphans
|
|
--------------------------------------------------------------------------------
|
|
|
|
main :: IO ()
|
|
main = defaultMain test
|
|
|
|
test :: TestTree
|
|
test = testGroup "Xanthous.Orphans"
|
|
[ localOption (QuickCheckTests 50)
|
|
. localOption (QuickCheckMaxSize 10)
|
|
$ testGroup "Template"
|
|
[ testProperty "ppTemplate / compileMustacheText " \tpl ->
|
|
let src = ppTemplate tpl
|
|
res :: Either String Template
|
|
res = over _Left errorBundlePretty
|
|
$ compileMustacheText (templateActual tpl) src
|
|
expected = templateCache tpl ^?! at (templateActual tpl)
|
|
in
|
|
counterexample (unpack src)
|
|
$ Right expected === do
|
|
(Template actual cache) <- res
|
|
maybe (Left "Template not found") Right $ cache ^? at actual
|
|
, testProperty "JSON round trip" $ \(tpl :: Template) ->
|
|
counterexample (unpack $ ppTemplate tpl)
|
|
$ JSON.decode (JSON.encode tpl) === Just tpl
|
|
]
|
|
, testGroup "Attr"
|
|
[ testProperty "JSON round trip" $ \(attr :: Attr) ->
|
|
JSON.decode (JSON.encode attr) === Just attr
|
|
]
|
|
]
|