mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-19 05:21:47 +03:00
b24b12b2e6
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5304 GitOrigin-RevId: 8238c1b59c378b7fe37ae0c9afecbf04f8841e2e
26 lines
1.1 KiB
Haskell
26 lines
1.1 KiB
Haskell
module Test.SchemaSpec (spec) where
|
|
|
|
import Data.List (sortOn)
|
|
import Hasura.Backends.DataConnector.API (Config, Routes (..), SchemaResponse (..), SourceName, TableInfo (..))
|
|
import Hasura.Backends.DataConnector.API.V0.Column (ColumnInfo (..))
|
|
import Servant.API (NamedRoutes)
|
|
import Servant.Client (Client, (//))
|
|
import Test.Data qualified as Data
|
|
import Test.Expectations (jsonShouldBe)
|
|
import Test.Hspec (Spec, describe, it)
|
|
import Prelude
|
|
|
|
removeDescriptionFromColumn :: ColumnInfo -> ColumnInfo
|
|
removeDescriptionFromColumn c = c {dciDescription = Nothing}
|
|
|
|
removeDescription :: TableInfo -> TableInfo
|
|
removeDescription t@TableInfo {dtiColumns} = t {dtiDescription = Nothing, dtiColumns = newColumns}
|
|
where
|
|
newColumns = map removeDescriptionFromColumn dtiColumns
|
|
|
|
spec :: Client IO (NamedRoutes Routes) -> SourceName -> Config -> Spec
|
|
spec api sourceName config = describe "schema API" $ do
|
|
it "returns Chinook schema" $ do
|
|
tables <- (map removeDescription . sortOn dtiName . srTables) <$> (api // _schema) sourceName config
|
|
tables `jsonShouldBe` map removeDescription Data.schemaTables
|