diff options
| author | Sam Nolan <samnolan555@gmail.com> | 2019-11-19 19:41:52 +1100 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2019-11-21 08:51:42 +0100 |
| commit | 73e21661b413192c26a539141a44b0c25e8c2aa9 (patch) | |
| tree | 63aed2599b69b5b62479ca769e75b5a87e695d0b | |
| parent | 7b92e5bcfded2a592b9be25d0865d26320421570 (diff) | |
| download | graphql-73e21661b413192c26a539141a44b0c25e8c2aa9.tar.gz | |
Fix failed parsing on multiple required arguments
Fixes #25.
| -rw-r--r-- | src/Language/GraphQL/AST/Lexer.hs | 8 | ||||
| -rw-r--r-- | tests/Language/GraphQL/AST/LexerSpec.hs | 4 | ||||
| -rw-r--r-- | tests/Language/GraphQL/AST/ParserSpec.hs | 6 |
3 files changed, 12 insertions, 6 deletions
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 + }|] |
