packages feed

tomland-1.3.3.3: test/Test/Toml/Parser/Examples.hs

module Test.Toml.Parser.Examples
    ( examplesSpec
    ) where

import Data.Either (isRight)
import System.Directory (listDirectory)
import Test.Hspec (Spec, describe, it, runIO, shouldBe)

import Toml.Parser (parse)

import qualified Data.Text.IO as TIO


examplesSpec :: Spec
examplesSpec = describe "Can parse official TOML examples" $ do
    files <- runIO $ listDirectory exampleDir
    mapM_ example files

example :: FilePath -> Spec
example file = it ("can parse file " ++ file) $ do
    toml <- TIO.readFile (exampleDir ++ file)
    isRight (parse toml) `shouldBe` True

exampleDir :: FilePath
exampleDir = "test/examples/"