mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-15 17:31:56 +03:00
42a2787290
## Description
I come across a flaky test due to inconsistent error messages from the odbc lib we use for MSSQL database interactions.
```
cabal new-run -- test:graphql-engine-tests mssql
Up to date
Database.MSSQL.TransactionSpec
runTx
runs command in a transaction
commits a successful transaction, returning a single field
commits a successful transaction, returning multiple fields
an unsuccesful transaction, expecting Int
a successfull query expecting multiple rows
an unsuccesful transaction; expecting single row
displays the SQL Server error on an unsuccessful transaction FAILED [1]
rolls back an unsuccessful transaction
Failures:
src-test/Database/MSSQL/TransactionSpec.hs:60:15:
1) Database.MSSQL.TransactionSpec.runTx displays the SQL Server error on an unsuccessful transaction
expected: UnsuccessfulReturnCode "odbc_SQLExecDirectW" (-1) "[Microsoft][ODBC Driver 17 for SQL Server][SQL Server]The definition for column 'INVALID_SYNTAX' must include a data type.[Microsoft][ODBC Driver 17 for SQL Server][SQL Server]The definition for column 'INVALID_SYNTAX' must include a data type."
but got: UnsuccessfulReturnCode "odbc_SQLExecDirectW" (-1) "[Microsoft][ODBC Driver 17 for SQL Server][SQL Server]The definition for column 'INVALID_SYNTAX' must include a data type.[Microsoft][ODBC Driver 17 for SQL Server][SQL Server]The definition for column 'INVALID_SYNTAX' must include a data type.\DEL"
To rerun use: --match "/Database.MSSQL.TransactionSpec/runTx/displays the SQL Server error on an unsuccessful transaction/"
Randomized with seed 1101559172
Finished in 0.2140 seconds
8 examples, 1 failure
```
From above, we got a error message with `\DEL` appended. It is also driving the tests to fail in the CI on random PRs.
We brought this into notice of "fpco", the authors of the library and they got us a [quick fix](https://github.com/fpco/odbc/pull/43), which also improves the errors by removing the redundancy of the error message.
In this PR
- We update the `odbc` library git reference to fc5b592a60
- Update the error messages in tests to conform with improved error messages from `odbc`
## Related issues
Closes https://github.com/hasura/graphql-engine-mono/issues/3340
## Changelog
- ✅ `CHANGELOG.md` is updated with user-facing content relevant to this PR.
## Affected components
- ✅ server
- ✅ tests
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3345
GitOrigin-RevId: a5694e8afb58b5ad71b9c9635a80dea1ec449f51
100 lines
3.1 KiB
Plaintext
100 lines
3.1 KiB
Plaintext
-- Global project configuration.
|
|
--
|
|
-- This file can be overridden with cabal.project.local (see e.g. cabal.project.dev)
|
|
--
|
|
-- If you need to switch between several local configurations you can also
|
|
-- create a symlink to this file with a different name, e.g.:
|
|
-- $ ln -s cabal.project cabal.project.myconfig
|
|
-- $ ln -s cabal.project.freeze cabal.project.myconfig.freeze
|
|
-- ...and then create a new set of overrides in:
|
|
-- cabal.project.myconfig.local
|
|
-- ...and then invoke cabal with
|
|
-- $ cabal new-build --project-file=cabal.project.myconfig
|
|
--
|
|
-- See: https://www.haskell.org/cabal/users-guide/nix-local-build.html#configuring-builds-with-cabal-project
|
|
|
|
with-compiler: ghc-8.10.7
|
|
|
|
-- package-level parallelism:
|
|
jobs: $ncpus
|
|
|
|
packages: server
|
|
|
|
constraints:
|
|
-- Ensure we don't end up with a freeze file that forces an incompatible
|
|
-- version in CI for `Setup.hs` scripts.
|
|
setup.Cabal <3.4
|
|
|
|
package *
|
|
-- NOTE: this gets applied to both local (hasura) packages and dependencies,
|
|
-- but optimizations for local hasura packages are overridden/controlled
|
|
-- via the 'optimize-hasura' flag.
|
|
optimization: 2
|
|
-- For tooling, e.g. 'weeder', and IDE-like stuff:
|
|
ghc-options: -fwrite-ide-info
|
|
|
|
haddock-html: true
|
|
haddock-hoogle: true
|
|
haddock-hyperlink-source: true
|
|
haddock-quickjump: true
|
|
|
|
package graphql-engine
|
|
ghc-options: -j
|
|
haddock-options: "--show-all"
|
|
|
|
source-repository-package
|
|
type: git
|
|
location: https://github.com/hasura/kriti-lang.git
|
|
tag: v0.2.2
|
|
|
|
source-repository-package
|
|
type: git
|
|
location: https://github.com/hasura/pg-client-hs.git
|
|
tag: f28738e18b7038627fb59b93dbc67929fe427c57
|
|
|
|
source-repository-package
|
|
type: git
|
|
location: https://github.com/hasura/graphql-parser-hs.git
|
|
tag: 36212bcc3815434a1bc25dc96f091a783b880ca4
|
|
|
|
source-repository-package
|
|
type: git
|
|
location: https://github.com/hasura/ci-info-hs.git
|
|
tag: be578a01979fc95137cc2c84827f9fafb99df60f
|
|
|
|
source-repository-package
|
|
type: git
|
|
location: https://github.com/hasura/pool.git
|
|
tag: bc4c3f739a8fb8ec4444336a34662895831c9acf
|
|
|
|
source-repository-package
|
|
type: git
|
|
location: https://github.com/fpco/odbc.git
|
|
tag: fc5b592a607d932e5fc96c0f74c0df7c3e910883
|
|
|
|
package odbc
|
|
ghc-options: -Wwarn
|
|
-- Our CI compiles with -Werror, which is also applied to those packages
|
|
-- while it's fine for packages we maintain, we can't actually enforce
|
|
-- that third-party packages are warning-free, hence this -Wno-error.
|
|
-- When the changes in odbc are released, we can instead depend on
|
|
-- the hackage version, and remove it from this list of packages.
|
|
|
|
source-repository-package
|
|
type: git
|
|
location: https://github.com/hasura/ekg-core.git
|
|
tag: ac51c3834e242833e9735394295cbcaa583233f8
|
|
|
|
source-repository-package
|
|
type: git
|
|
location: https://github.com/hasura/ekg-json.git
|
|
tag: 84990712c165d7e3e76b2b289640ef8b5033f12f
|
|
|
|
-- This is v1.2.3.2 with https://github.com/haskell/text/pull/348
|
|
-- cherry-picked. When 1.3 is released we can move from this fork.
|
|
source-repository-package
|
|
type: git
|
|
location: https://github.com/hasura/text.git
|
|
tag: 874c3164fadf39a83382359d2b6ce941a3e134da
|
|
|