diff --git a/src/Language/GraphQL/AST/Lexer.hs b/src/Language/GraphQL/AST/Lexer.hs index 97a334c..f4111a9 100644 --- a/src/Language/GraphQL/AST/Lexer.hs +++ b/src/Language/GraphQL/AST/Lexer.hs @@ -89,12 +89,12 @@ symbol :: T.Text -> Parser T.Text symbol = Lexer.symbol spaceConsumer -- | Parser for "!". -bang :: Parser Char -bang = char '!' +bang :: Parser T.Text +bang = symbol "!" -- | Parser for "$". -dollar :: Parser Char -dollar = char '$' +dollar :: Parser T.Text +dollar = symbol "$" -- | Parser for "@". at :: Parser Char diff --git a/tests/Language/GraphQL/AST/LexerSpec.hs b/tests/Language/GraphQL/AST/LexerSpec.hs index b1c280f..a0acb9f 100644 --- a/tests/Language/GraphQL/AST/LexerSpec.hs +++ b/tests/Language/GraphQL/AST/LexerSpec.hs @@ -71,8 +71,8 @@ spec = describe "Lexer" $ do parse float "" "-1.123e4567" `shouldParse` (-1.123e4567) it "lexes punctuation" $ do - parse bang "" "!" `shouldParse` '!' - parse dollar "" "$" `shouldParse` '$' + parse bang "" "!" `shouldParse` "!" + parse dollar "" "$" `shouldParse` "$" runBetween parens `shouldSucceedOn` "()" parse spread "" "..." `shouldParse` "..." parse colon "" ":" `shouldParse` ":" diff --git a/tests/Language/GraphQL/AST/ParserSpec.hs b/tests/Language/GraphQL/AST/ParserSpec.hs index 8473d73..3e20e8f 100644 --- a/tests/Language/GraphQL/AST/ParserSpec.hs +++ b/tests/Language/GraphQL/AST/ParserSpec.hs @@ -24,3 +24,9 @@ spec = describe "Parser" $ do parse document "" `shouldSucceedOn` [r|{ hello(text: "Argument") }|] + + it "accepts two required arguments" $ + parse document "" `shouldSucceedOn` [r| + mutation auth($username: String!, $password: String!){ + test + }|]