summaryrefslogtreecommitdiff
path: root/tests/Language/GraphQL/SchemaSpec.hs
blob: 6804150c08e0e3a56139ca539aa56705a81320e2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
{-# LANGUAGE OverloadedStrings #-}
module Language.GraphQL.SchemaSpec
    ( spec
    ) where

import qualified Data.Aeson as Aeson
import qualified Data.Aeson.Types as Aeson
import qualified Data.Sequence as Sequence
import Data.Text (Text)
import Language.GraphQL.AST.Core
import Language.GraphQL.Error
import Language.GraphQL.Schema
import Test.Hspec (Spec, describe, it, shouldBe)

spec :: Spec
spec =
    describe "resolve" $
        it "ignores invalid __typename" $ do
            let resolver = object "__typename" $ pure
                    [ scalar "field" $ pure ("T" :: Text)
                    ]
                schema = resolversToMap [resolver]
                fields = Sequence.singleton
                    $ SelectionFragment
                    $ Fragment "T" Sequence.empty
                expected = Aeson.object
                    [ ("data" , Aeson.emptyObject)
                    ]

            actual <- runCollectErrs (resolve schema fields)
            actual `shouldBe` expected