mirror of
https://github.com/n8n-io/n8n.git
synced 2026-05-23 04:45:21 +02:00
38 lines
1.3 KiB
JavaScript
38 lines
1.3 KiB
JavaScript
/**
|
|
* Jest global setup - plain JS to bypass Jest's transform system.
|
|
* Uses createServiceStack from n8n-containers for unified service management.
|
|
*/
|
|
const { createServiceStack } = require('n8n-containers');
|
|
const { randomBytes } = require('crypto');
|
|
|
|
module.exports = async () => {
|
|
const suffix = randomBytes(4).toString('hex');
|
|
const stack = await createServiceStack({
|
|
services: ['postgres'],
|
|
projectName: `n8n-integration-test-${suffix}`,
|
|
});
|
|
|
|
const pgResult = stack.serviceResults.postgres;
|
|
if (!pgResult) {
|
|
throw new Error('Failed to start postgres container');
|
|
}
|
|
|
|
const container = pgResult.container;
|
|
|
|
process.env.DB_TYPE = 'postgresdb';
|
|
process.env.DB_POSTGRESDB_HOST = container.getHost();
|
|
process.env.DB_POSTGRESDB_PORT = String(container.getMappedPort(5432));
|
|
process.env.DB_POSTGRESDB_DATABASE = pgResult.meta.database;
|
|
process.env.DB_POSTGRESDB_USER = pgResult.meta.username;
|
|
process.env.DB_POSTGRESDB_PASSWORD = pgResult.meta.password;
|
|
process.env.DB_POSTGRESDB_SCHEMA = 'alt_schema';
|
|
process.env.DB_TABLE_PREFIX = 'test_';
|
|
process.env.DB_POSTGRESDB_POOL_SIZE = '1'; // Detect connection pooling deadlocks
|
|
|
|
globalThis.__TESTCONTAINERS_STACK__ = stack;
|
|
|
|
console.log(
|
|
`\n✓ Postgres ready at ${process.env.DB_POSTGRESDB_HOST}:${process.env.DB_POSTGRESDB_PORT}\n`,
|
|
);
|
|
};
|