exon-1.0.0.0: test/Exon/Test/BuildTest.hs
module Exon.Test.BuildTest where
import Hedgehog (TestT, (===))
import Exon.Class.Exon (SkipWs (SkipWs), exonProcess, exonProcessWith, skipWs)
import Exon.Class.ToSegment (toSegment)
import Exon.Data.Segment (Segment (Expression, Whitespace))
newtype Str =
Str String
deriving stock (Eq, Show)
deriving newtype (IsString, Semigroup, Monoid)
segments ::
IsString a =>
NonEmpty (Segment a)
segments =
[
Whitespace " ",
"pre",
Whitespace " ",
Expression (toSegment "exp"),
Whitespace " ",
"post",
Whitespace " "
]
test_build :: TestT IO ()
test_build = do
" pre exp post " === exonProcess @Text segments
"preexppost" === exonProcessWith @(SkipWs Text) SkipWs skipWs segments
" pre exp post " === exonProcess @Str segments
"preexppost" === exonProcessWith @(SkipWs Str) SkipWs skipWs segments