2022-06-03 11:06:31 +03:00
|
|
|
{-# LANGUAGE OverloadedLists #-}
|
|
|
|
{-# LANGUAGE QuasiQuotes #-}
|
|
|
|
|
|
|
|
module Hasura.Backends.DataConnector.API.V0.CapabilitiesSpec (spec) where
|
|
|
|
|
|
|
|
import Data.Aeson.QQ.Simple (aesonQQ)
|
|
|
|
import Hasura.Backends.DataConnector.API.V0.Capabilities
|
|
|
|
import Hasura.Backends.DataConnector.API.V0.ConfigSchema
|
|
|
|
import Hasura.Prelude
|
|
|
|
import Hedgehog
|
|
|
|
import Hedgehog.Gen qualified as Gen
|
|
|
|
import Test.Aeson.Utils
|
|
|
|
import Test.Hspec
|
|
|
|
|
|
|
|
spec :: Spec
|
|
|
|
spec = do
|
|
|
|
describe "Capabilities" $ do
|
2022-06-16 11:30:01 +03:00
|
|
|
testToFromJSONToSchema emptyCapabilities [aesonQQ|{}|]
|
2022-06-03 11:06:31 +03:00
|
|
|
jsonOpenApiProperties genCapabilities
|
|
|
|
describe "CapabilitiesResponse" $ do
|
|
|
|
testToFromJSON
|
2022-06-16 11:30:01 +03:00
|
|
|
(CapabilitiesResponse (emptyCapabilities {cRelationships = Just RelationshipCapabilities {}}) emptyConfigSchemaResponse)
|
|
|
|
[aesonQQ|{"capabilities": {"relationships": {}}, "configSchemas": {"configSchema": {}, "otherSchemas": {}}}|]
|
|
|
|
|
|
|
|
genQueryCapabilities :: MonadGen m => m QueryCapabilities
|
|
|
|
genQueryCapabilities = QueryCapabilities <$> Gen.bool
|
|
|
|
|
|
|
|
genMutationCapabilities :: MonadGen m => m MutationCapabilities
|
|
|
|
genMutationCapabilities = pure MutationCapabilities {}
|
|
|
|
|
|
|
|
genSubscriptionCapabilities :: MonadGen m => m SubscriptionCapabilities
|
|
|
|
genSubscriptionCapabilities = pure SubscriptionCapabilities {}
|
|
|
|
|
|
|
|
genBooleanOperators :: MonadGen m => m BooleanOperators
|
|
|
|
genBooleanOperators = pure BooleanOperators {}
|
|
|
|
|
|
|
|
genComparisonOperators :: MonadGen m => m ComparisonOperators
|
|
|
|
genComparisonOperators = pure ComparisonOperators {}
|
|
|
|
|
|
|
|
genFilteringCapabilities :: MonadGen m => m FilteringCapabilities
|
|
|
|
genFilteringCapabilities =
|
|
|
|
FilteringCapabilities
|
|
|
|
<$> genBooleanOperators
|
|
|
|
<*> genComparisonOperators
|
|
|
|
|
|
|
|
genRelationshipCapabilities :: MonadGen m => m RelationshipCapabilities
|
|
|
|
genRelationshipCapabilities = pure RelationshipCapabilities {}
|
2022-06-03 11:06:31 +03:00
|
|
|
|
|
|
|
genCapabilities :: MonadGen m => m Capabilities
|
2022-06-16 11:30:01 +03:00
|
|
|
genCapabilities =
|
|
|
|
Capabilities
|
|
|
|
<$> Gen.maybe genQueryCapabilities
|
|
|
|
<*> Gen.maybe genMutationCapabilities
|
|
|
|
<*> Gen.maybe genSubscriptionCapabilities
|
|
|
|
<*> Gen.maybe genFilteringCapabilities
|
|
|
|
<*> Gen.maybe genRelationshipCapabilities
|
2022-06-03 11:06:31 +03:00
|
|
|
|
|
|
|
emptyConfigSchemaResponse :: ConfigSchemaResponse
|
|
|
|
emptyConfigSchemaResponse = ConfigSchemaResponse mempty mempty
|