summaryrefslogtreecommitdiff
path: root/tests/Test/KitchenSinkSpec.hs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/Test/KitchenSinkSpec.hs')
-rw-r--r--tests/Test/KitchenSinkSpec.hs29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/Test/KitchenSinkSpec.hs b/tests/Test/KitchenSinkSpec.hs
new file mode 100644
index 0000000..99a00f7
--- /dev/null
+++ b/tests/Test/KitchenSinkSpec.hs
@@ -0,0 +1,29 @@
+module Test.KitchenSinkSpec
+ ( spec
+ ) where
+
+import qualified Data.Text.IO as Text.IO
+import qualified Language.GraphQL.Encoder as Encoder
+import qualified Language.GraphQL.Parser as Parser
+import Paths_graphql (getDataFileName)
+import Test.Hspec ( Spec
+ , describe
+ , it
+ )
+import Test.Hspec.Expectations ( expectationFailure
+ , shouldBe
+ )
+import Text.Megaparsec ( errorBundlePretty
+ , parse
+ )
+
+spec :: Spec
+spec = describe "Kitchen Sink" $
+ it "prints the query" $ do
+ dataFileName <- getDataFileName "tests/data/kitchen-sink.min.graphql"
+ expected <- Text.IO.readFile dataFileName
+
+ either
+ (expectationFailure . errorBundlePretty)
+ (flip shouldBe expected . Encoder.document)
+ $ parse Parser.document dataFileName expected