summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Nolan <samnolan555@gmail.com>2019-11-19 19:41:52 +1100
committerEugen Wissner <belka@caraus.de>2019-11-21 08:51:42 +0100
commit73e21661b413192c26a539141a44b0c25e8c2aa9 (patch)
tree63aed2599b69b5b62479ca769e75b5a87e695d0b
parent7b92e5bcfded2a592b9be25d0865d26320421570 (diff)
downloadgraphql-73e21661b413192c26a539141a44b0c25e8c2aa9.tar.gz
Fix failed parsing on multiple required arguments
Fixes #25.
-rw-r--r--src/Language/GraphQL/AST/Lexer.hs8
-rw-r--r--tests/Language/GraphQL/AST/LexerSpec.hs4
-rw-r--r--tests/Language/GraphQL/AST/ParserSpec.hs6
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
+ }|]