Merge pull request #4649 from Budibase/fix/cypress-port-conflicts

Cypress port conflicts / local dev fix
This commit is contained in:
Rory Powell 2022-02-25 09:03:04 +00:00 committed by GitHub
commit 200777f8b0
5 changed files with 31 additions and 23 deletions

View File

@ -42,8 +42,8 @@
"lint:fix:prettier": "prettier --write \"packages/**/*.{js,ts,svelte}\"", "lint:fix:prettier": "prettier --write \"packages/**/*.{js,ts,svelte}\"",
"lint:fix:ts": "lerna run lint:fix", "lint:fix:ts": "lerna run lint:fix",
"lint:fix": "yarn run lint:fix:ts && yarn run lint:fix:prettier && yarn run lint:fix:eslint", "lint:fix": "yarn run lint:fix:ts && yarn run lint:fix:prettier && yarn run lint:fix:eslint",
"test:e2e": "lerna run cy:test", "test:e2e": "lerna run cy:test --stream",
"test:e2e:ci": "lerna run cy:ci", "test:e2e:ci": "lerna run cy:ci --stream",
"build:docker": "lerna run build:docker && npm run build:docker:proxy:compose && cd hosting/scripts/linux/ && ./release-to-docker-hub.sh $BUDIBASE_RELEASE_VERSION && cd -", "build:docker": "lerna run build:docker && npm run build:docker:proxy:compose && cd hosting/scripts/linux/ && ./release-to-docker-hub.sh $BUDIBASE_RELEASE_VERSION && cd -",
"build:docker:proxy": "docker build hosting/proxy -t proxy-service", "build:docker:proxy": "docker build hosting/proxy -t proxy-service",
"build:docker:proxy:compose": "lerna run generate:proxy:compose && npm run build:docker:proxy", "build:docker:proxy:compose": "lerna run generate:proxy:compose && npm run build:docker:proxy",

View File

