summaryrefslogtreecommitdiff
path: root/tests/Language/GraphQL/DirectiveSpec.hs
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2022-03-23 21:58:12 +0100
committerEugen Wissner <belka@caraus.de>2022-03-23 22:07:20 +0100
commitc93c64a7f4828a202770b1cfadc79f28aba1da99 (patch)
tree6dcd83f518c486f8db3be716e2dd49de9e9098cd /tests/Language/GraphQL/DirectiveSpec.hs
parent0cf459b8eb9e4847f9b199566d130e816760a0d3 (diff)
downloadgraphql-spice-c93c64a7f4828a202770b1cfadc79f28aba1da99.tar.gz
Put test helpers into Test.Hspec.GraphQL
Diffstat (limited to 'tests/Language/GraphQL/DirectiveSpec.hs')
-rw-r--r--tests/Language/GraphQL/DirectiveSpec.hs36
1 files changed, 16 insertions, 20 deletions
diff --git a/tests/Language/GraphQL/DirectiveSpec.hs b/tests/Language/GraphQL/DirectiveSpec.hs
index 6727c50..fd429a6 100644
--- a/tests/Language/GraphQL/DirectiveSpec.hs
+++ b/tests/Language/GraphQL/DirectiveSpec.hs
@@ -4,19 +4,21 @@
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
+{-# LANGUAGE PackageImports #-}
+
module Language.GraphQL.DirectiveSpec
( spec
) where
-import Data.Aeson (object, (.=))
-import qualified Data.Aeson as Aeson
+import Language.GraphQL.AST.Document (Name)
+import Data.HashMap.Strict (HashMap)
import qualified Data.HashMap.Strict as HashMap
-import Language.GraphQL.Foundation
+import qualified Language.GraphQL as GraphQL
import Language.GraphQL.TH
import Language.GraphQL.Type
import qualified Language.GraphQL.Type.Out as Out
import Test.Hspec (Spec, describe, it)
-import Test.Hspec.GraphQL
+import "graphql-spice" Test.Hspec.GraphQL
experimentalResolver :: Schema IO
experimentalResolver = schema queryType Nothing Nothing mempty
@@ -26,9 +28,6 @@ experimentalResolver = schema queryType Nothing Nothing mempty
$ Out.ValueResolver (Out.Field Nothing (Out.NamedScalarType int) mempty)
$ pure $ Int 5
-emptyObject :: Aeson.Object
-emptyObject = HashMap.singleton "data" $ object []
-
spec :: Spec
spec =
describe "Directive executor" $ do
@@ -39,8 +38,8 @@ spec =
}
|]
- actual <- graphql experimentalResolver sourceQuery
- actual `shouldResolveTo` emptyObject
+ actual <- GraphQL.graphql experimentalResolver Nothing (mempty :: HashMap Name Value) sourceQuery
+ actual `shouldResolveTo` Object mempty
it "should not skip fields if @skip is false" $ do
let sourceQuery = [gql|
@@ -48,11 +47,8 @@ spec =
experimentalField @skip(if: false)
}
|]
- expected = HashMap.singleton "data"
- $ object
- [ "experimentalField" .= (5 :: Int)
- ]
- actual <- graphql experimentalResolver sourceQuery
+ expected = Object $ HashMap.singleton "experimentalField" (Int 5)
+ actual <- GraphQL.graphql experimentalResolver Nothing (mempty :: HashMap Name Value) sourceQuery
actual `shouldResolveTo` expected
it "should skip fields if @include is false" $ do
@@ -62,8 +58,8 @@ spec =
}
|]
- actual <- graphql experimentalResolver sourceQuery
- actual `shouldResolveTo` emptyObject
+ actual <- GraphQL.graphql experimentalResolver Nothing (mempty :: HashMap Name Value) sourceQuery
+ actual `shouldResolveTo` Object mempty
it "should be able to @skip a fragment spread" $ do
let sourceQuery = [gql|
@@ -76,8 +72,8 @@ spec =
}
|]
- actual <- graphql experimentalResolver sourceQuery
- actual `shouldResolveTo` emptyObject
+ actual <- GraphQL.graphql experimentalResolver Nothing (mempty :: HashMap Name Value) sourceQuery
+ actual `shouldResolveTo` Object mempty
it "should be able to @skip an inline fragment" $ do
let sourceQuery = [gql|
@@ -88,5 +84,5 @@ spec =
}
|]
- actual <- graphql experimentalResolver sourceQuery
- actual `shouldResolveTo` emptyObject
+ actual <- GraphQL.graphql experimentalResolver Nothing (mempty :: HashMap Name Value) sourceQuery
+ actual `shouldResolveTo` Object mempty