graphql-engine/server/lib/upgrade-tests/upgrade-tests.cabal
Samir Talwar e3b46b78a9 server/upgrade-tests: Tests that ensure that HGE upgrades successfully.
These tests ensure that upgrading HGE preserves the GraphQL schema.

They do this by running two different versions of HGE against the same metadata, and ensuring that the GraphQL schema doesn't change.

We might find that in the future, we make an additive change that makes these tests fail. Improving the tests to allow for this is left as an exercise to whoever triggers it. (Sorry.)

Currently, we do this with:

  * an empty database (zero tracked relations)
  * the Chinook dataset
  * the "huge schema" dataset

The base version of HGE tested against can be overridden with an option. The version must be available on Docker Hub.

Further information is in the Haddock documentation.

[NDAT-627]: https://hasurahq.atlassian.net/browse/NDAT-627?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8982
GitOrigin-RevId: 97b4deda1e6fe1db33ce35db02e12c6acc6c29e3
2023-04-28 12:54:51 +00:00

81 lines
1.7 KiB
Plaintext

cabal-version: 2.2
name: upgrade-tests
version: 1.0.0
build-type: Simple
copyright: Hasura Inc.
extra-source-files:
introspection.gql
common common-all
default-extensions:
BlockArguments
DataKinds
DeriveGeneric
DerivingStrategies
GeneralizedNewtypeDeriving
ImportQualifiedPost
LambdaCase
MultiWayIf
NamedFieldPuns
NoImplicitPrelude
NumericUnderscores
OverloadedStrings
PatternGuards
QuasiQuotes
RecordWildCards
ScopedTypeVariables
TypeApplications
TypeFamilies
ghc-options:
-Werror
-- Taken from https://medium.com/mercury-bank/enable-all-the-warnings-a0517bc081c3
-Weverything
-Wno-missing-exported-signatures
-Wno-missing-import-lists
-Wno-missed-specialisations
-Wno-all-missed-specialisations
-Wno-unsafe
-Wno-safe
-Wno-missing-local-signatures
-Wno-monomorphism-restriction
-Wno-missing-kind-signatures
-Wno-missing-safe-haskell-mode
test-suite upgrade-tests
import: common-all
type: exitcode-stdio-1.0
hs-source-dirs: src
main-is: Main.hs
other-modules:
Hasura.UpgradeTests.Database
Hasura.UpgradeTests.Dataset
Hasura.UpgradeTests.Options
Hasura.UpgradeTests.Server
build-depends:
base
, graphql-engine
, pg-client
, test-harness
, aeson
, async
, bytestring
, file-embed
, hasura-prelude
, hspec
, network
, optparse-applicative
, random
, testcontainers
, text
, vector
, zlib
-- Turning off optimizations is intentional; tests aren't
-- performance sensitive and waiting for compilation is a problem.
ghc-options:
-O0
-threaded
-rtsopts "-with-rtsopts=-N4"