diff options
| author | Eugen Wissner <belka@caraus.de> | 2019-07-31 05:40:17 +0200 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2019-07-31 05:40:17 +0200 |
| commit | 4812c8f039b72bb8fae083838dd949f7095f2eee (patch) | |
| tree | 6224d163e019dcee9c28082598128fb26393d114 /tests/Test/KitchenSinkSpec.hs | |
| parent | d690d22ce89891e990ec275ea9dc196d17decb44 (diff) | |
| download | graphql-4812c8f039b72bb8fae083838dd949f7095f2eee.tar.gz | |
Introduce formatter type for the encoder
... to distinguish between minified and pretty printing.
Diffstat (limited to 'tests/Test/KitchenSinkSpec.hs')
| -rw-r--r-- | tests/Test/KitchenSinkSpec.hs | 50 |
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 |
