{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuasiQuotes #-} module Language.GraphQL.AST.ParserSpec ( spec ) where import Language.GraphQL.AST.Parser import Test.Hspec (Spec, describe, it) import Test.Hspec.Megaparsec (shouldSucceedOn) import Text.Megaparsec (parse) import Text.RawString.QQ (r) spec :: Spec spec = describe "Parser" $ do it "accepts BOM header" $ parse document "" `shouldSucceedOn` "\xfeff{foo}" it "accepts block strings as argument" $ parse document "" `shouldSucceedOn` [r|{ hello(text: """Argument""") }|] it "accepts strings as argument" $ parse document "" `shouldSucceedOn` [r|{ hello(text: "Argument") }|] it "accepts two required arguments" $ parse document "" `shouldSucceedOn` [r| mutation auth($username: String!, $password: String!){ test }|]