@ -1,9 +1,10 @@
{ {
"baseUrl": "http://localhost:10001", "baseUrl": "http://localhost:4100",
"video": false, "video": false,
"projectId": "bmbemn", "projectId": "bmbemn",
"env": { "env": {
"PORT": "10001", "PORT": "4100",
"WORKER_PORT": "4200",
"JWT_SECRET": "test", "JWT_SECRET": "test",
"HOST_IP": "" "HOST_IP": ""
} }

View File

@ -4,17 +4,17 @@ const path = require("path")
const tmpdir = path.join(require("os").tmpdir(), ".budibase") const tmpdir = path.join(require("os").tmpdir(), ".budibase")
// normal development system // normal development system
const WORKER_PORT = "10002" const SERVER_PORT = cypressConfig.env.PORT
const MAIN_PORT = cypressConfig.env.PORT const WORKER_PORT = cypressConfig.env.WORKER_PORT
process.env.BUDIBASE_API_KEY = "6BE826CB-6B30-4AEC-8777-2E90464633DE" process.env.BUDIBASE_API_KEY = "6BE826CB-6B30-4AEC-8777-2E90464633DE"
process.env.NODE_ENV = "cypress" process.env.NODE_ENV = "cypress"
process.env.ENABLE_ANALYTICS = "false" process.env.ENABLE_ANALYTICS = "false"
process.env.PORT = MAIN_PORT
process.env.JWT_SECRET = cypressConfig.env.JWT_SECRET process.env.JWT_SECRET = cypressConfig.env.JWT_SECRET
process.env.COUCH_URL = `leveldb://${tmpdir}/.data/` process.env.COUCH_URL = `leveldb://${tmpdir}/.data/`
process.env.SELF_HOSTED = 1 process.env.SELF_HOSTED = 1
process.env.WORKER_URL = "http://localhost:10002/" process.env.WORKER_URL = `http://localhost:${WORKER_PORT}/`
process.env.APPS_URL = `http://localhost:${MAIN_PORT}/` process.env.APPS_URL = `http://localhost:${SERVER_PORT}/`
process.env.MINIO_URL = `http://localhost:4004` process.env.MINIO_URL = `http://localhost:4004`
process.env.MINIO_ACCESS_KEY = "budibase" process.env.MINIO_ACCESS_KEY = "budibase"
process.env.MINIO_SECRET_KEY = "budibase" process.env.MINIO_SECRET_KEY = "budibase"
@ -33,11 +33,14 @@ exports.run = (
// require("dotenv").config({ path: resolve(dir, ".env") }) // require("dotenv").config({ path: resolve(dir, ".env") })
// don't make this a variable or top level require // don't make this a variable or top level require
// it will cause environment module to be loaded prematurely // it will cause environment module to be loaded prematurely
require(serverLoc)
// override the port with the worker port temporarily
process.env.PORT = WORKER_PORT process.env.PORT = WORKER_PORT
require(workerLoc) require(workerLoc)
// reload main port for rest of system
process.env.PORT = MAIN_PORT // override the port with the server port
process.env.PORT = SERVER_PORT
require(serverLoc)
} }
if (require.main === module) { if (require.main === module) {

View File

@ -11,12 +11,13 @@
"rollup": "rollup -c -w", "rollup": "rollup -c -w",
"cy:setup": "ts-node ./cypress/ts/setup.ts", "cy:setup": "ts-node ./cypress/ts/setup.ts",
"cy:setup:ci": "node ./cypress/setup.js", "cy:setup:ci": "node ./cypress/setup.js",
"cy:run": "xvfb-run cypress run --headed --browser chrome",
"cy:open": "cypress open", "cy:open": "cypress open",
"cy:run:ci": "cypress run --record", "cy:run": "cypress run",
"cy:test": "start-server-and-test cy:setup http://localhost:10001/builder cy:run", "cy:run:ci": "xvfb-run cypress run --headed --browser chrome --record",
"cy:ci": "start-server-and-test cy:setup:ci http://localhost:10001/builder cy:run", "cy:test": "start-server-and-test cy:setup http://localhost:4100/builder cy:run",
"cy:debug": "start-server-and-test cy:setup http://localhost:10001/builder cy:open" "cy:ci": "start-server-and-test cy:setup:ci http://localhost:4100/builder cy:run:ci",
"cy:debug": "start-server-and-test cy:setup http://localhost:4100/builder cy:open",
"cy:debug:ci": "start-server-and-test cy:setup:ci http://localhost:4100/builder cy:open"
}, },
"jest": { "jest": {
"globals": { "globals": {

View File

@ -2,14 +2,13 @@
* This script just makes it easy to re-create * * This script just makes it easy to re-create *
* a cypress like environment for testing the backend * * a cypress like environment for testing the backend *
******************************************************/ ******************************************************/
const path = require("path") import path from "path"
const tmpdir = path.join(require("os").tmpdir(), ".budibase") const tmpdir = path.join(require("os").tmpdir(), ".budibase")
const MAIN_PORT = "10001" const SERVER_PORT = "4100"
const WORKER_PORT = "10002" const WORKER_PORT = "4200"
// @ts-ignore // @ts-ignore
process.env.PORT = MAIN_PORT
process.env.BUDIBASE_API_KEY = "6BE826CB-6B30-4AEC-8777-2E90464633DE" process.env.BUDIBASE_API_KEY = "6BE826CB-6B30-4AEC-8777-2E90464633DE"
process.env.NODE_ENV = "cypress" process.env.NODE_ENV = "cypress"
process.env.ENABLE_ANALYTICS = "false" process.env.ENABLE_ANALYTICS = "false"
@ -27,7 +26,11 @@ process.env.ALLOW_DEV_AUTOMATIONS = "1"
// don't make this a variable or top level require // don't make this a variable or top level require
// it will cause environment module to be loaded prematurely // it will cause environment module to be loaded prematurely
const server = require("../src/app")
// override the port with the worker port temporarily
process.env.PORT = WORKER_PORT process.env.PORT = WORKER_PORT
const worker = require("../../worker/src/index") const worker = require("../../worker/src/index")
process.env.PORT = MAIN_PORT
// override the port with the server port
process.env.PORT = SERVER_PORT
const server = require("../src/app")