mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-09-11 10:46:25 +03:00
Dupe of https://github.com/hasura/graphql-engine-mono/pull/2853 with branch renamed so it doesn't break a tool. prev pr: https://github.com/hasura/graphql-engine-mono/pull/2911 next pr: https://github.com/hasura/graphql-engine-mono/pull/2922 This implements https://github.com/hasura/graphql-engine/issues/7801 Some points to keep in mind for review: * How state is passed to the tests. Do we like how this works? * I quite like it, with the opaque type [`State`](68f33051ca/server/tests-hspec/Harness/State.hs (L17)
), we can avoid churn when adding things. * The [setup/teardown](68f33051ca/server/tests-hspec/Spec.hs (L19-L31)
) seems clean. * By using hspec's own means to pass and denote context, we avoid "getting new ideas" for how to structure the tests -- we use a standard. Hopefully, that means the tests' structure rarely change. * The various flags passed in the [ServeOptions](68f33051ca/server/tests-hspec/Harness/Constants.hs (L123)
) - if there are any causes for concern, raise them here. My thinking is that, there are lots. I've picked some "sane" defaults (mostly empty). The tests pass. I think as we add more complex tests, these flags will be scrutinised and updated as needed. I think it's valuable that all flags are explicitly listed here, though. PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2921 GitOrigin-RevId: 2c2e70bf784ef571a48509a7e5006fd0f48773b5
54 lines
1.5 KiB
YAML
54 lines
1.5 KiB
YAML
# This file starts up the necessary database services to test
|
|
# graphql-engine.
|
|
#
|
|
# Run the following to get started:
|
|
#
|
|
# docker-compose up -d
|
|
#
|
|
# That will start up services in the background. To take them down,
|
|
# you have to run
|
|
#
|
|
# docker-compose down
|
|
#
|
|
# If you changed DB init scripts, then you should also run:
|
|
#
|
|
# docker-compose down --volumes
|
|
#
|
|
# That'll delete the volumes. Otherwise e.g. PostgreSQL will skip
|
|
# initializing if a DB already exists.
|
|
#
|
|
# If you omit -d, it'll run them all in the foreground, then you can
|
|
# stop them with your usual control-C terminal command.
|
|
#
|
|
# Facts:
|
|
#
|
|
# * The SERVICE PORTS numbering start at 65001, 65002, etc. to avoid
|
|
# bother existing instances of databases.
|
|
#
|
|
# * The login credentials are, where possible, all "hasura" to avoid
|
|
# unnecessary mental overhead.
|
|
|
|
version: "3.3"
|
|
services:
|
|
|
|
mariadb:
|
|
image: mariadb:10.6.4-focal@sha256:c014ba1efc5dbd711d0520c7762d57807f35549de3414eb31e942a420c8a2ed2
|
|
ports:
|
|
- "65001:3306"
|
|
environment:
|
|
MARIADB_USER: "hasura"
|
|
MARIADB_PASSWORD: "hasura"
|
|
MARIADB_DATABASE: "hasura"
|
|
MARIADB_ALLOW_EMPTY_ROOT_PASSWORD: "true"
|
|
|
|
postgres:
|
|
image: postgres:14-alpine@sha256:1cf551de75fd602ebc94ccda93305a4e411f941bf9465f59d850bdcfd474ca52
|
|
ports:
|
|
- "65002:5432"
|
|
environment:
|
|
POSTGRES_USER: "hasura"
|
|
POSTGRES_PASSWORD: "hasura"
|
|
POSTGRES_DB: "hasura"
|
|
volumes:
|
|
- ./docker-compose/postgres:/docker-entrypoint-initdb.d
|