stringbuilder-0.1.0: test/Spec.hs
{-# LANGUAGE OverloadedStrings #-}
{-# OPTIONS_GHC -fno-warn-unused-do-bind #-}
module Main (main, spec) where
import Test.Hspec.ShouldBe
import Data.String
import Data.String.Builder
main :: IO ()
main = hspecX spec
spec :: Specs
spec = do
describe "build" $ do
it "can be used to construct multi-line string literals in a monadic way" $ do
build $ do
"foo"
"bar"
"baz"
`shouldBe` "foo\nbar\nbaz\n"
prop "works for arbitrary input" $ do
\l -> (build . sequence_ . map fromString) l == unlines l