summaryrefslogtreecommitdiff
path: root/tests/Test/RootOperationSpec.hs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/Test/RootOperationSpec.hs')
-rw-r--r--tests/Test/RootOperationSpec.hs72
1 files changed, 0 insertions, 72 deletions
diff --git a/tests/Test/RootOperationSpec.hs b/tests/Test/RootOperationSpec.hs
deleted file mode 100644
index 9271c61..0000000
--- a/tests/Test/RootOperationSpec.hs
+++ /dev/null
@@ -1,72 +0,0 @@
-{- This Source Code Form is subject to the terms of the Mozilla Public License,
- v. 2.0. If a copy of the MPL was not distributed with this file, You can
- obtain one at https://mozilla.org/MPL/2.0/. -}
-
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE QuasiQuotes #-}
-module Test.RootOperationSpec
- ( spec
- ) where
-
-import Data.Aeson ((.=), object)
-import qualified Data.HashMap.Strict as HashMap
-import Language.GraphQL
-import Test.Hspec (Spec, describe, it)
-import Language.GraphQL.TH
-import Language.GraphQL.Type
-import qualified Language.GraphQL.Type.Out as Out
-import Test.Hspec.GraphQL
-
-hatType :: Out.ObjectType IO
-hatType = Out.ObjectType "Hat" Nothing []
- $ HashMap.singleton "circumference"
- $ ValueResolver (Out.Field Nothing (Out.NamedScalarType int) mempty)
- $ pure $ Int 60
-
-garmentSchema :: Schema IO
-garmentSchema = schema queryType (Just mutationType) Nothing mempty
- where
- queryType = Out.ObjectType "Query" Nothing [] hatFieldResolver
- mutationType = Out.ObjectType "Mutation" Nothing [] incrementFieldResolver
- garment = pure $ Object $ HashMap.fromList
- [ ("circumference", Int 60)
- ]
- incrementFieldResolver = HashMap.singleton "incrementCircumference"
- $ ValueResolver (Out.Field Nothing (Out.NamedScalarType int) mempty)
- $ pure $ Int 61
- hatField = Out.Field Nothing (Out.NamedObjectType hatType) mempty
- hatFieldResolver =
- HashMap.singleton "garment" $ ValueResolver hatField garment
-
-spec :: Spec
-spec =
- describe "Root operation type" $ do
- it "returns objects from the root resolvers" $ do
- let querySource = [gql|
- {
- garment {
- circumference
- }
- }
- |]
- expected = HashMap.singleton "data"
- $ object
- [ "garment" .= object
- [ "circumference" .= (60 :: Int)
- ]
- ]
- actual <- graphql garmentSchema querySource
- actual `shouldResolveTo` expected
-
- it "chooses Mutation" $ do
- let querySource = [gql|
- mutation {
- incrementCircumference
- }
- |]
- expected = HashMap.singleton "data"
- $ object
- [ "incrementCircumference" .= (61 :: Int)
- ]
- actual <- graphql garmentSchema querySource
- actual `shouldResolveTo` expected