module FreeC.IR.Syntax.ModuleTests ( testModuleSyntax ) where
import Test.Hspec
import FreeC.Pretty
import FreeC.Test.Parser
shouldPrettyPrintModule :: [String] -> Expectation
shouldPrettyPrintModule inputs = do
node <- expectParseTestModule inputs
lines (showPretty node) `shouldBe` inputs
testModuleSyntax :: Spec
testModuleSyntax = describe "FreeC.IR.Syntax.Module" $ do
context "instance (Pretty IR.Module)" $ do
it "separates top-level entries with semi-colons" $ do
shouldPrettyPrintModule ["module M where", "foo = 42;", "bar = 1337"]