mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-20 05:51:54 +03:00
e953efeb40
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7758 Co-authored-by: Tom Harding <6302310+i-am-tom@users.noreply.github.com> GitOrigin-RevId: 311f6c4a5c629c18a55d75a5d5a74f826078e86d
32 lines
1.1 KiB
Haskell
32 lines
1.1 KiB
Haskell
module Hasura.GraphQL.Parser.DirectivesSpec (spec) where
|
|
|
|
import Control.Monad.Identity (Identity (..))
|
|
import Data.Dependent.Map qualified as DM
|
|
import Data.Maybe (isJust)
|
|
import Data.Text qualified as T
|
|
import Hasura.GraphQL.Parser.Directives
|
|
import Hasura.GraphQL.Parser.Schema
|
|
import Hasura.GraphQL.Parser.TestInstances ()
|
|
import Hasura.GraphQL.Parser.TestUtils
|
|
import Language.GraphQL.Draft.Syntax qualified as G
|
|
import Test.Hspec
|
|
|
|
spec :: Spec
|
|
spec = do
|
|
testDirective skipDirective skip
|
|
testDirective includeDirective include
|
|
testDirective cachedDirective cached
|
|
testDirective multipleRootFieldsDirective multipleRootFields
|
|
|
|
testDirective :: Directive origin TestMonad -> DirectiveKey a -> Spec
|
|
testDirective dir key = do
|
|
let name = diName $ dDefinition dir
|
|
location = head $ diLocations $ dDefinition dir
|
|
directive = fakeDirective $ dDefinition dir
|
|
describe (T.unpack $ G.unName name) $ do
|
|
it "has the same type in the key and the directive" $
|
|
flip shouldBe (Right True) $
|
|
runTest $ do
|
|
dmap <- parseDirectives [dir] location [directive]
|
|
pure $ isJust $ runIdentity <$> DM.lookup key dmap
|