packages feed

language-puppet-1.3.8: tests/DT/Parser.hs

module DT.Parser (spec) where

import qualified Data.Text as T
import           Puppet.Parser
import           Puppet.Parser.Types
import           Test.Hspec
import           Test.Hspec.Megaparsec
import           Text.Megaparsec (parse)

spec :: Spec
spec = do
  let prs s r = it s $ parse datatype "?" (T.pack s) `shouldParse` r
      fl s = it s $ shouldFailOn (parse datatype "?") (T.pack s)
  describe "String" $ do
    "String" `prs` DTString Nothing Nothing
    fl "String[]"
    fl "String[4,5,6]"
    "String[5]" `prs` DTString (Just 5) Nothing
    "String[5,8]" `prs` DTString (Just 5) (Just 8)