From a2c599d98d40d9076b48d116f97f70185d3ab04e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20Ovejero?= Date: Thu, 30 Jun 2022 15:53:13 +0200 Subject: [PATCH] :test_tube: Make PG truncation sequential --- .../cli/test/integration/shared/testDb.ts | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/packages/cli/test/integration/shared/testDb.ts b/packages/cli/test/integration/shared/testDb.ts index 86171bacce..3d7cc61402 100644 --- a/packages/cli/test/integration/shared/testDb.ts +++ b/packages/cli/test/integration/shared/testDb.ts @@ -2,7 +2,7 @@ import { exec as callbackExec } from 'child_process'; import { promisify } from 'util'; import { createConnection, getConnection, ConnectionOptions, Connection } from 'typeorm'; -import { Credentials, UserSettings } from 'n8n-core'; +import { UserSettings } from 'n8n-core'; import config from '../../../config'; import { @@ -163,13 +163,15 @@ async function truncateMappingTables( } if (dbType === 'postgresdb') { - const promises = mappingTables.map((tableName) => { - const schema = config.getEnv('database.postgresdb.schema'); - const fullTableName = `${schema}.${tableName}`; - testDb.query(`TRUNCATE TABLE ${fullTableName} RESTART IDENTITY CASCADE;`); - }); + const schema = config.getEnv('database.postgresdb.schema'); - return Promise.all(promises); + // `TRUNCATE` in postgres cannot be parallelized + for (const tableName of mappingTables) { + const fullTableName = `${schema}.${tableName}`; + await testDb.query(`TRUNCATE TABLE ${fullTableName} RESTART IDENTITY CASCADE;`); + } + + return Promise.resolve([]); } // mysqldb, mariadb @@ -210,16 +212,16 @@ export async function truncate(collections: Array, testDbName: s } if (dbType === 'postgresdb') { - const truncationPromises = collections.map((collection) => { - const schema = config.getEnv('database.postgresdb.schema'); + const schema = config.getEnv('database.postgresdb.schema'); + + // `TRUNCATE` in postgres cannot be parallelized + for (const collection of collections) { const fullTableName = `${schema}.${toTableName(collection)}`; + await testDb.query(`TRUNCATE TABLE ${fullTableName} RESTART IDENTITY CASCADE;`); + } - return testDb.query(`TRUNCATE TABLE ${fullTableName} RESTART IDENTITY CASCADE;`); - }); - - truncationPromises.push(truncateMappingTables(dbType, collections, testDb)); - - return Promise.all(truncationPromises); + return await truncateMappingTables(dbType, collections, testDb); + // return Promise.resolve([]) } /**