From 2598e735b14d5e9677a4a1fc12761b38120ffa03 Mon Sep 17 00:00:00 2001 From: Declan Carroll Date: Wed, 17 Sep 2025 17:36:39 +0100 Subject: [PATCH] test: Configures integration tests to run in src (#19640) --- .github/docker-compose.yml | 8 -------- .github/workflows/ci-postgres-mysql.yml | 3 ++- packages/cli/jest.config.integration.js | 6 ++++-- packages/cli/package.json | 2 +- ...tory.test.ts => folder.repository.integration.test.ts} | 0 ...cs.test.ts => workflow-statistics.integration.test.ts} | 0 ...tings.test.ts => to-save-settings.integration.test.ts} | 0 ....ts => execution-recovery.service.integration.test.ts} | 0 ...> data-store-aggregate.controller.integration.test.ts} | 0 ...s => data-store-aggregate.service.integration.test.ts} | 0 ...ers.test.ts => data-store-filters.integration.test.ts} | 0 ...st.ts => data-store-proxy.service.integration.test.ts} | 0 ...e-size.test.ts => data-store-size.integration.test.ts} | 0 ....test.ts => data-store.controller.integration.test.ts} | 0 ...ice.test.ts => data-store.service.integration.test.ts} | 1 - ...ts => insights-collection.service.integration.test.ts} | 0 ...ts => insights-compaction.service.integration.test.ts} | 0 ...st.ts => insights-pruning.service.integration.test.ts} | 0 ...rvice.test.ts => insights.service.integration.test.ts} | 0 ...iod.test.ts => insights-by-period.integration.test.ts} | 0 ...ights-raw.test.ts => insights-raw.integration.test.ts} | 0 ... => insights-by-period.repository.integration.test.ts} | 0 ...ility.test.ts => password.utility.integration.test.ts} | 0 ...test.ts => public-api-key.service.integration.test.ts} | 0 ...ts => workflow-statistics.service.integration.test.ts} | 0 25 files changed, 7 insertions(+), 13 deletions(-) rename packages/cli/src/databases/repositories/__tests__/{folder.repository.test.ts => folder.repository.integration.test.ts} (100%) rename packages/cli/src/databases/repositories/__tests__/{workflow-statistics.test.ts => workflow-statistics.integration.test.ts} (100%) rename packages/cli/src/execution-lifecycle/__tests__/{to-save-settings.test.ts => to-save-settings.integration.test.ts} (100%) rename packages/cli/src/executions/__tests__/{execution-recovery.service.test.ts => execution-recovery.service.integration.test.ts} (100%) rename packages/cli/src/modules/data-table/__tests__/{data-store-aggregate.controller.test.ts => data-store-aggregate.controller.integration.test.ts} (100%) rename packages/cli/src/modules/data-table/__tests__/{data-store-aggregate.service.test.ts => data-store-aggregate.service.integration.test.ts} (100%) rename packages/cli/src/modules/data-table/__tests__/{data-store-filters.test.ts => data-store-filters.integration.test.ts} (100%) rename packages/cli/src/modules/data-table/__tests__/{data-store-proxy.service.test.ts => data-store-proxy.service.integration.test.ts} (100%) rename packages/cli/src/modules/data-table/__tests__/{data-store-size.test.ts => data-store-size.integration.test.ts} (100%) rename packages/cli/src/modules/data-table/__tests__/{data-store.controller.test.ts => data-store.controller.integration.test.ts} (100%) rename packages/cli/src/modules/data-table/__tests__/{data-store.service.test.ts => data-store.service.integration.test.ts} (99%) rename packages/cli/src/modules/insights/__tests__/{insights-collection.service.test.ts => insights-collection.service.integration.test.ts} (100%) rename packages/cli/src/modules/insights/__tests__/{insights-compaction.service.test.ts => insights-compaction.service.integration.test.ts} (100%) rename packages/cli/src/modules/insights/__tests__/{insights-pruning.service.test.ts => insights-pruning.service.integration.test.ts} (100%) rename packages/cli/src/modules/insights/__tests__/{insights.service.test.ts => insights.service.integration.test.ts} (100%) rename packages/cli/src/modules/insights/database/entities/__tests__/{insights-by-period.test.ts => insights-by-period.integration.test.ts} (100%) rename packages/cli/src/modules/insights/database/entities/__tests__/{insights-raw.test.ts => insights-raw.integration.test.ts} (100%) rename packages/cli/src/modules/insights/database/repositories/__tests__/{insights-by-period.repository.test.ts => insights-by-period.repository.integration.test.ts} (100%) rename packages/cli/src/services/__tests__/{password.utility.test.ts => password.utility.integration.test.ts} (100%) rename packages/cli/src/services/__tests__/{public-api-key.service.test.ts => public-api-key.service.integration.test.ts} (100%) rename packages/cli/src/services/__tests__/{workflow-statistics.service.test.ts => workflow-statistics.service.integration.test.ts} (100%) diff --git a/.github/docker-compose.yml b/.github/docker-compose.yml index 23e92d5b7e..b299d21a75 100644 --- a/.github/docker-compose.yml +++ b/.github/docker-compose.yml @@ -9,10 +9,6 @@ services: - 3306:3306 tmpfs: - /var/lib/mysql - command: > - --wait-timeout=300 - --interactive-timeout=300 - --max-connections=200 mysql-8.4: image: mysql:8.4 @@ -23,10 +19,6 @@ services: - 3306:3306 tmpfs: - /var/lib/mysql - command: > - --wait-timeout=300 - --interactive-timeout=300 - --max-connections=200 postgres: image: postgres:16 diff --git a/.github/workflows/ci-postgres-mysql.yml b/.github/workflows/ci-postgres-mysql.yml index c740a77bdb..fbf9cb92d1 100644 --- a/.github/workflows/ci-postgres-mysql.yml +++ b/.github/workflows/ci-postgres-mysql.yml @@ -66,6 +66,7 @@ jobs: DB_MYSQLDB_CONNECTION_TIMEOUT: 120000 DB_MYSQLDB_ACQUIRE_TIMEOUT: 120000 DB_MYSQLDB_TIMEOUT: 120000 + NODE_OPTIONS: '--max-old-space-size=7168' steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 @@ -86,7 +87,7 @@ jobs: mysql: name: MySQL 8.4 needs: build - runs-on: blacksmith-4vcpu-ubuntu-2204 + runs-on: blacksmith-2vcpu-ubuntu-2204 timeout-minutes: 20 env: DB_MYSQLDB_PASSWORD: password diff --git a/packages/cli/jest.config.integration.js b/packages/cli/jest.config.integration.js index ec81657308..a957605886 100644 --- a/packages/cli/jest.config.integration.js +++ b/packages/cli/jest.config.integration.js @@ -14,6 +14,8 @@ module.exports = { coveragePathIgnorePatterns: ['/src/databases/migrations/'], testTimeout: 10_000, prettierPath: null, - // Only run integration tests - exclude unit tests in src/ - testPathIgnorePatterns: ['/dist/', '/node_modules/', '/src/'], + // Run integration tests from both test/integration and src/ directories + testRegex: undefined, // Override base config testRegex + testMatch: ['/test/integration/**/*.test.ts', '/src/**/*.integration.test.ts'], + testPathIgnorePatterns: ['/dist/', '/node_modules/'], }; diff --git a/packages/cli/package.json b/packages/cli/package.json index 1a109ffe36..a4ba58a047 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -25,7 +25,7 @@ "test:sqlite": "N8N_LOG_LEVEL=silent DB_TYPE=sqlite jest --config=jest.config.integration.js --no-coverage", "test:postgres": "N8N_LOG_LEVEL=silent DB_TYPE=postgresdb DB_POSTGRESDB_SCHEMA=alt_schema DB_TABLE_PREFIX=test_ jest --config=jest.config.integration.js --no-coverage", "test:mariadb": "N8N_LOG_LEVEL=silent DB_TYPE=mariadb DB_TABLE_PREFIX=test_ jest --config=jest.config.integration.js --no-coverage", - "test:mysql": "N8N_LOG_LEVEL=silent DB_TYPE=mysqldb DB_TABLE_PREFIX=test_ jest --config=jest.config.integration.js --no-coverage", + "test:mysql": "N8N_LOG_LEVEL=silent DB_TYPE=mysqldb DB_TABLE_PREFIX=test_ jest --config=jest.config.integration.js --no-coverage --maxWorkers=1", "test:win": "pnpm test:sqlite:win", "test:dev:win": "set N8N_LOG_LEVEL=silent&& set DB_TYPE=sqlite&& jest --watch", "test:sqlite:win": "set N8N_LOG_LEVEL=silent&& set DB_TYPE=sqlite&& jest --config=jest.config.integration.js", diff --git a/packages/cli/src/databases/repositories/__tests__/folder.repository.test.ts b/packages/cli/src/databases/repositories/__tests__/folder.repository.integration.test.ts similarity index 100% rename from packages/cli/src/databases/repositories/__tests__/folder.repository.test.ts rename to packages/cli/src/databases/repositories/__tests__/folder.repository.integration.test.ts diff --git a/packages/cli/src/databases/repositories/__tests__/workflow-statistics.test.ts b/packages/cli/src/databases/repositories/__tests__/workflow-statistics.integration.test.ts similarity index 100% rename from packages/cli/src/databases/repositories/__tests__/workflow-statistics.test.ts rename to packages/cli/src/databases/repositories/__tests__/workflow-statistics.integration.test.ts diff --git a/packages/cli/src/execution-lifecycle/__tests__/to-save-settings.test.ts b/packages/cli/src/execution-lifecycle/__tests__/to-save-settings.integration.test.ts similarity index 100% rename from packages/cli/src/execution-lifecycle/__tests__/to-save-settings.test.ts rename to packages/cli/src/execution-lifecycle/__tests__/to-save-settings.integration.test.ts diff --git a/packages/cli/src/executions/__tests__/execution-recovery.service.test.ts b/packages/cli/src/executions/__tests__/execution-recovery.service.integration.test.ts similarity index 100% rename from packages/cli/src/executions/__tests__/execution-recovery.service.test.ts rename to packages/cli/src/executions/__tests__/execution-recovery.service.integration.test.ts diff --git a/packages/cli/src/modules/data-table/__tests__/data-store-aggregate.controller.test.ts b/packages/cli/src/modules/data-table/__tests__/data-store-aggregate.controller.integration.test.ts similarity index 100% rename from packages/cli/src/modules/data-table/__tests__/data-store-aggregate.controller.test.ts rename to packages/cli/src/modules/data-table/__tests__/data-store-aggregate.controller.integration.test.ts diff --git a/packages/cli/src/modules/data-table/__tests__/data-store-aggregate.service.test.ts b/packages/cli/src/modules/data-table/__tests__/data-store-aggregate.service.integration.test.ts similarity index 100% rename from packages/cli/src/modules/data-table/__tests__/data-store-aggregate.service.test.ts rename to packages/cli/src/modules/data-table/__tests__/data-store-aggregate.service.integration.test.ts diff --git a/packages/cli/src/modules/data-table/__tests__/data-store-filters.test.ts b/packages/cli/src/modules/data-table/__tests__/data-store-filters.integration.test.ts similarity index 100% rename from packages/cli/src/modules/data-table/__tests__/data-store-filters.test.ts rename to packages/cli/src/modules/data-table/__tests__/data-store-filters.integration.test.ts diff --git a/packages/cli/src/modules/data-table/__tests__/data-store-proxy.service.test.ts b/packages/cli/src/modules/data-table/__tests__/data-store-proxy.service.integration.test.ts similarity index 100% rename from packages/cli/src/modules/data-table/__tests__/data-store-proxy.service.test.ts rename to packages/cli/src/modules/data-table/__tests__/data-store-proxy.service.integration.test.ts diff --git a/packages/cli/src/modules/data-table/__tests__/data-store-size.test.ts b/packages/cli/src/modules/data-table/__tests__/data-store-size.integration.test.ts similarity index 100% rename from packages/cli/src/modules/data-table/__tests__/data-store-size.test.ts rename to packages/cli/src/modules/data-table/__tests__/data-store-size.integration.test.ts diff --git a/packages/cli/src/modules/data-table/__tests__/data-store.controller.test.ts b/packages/cli/src/modules/data-table/__tests__/data-store.controller.integration.test.ts similarity index 100% rename from packages/cli/src/modules/data-table/__tests__/data-store.controller.test.ts rename to packages/cli/src/modules/data-table/__tests__/data-store.controller.integration.test.ts diff --git a/packages/cli/src/modules/data-table/__tests__/data-store.service.test.ts b/packages/cli/src/modules/data-table/__tests__/data-store.service.integration.test.ts similarity index 99% rename from packages/cli/src/modules/data-table/__tests__/data-store.service.test.ts rename to packages/cli/src/modules/data-table/__tests__/data-store.service.integration.test.ts index 0b73f703fa..48c535cc46 100644 --- a/packages/cli/src/modules/data-table/__tests__/data-store.service.test.ts +++ b/packages/cli/src/modules/data-table/__tests__/data-store.service.integration.test.ts @@ -50,7 +50,6 @@ describe('dataStore', () => { }); afterEach(async () => { - // Clean up any created user data stores await dataStoreService.deleteDataStoreAll(); }); diff --git a/packages/cli/src/modules/insights/__tests__/insights-collection.service.test.ts b/packages/cli/src/modules/insights/__tests__/insights-collection.service.integration.test.ts similarity index 100% rename from packages/cli/src/modules/insights/__tests__/insights-collection.service.test.ts rename to packages/cli/src/modules/insights/__tests__/insights-collection.service.integration.test.ts diff --git a/packages/cli/src/modules/insights/__tests__/insights-compaction.service.test.ts b/packages/cli/src/modules/insights/__tests__/insights-compaction.service.integration.test.ts similarity index 100% rename from packages/cli/src/modules/insights/__tests__/insights-compaction.service.test.ts rename to packages/cli/src/modules/insights/__tests__/insights-compaction.service.integration.test.ts diff --git a/packages/cli/src/modules/insights/__tests__/insights-pruning.service.test.ts b/packages/cli/src/modules/insights/__tests__/insights-pruning.service.integration.test.ts similarity index 100% rename from packages/cli/src/modules/insights/__tests__/insights-pruning.service.test.ts rename to packages/cli/src/modules/insights/__tests__/insights-pruning.service.integration.test.ts diff --git a/packages/cli/src/modules/insights/__tests__/insights.service.test.ts b/packages/cli/src/modules/insights/__tests__/insights.service.integration.test.ts similarity index 100% rename from packages/cli/src/modules/insights/__tests__/insights.service.test.ts rename to packages/cli/src/modules/insights/__tests__/insights.service.integration.test.ts diff --git a/packages/cli/src/modules/insights/database/entities/__tests__/insights-by-period.test.ts b/packages/cli/src/modules/insights/database/entities/__tests__/insights-by-period.integration.test.ts similarity index 100% rename from packages/cli/src/modules/insights/database/entities/__tests__/insights-by-period.test.ts rename to packages/cli/src/modules/insights/database/entities/__tests__/insights-by-period.integration.test.ts diff --git a/packages/cli/src/modules/insights/database/entities/__tests__/insights-raw.test.ts b/packages/cli/src/modules/insights/database/entities/__tests__/insights-raw.integration.test.ts similarity index 100% rename from packages/cli/src/modules/insights/database/entities/__tests__/insights-raw.test.ts rename to packages/cli/src/modules/insights/database/entities/__tests__/insights-raw.integration.test.ts diff --git a/packages/cli/src/modules/insights/database/repositories/__tests__/insights-by-period.repository.test.ts b/packages/cli/src/modules/insights/database/repositories/__tests__/insights-by-period.repository.integration.test.ts similarity index 100% rename from packages/cli/src/modules/insights/database/repositories/__tests__/insights-by-period.repository.test.ts rename to packages/cli/src/modules/insights/database/repositories/__tests__/insights-by-period.repository.integration.test.ts diff --git a/packages/cli/src/services/__tests__/password.utility.test.ts b/packages/cli/src/services/__tests__/password.utility.integration.test.ts similarity index 100% rename from packages/cli/src/services/__tests__/password.utility.test.ts rename to packages/cli/src/services/__tests__/password.utility.integration.test.ts diff --git a/packages/cli/src/services/__tests__/public-api-key.service.test.ts b/packages/cli/src/services/__tests__/public-api-key.service.integration.test.ts similarity index 100% rename from packages/cli/src/services/__tests__/public-api-key.service.test.ts rename to packages/cli/src/services/__tests__/public-api-key.service.integration.test.ts diff --git a/packages/cli/src/services/__tests__/workflow-statistics.service.test.ts b/packages/cli/src/services/__tests__/workflow-statistics.service.integration.test.ts similarity index 100% rename from packages/cli/src/services/__tests__/workflow-statistics.service.test.ts rename to packages/cli/src/services/__tests__/workflow-statistics.service.integration.test.ts