graphql-engine/server/src-test/Hasura/GraphQL/Parser/DirectivesTest.hs
Brandon Simmons b167120f96 server: add explicit export lists in OSS server and enforce with warning
We'll see if this improves compile times at all, but I think it's worth
doing as at least the most minimal form of module documentation.

This was accomplished by first compiling everything with
-ddump-minimal-imports, and then a bunch of scripting (with help from
ormolu)

**EDIT** it doesn't seem to improve CI compile times but the noise floor is high as it looks like we're not caching library dependencies anymore

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2730
GitOrigin-RevId: 667eb8de1e0f1af70420cbec90402922b8b84cb4
2021-11-04 16:09:38 +00:00

30 lines
1.0 KiB
Haskell

module Hasura.GraphQL.Parser.DirectivesTest (spec) where
import Data.Dependent.Map qualified as DM
import Data.Text qualified as T
import Hasura.GraphQL.Parser.Directives
import Hasura.GraphQL.Parser.Schema
import Hasura.GraphQL.Parser.TestUtils
import Hasura.Prelude
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 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