From d6f0e5b1ec44fdac7424472a526f920fb19cb6de Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Mon, 23 Jan 2023 17:41:32 +0000 Subject: [PATCH] Dry, moving env variables to a .env.test file --- ...js => jestTestcontainersConfigGenerator.js | 9 +++------ package.json | 2 +- packages/server/.env.test | 3 +++ packages/server/jest-testcontainers-config.js | 9 ++++++++- packages/server/src/environment.ts | 19 ++++++++++++++----- packages/server/src/tests/jestSetup.ts | 7 ++----- 6 files changed, 31 insertions(+), 18 deletions(-) rename jest-testcontainers-config.js => jestTestcontainersConfigGenerator.js (58%) create mode 100644 packages/server/.env.test diff --git a/jest-testcontainers-config.js b/jestTestcontainersConfigGenerator.js similarity index 58% rename from jest-testcontainers-config.js rename to jestTestcontainersConfigGenerator.js index 8417b9b845..6e01efea32 100644 --- a/jest-testcontainers-config.js +++ b/jestTestcontainersConfigGenerator.js @@ -1,15 +1,12 @@ -module.exports = { +module.exports = env => ({ devEnv: { image: "budibase/dependencies", tag: "latest", ports: [6379, 5984, 9000], - env: { - COUCHDB_USER: "test_couchdb_user", - COUCHDB_PASSWORD: "test_couchdb_password", - }, + env, wait: { type: "text", text: "Test environment started...", }, }, -} +}) diff --git a/package.json b/package.json index 724e5f37fc..53d60249f7 100644 --- a/package.json +++ b/package.json @@ -87,4 +87,4 @@ "install:pro": "bash scripts/pro/install.sh", "dep:clean": "yarn clean && yarn bootstrap" } -} \ No newline at end of file +} diff --git a/packages/server/.env.test b/packages/server/.env.test new file mode 100644 index 0000000000..b7c736b15d --- /dev/null +++ b/packages/server/.env.test @@ -0,0 +1,3 @@ +JWT_SECRET=testsecret +COUCH_DB_PASSWORD=test_couchdb_user +COUCH_DB_USER=test_couchdb_password \ No newline at end of file diff --git a/packages/server/jest-testcontainers-config.js b/packages/server/jest-testcontainers-config.js index 50940cb76d..30ed1503d8 100644 --- a/packages/server/jest-testcontainers-config.js +++ b/packages/server/jest-testcontainers-config.js @@ -1 +1,8 @@ -module.exports = require("../../jest-testcontainers-config") +const { join } = require("path") +const { parsed: env } = require("dotenv").config({ + path: join(__dirname, ".env.test"), +}) + +const jestTestcontainersConfigGenerator = require("../../jestTestcontainersConfigGenerator") + +module.exports = jestTestcontainersConfigGenerator(env) diff --git a/packages/server/src/environment.ts b/packages/server/src/environment.ts index 6272e0e462..b87be6b12f 100644 --- a/packages/server/src/environment.ts +++ b/packages/server/src/environment.ts @@ -21,11 +21,20 @@ function isCypress() { } let LOADED = false -if (!LOADED && isDev() && !isTest()) { - require("dotenv").config({ - path: join(__dirname, "..", ".env"), - }) - LOADED = true +if (!LOADED) { + if (isDev() && !isTest()) { + require("dotenv").config({ + path: join(__dirname, "..", ".env"), + }) + LOADED = true + } + // TODO: remove when all tests (cypress, e2e, unit, etc) use docker for testing dependencies + else if (isJest()) { + require("dotenv").config({ + path: join(__dirname, "..", ".env.test"), + }) + LOADED = true + } } function parseIntSafe(number?: string) { diff --git a/packages/server/src/tests/jestSetup.ts b/packages/server/src/tests/jestSetup.ts index 47d277ef3b..05aefef8df 100644 --- a/packages/server/src/tests/jestSetup.ts +++ b/packages/server/src/tests/jestSetup.ts @@ -26,13 +26,10 @@ function overrideConfigValue(key: string, value: string) { overrideConfigValue("COUCH_DB_PORT", global.__TESTCONTAINERS_DEVENV_PORT_5984__) overrideConfigValue( "COUCH_DB_URL", - `http://localhost:${global.__TESTCONTAINERS_DEVENV_PORT_5984__}` + `http://${global.__TESTCONTAINERS_DEVENV_IP__}:${global.__TESTCONTAINERS_DEVENV_PORT_5984__}` ) overrideConfigValue( "MINIO_URL", - `http://localhost:${global.__TESTCONTAINERS_DEVENV_PORT_9000__}` + `http://${global.__TESTCONTAINERS_DEVENV_IP__}:${global.__TESTCONTAINERS_DEVENV_PORT_9000__}` ) - -overrideConfigValue("COUCH_DB_USERNAME", "test_couchdb_user") -overrideConfigValue("COUCH_DB_PASSWORD", "test_couchdb_password")