dvbooking/test/global-setup.ts
Roland Schneider 2f54770720 add e2e
2025-10-29 16:30:17 +01:00

44 lines
1.2 KiB
TypeScript

import { exec } from 'child_process';
import * as path from 'path';
import { DockerComposeEnvironment, Wait } from 'testcontainers';
export default async () => {
const composeFilePath = path.resolve(__dirname, '../environment/e2e');
const environment = await new DockerComposeEnvironment(
composeFilePath,
'docker-compose.yaml',
)
.withWaitStrategy('postgres_1', Wait.forHealthCheck())
.up();
// Store the environment details for teardown
(global as any).__TESTCONTAINERS_ENVIRONMENT__ = environment;
// Run migrations
await new Promise<void>((resolve, reject) => {
console.info('running migration');
exec(
'env && npm run migration:run',
{ env: { ...process.env, DATA_SOURCE_ENV: '.env.e2e' } },
(err, stdout, stderr) => {
if (err) {
console.error(stderr);
return reject(err);
}
console.log(stdout);
resolve();
},
);
});
// await new Promise(resolve => {setTimeout(resolve, 60000)})
};
// function readEnvFile() {
// const fs = require('fs');
// const dotenv = require('dotenv');
// const envConfig = dotenv.parse(fs.readFileSync('.env.e2e'));
// return envConfig;
// }