summaryrefslogtreecommitdiff
path: root/tests/Test
diff options
context:
space:
mode:
Diffstat (limited to 'tests/Test')
-rw-r--r--tests/Test/KitchenSinkSpec.hs50
1 files changed, 47 insertions, 3 deletions
diff --git a/tests/Test/KitchenSinkSpec.hs b/tests/Test/KitchenSinkSpec.hs
index f9f9395..0a6bb91 100644
--- a/tests/Test/KitchenSinkSpec.hs
+++ b/tests/Test/KitchenSinkSpec.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE QuasiQuotes #-}
module Test.KitchenSinkSpec
( spec
) where
@@ -16,10 +18,11 @@ import Test.Hspec.Expectations ( expectationFailure
import Text.Megaparsec ( errorBundlePretty
, parse
)
+import Text.RawString.QQ (r)
spec :: Spec
-spec = describe "Kitchen Sink" $
- it "prints the query" $ do
+spec = describe "Kitchen Sink" $ do
+ it "minifies the query" $ do
dataFileName <- getDataFileName "tests/data/kitchen-sink.graphql"
minFileName <- getDataFileName "tests/data/kitchen-sink.min.graphql"
actual <- Text.IO.readFile dataFileName
@@ -27,5 +30,46 @@ spec = describe "Kitchen Sink" $
either
(expectationFailure . errorBundlePretty)
- (flip shouldBe expected . Encoder.document)
+ (flip shouldBe expected . Encoder.document Encoder.Minified)
+ $ parse Parser.document dataFileName actual
+
+ it "pretty prints the query" $ do
+ dataFileName <- getDataFileName "tests/data/kitchen-sink.graphql"
+ actual <- Text.IO.readFile dataFileName
+ let expected = [r|query queryName($foo:ComplexType,$site:Site=MOBILE){
+whoever123is:node(id:[123,456]){
+id
+... on User@defer{
+field2{
+id
+alias:field1(first:10,after:$foo)@include(if:$foo){
+id
+...frag
+}
+}
+}
+}
+}
+
+mutation likeStory{
+like(story:123)@defer{
+story{
+id
+}
+}
+}
+
+fragment frag on Friend{
+foo(size:$size,bar:$b,obj:{key:"value"})
+}
+
+{
+unnamed(truthy:true,falsey:false)
+query
+}
+|]
+
+ either
+ (expectationFailure . errorBundlePretty)
+ (flip shouldBe expected . Encoder.document (Encoder.Pretty 0))
$ parse Parser.document dataFileName actual