forked from OSS/graphql
		
	Replace gql in Encoder tests with multiline string
This commit is contained in:
		@@ -1,5 +1,4 @@
 | 
			
		||||
{-# LANGUAGE OverloadedStrings #-}
 | 
			
		||||
{-# LANGUAGE QuasiQuotes #-}
 | 
			
		||||
module Language.GraphQL.AST.LexerSpec
 | 
			
		||||
    ( spec
 | 
			
		||||
    ) where
 | 
			
		||||
@@ -7,7 +6,6 @@ module Language.GraphQL.AST.LexerSpec
 | 
			
		||||
import Data.Text (Text)
 | 
			
		||||
import Data.Void (Void)
 | 
			
		||||
import Language.GraphQL.AST.Lexer
 | 
			
		||||
import Language.GraphQL.TH
 | 
			
		||||
import Test.Hspec (Spec, context, describe, it)
 | 
			
		||||
import Test.Hspec.Megaparsec (shouldParse, shouldFailOn, shouldSucceedOn)
 | 
			
		||||
import Text.Megaparsec (ParseErrorBundle, parse)
 | 
			
		||||
@@ -19,38 +17,39 @@ spec = describe "Lexer" $ do
 | 
			
		||||
            parse unicodeBOM "" `shouldSucceedOn` "\xfeff"
 | 
			
		||||
 | 
			
		||||
        it "lexes strings" $ do
 | 
			
		||||
            parse string "" [gql|"simple"|] `shouldParse` "simple"
 | 
			
		||||
            parse string "" [gql|" white space "|] `shouldParse` " white space "
 | 
			
		||||
            parse string "" [gql|"quote \""|] `shouldParse` [gql|quote "|]
 | 
			
		||||
            parse string "" [gql|"escaped \n"|] `shouldParse` "escaped \n"
 | 
			
		||||
            parse string "" [gql|"slashes \\ \/"|] `shouldParse` [gql|slashes \ /|]
 | 
			
		||||
            parse string "" [gql|"unicode \u1234\u5678\u90AB\uCDEF"|]
 | 
			
		||||
            parse string "" "\"simple\"" `shouldParse` "simple"
 | 
			
		||||
            parse string "" "\" white space \"" `shouldParse` " white space "
 | 
			
		||||
            parse string "" "\"quote \\\"\"" `shouldParse` "quote \""
 | 
			
		||||
            parse string "" "\"escaped \\n\"" `shouldParse` "escaped \n"
 | 
			
		||||
            parse string "" "\"slashes \\\\ \\/\"" `shouldParse` "slashes \\ /"
 | 
			
		||||
            parse string "" "\"unicode \\u1234\\u5678\\u90AB\\uCDEF\""
 | 
			
		||||
                `shouldParse` "unicode ሴ噸邫췯"
 | 
			
		||||
 | 
			
		||||
        it "lexes block string" $ do
 | 
			
		||||
            parse blockString "" [gql|"""simple"""|] `shouldParse` "simple"
 | 
			
		||||
            parse blockString "" [gql|""" white space """|]
 | 
			
		||||
            parse blockString "" "\"\"\"simple\"\"\"" `shouldParse` "simple"
 | 
			
		||||
            parse blockString "" "\"\"\" white space \"\"\""
 | 
			
		||||
                `shouldParse` " white space "
 | 
			
		||||
            parse blockString "" [gql|"""contains " quote"""|]
 | 
			
		||||
                `shouldParse` [gql|contains " quote|]
 | 
			
		||||
            parse blockString "" [gql|"""contains \""" triplequote"""|]
 | 
			
		||||
                `shouldParse` [gql|contains """ triplequote|]
 | 
			
		||||
            parse blockString "" "\"\"\"contains \" quote\"\"\""
 | 
			
		||||
                `shouldParse` "contains \" quote"
 | 
			
		||||
            parse blockString "" "\"\"\"contains \\\"\"\" triplequote\"\"\""
 | 
			
		||||
                `shouldParse` "contains \"\"\" triplequote"
 | 
			
		||||
            parse blockString "" "\"\"\"multi\nline\"\"\"" `shouldParse` "multi\nline"
 | 
			
		||||
            parse blockString "" "\"\"\"multi\rline\r\nnormalized\"\"\""
 | 
			
		||||
                `shouldParse` "multi\nline\nnormalized"
 | 
			
		||||
            parse blockString "" "\"\"\"multi\rline\r\nnormalized\"\"\""
 | 
			
		||||
                `shouldParse` "multi\nline\nnormalized"
 | 
			
		||||
            parse blockString "" [gql|"""unescaped \n\r\b\t\f\u1234"""|]
 | 
			
		||||
                `shouldParse` [gql|unescaped \n\r\b\t\f\u1234|]
 | 
			
		||||
            parse blockString "" [gql|"""slashes \\ \/"""|]
 | 
			
		||||
                `shouldParse` [gql|slashes \\ \/|]
 | 
			
		||||
            parse blockString "" [gql|"""
 | 
			
		||||
 | 
			
		||||
                spans
 | 
			
		||||
                  multiple
 | 
			
		||||
                    lines
 | 
			
		||||
 | 
			
		||||
                """|] `shouldParse` "spans\n  multiple\n    lines"
 | 
			
		||||
            parse blockString "" "\"\"\"unescaped \\n\\r\\b\\t\\f\\u1234\"\"\""
 | 
			
		||||
                `shouldParse` "unescaped \\n\\r\\b\\t\\f\\u1234"
 | 
			
		||||
            parse blockString "" "\"\"\"slashes \\\\ \\/\"\"\""
 | 
			
		||||
                `shouldParse` "slashes \\\\ \\/"
 | 
			
		||||
            parse blockString "" "\"\"\"\n\
 | 
			
		||||
                \\n\
 | 
			
		||||
                \  spans\n\
 | 
			
		||||
                \    multiple\n\
 | 
			
		||||
                \      lines\n\
 | 
			
		||||
                \\n\
 | 
			
		||||
                \\"\"\""
 | 
			
		||||
                `shouldParse` "spans\n  multiple\n    lines"
 | 
			
		||||
 | 
			
		||||
        it "lexes numbers" $ do
 | 
			
		||||
            parse integer "" "4" `shouldParse` (4 :: Int)
 | 
			
		||||
@@ -84,7 +83,7 @@ spec = describe "Lexer" $ do
 | 
			
		||||
 | 
			
		||||
    context "Implementation tests" $ do
 | 
			
		||||
        it "lexes empty block strings" $
 | 
			
		||||
            parse blockString "" [gql|""""""|] `shouldParse` ""
 | 
			
		||||
            parse blockString "" "\"\"\"\"\"\"" `shouldParse` ""
 | 
			
		||||
        it "lexes ampersand" $
 | 
			
		||||
            parse amp "" "&" `shouldParse` "&"
 | 
			
		||||
        it "lexes schema extensions" $
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user