test: align jest db bootstrap with ci
This commit is contained in:
@@ -12,6 +12,15 @@ module.exports = async () => {
|
||||
process.env.POSTGRES_HOST = process.env.POSTGRES_HOST || '127.0.0.1';
|
||||
process.env.POSTGRES_PORT = process.env.POSTGRES_PORT || '55432';
|
||||
|
||||
const useDocker = process.env.USE_DOCKER_TEST_DB !== 'false';
|
||||
|
||||
if (useDocker) {
|
||||
process.env.POSTGRES_DB = process.env.POSTGRES_DB || 'merchantsofhope_test';
|
||||
process.env.POSTGRES_USER = process.env.POSTGRES_USER || 'postgres';
|
||||
process.env.POSTGRES_PASSWORD = process.env.POSTGRES_PASSWORD || 'postgres';
|
||||
process.env.POSTGRES_HOST = process.env.POSTGRES_HOST || '127.0.0.1';
|
||||
process.env.POSTGRES_PORT = process.env.POSTGRES_PORT || '55432';
|
||||
|
||||
const composeFile = path.join(__dirname, '..', '..', '..', 'docker-compose.test.yml');
|
||||
|
||||
const upResult = spawnSync(
|
||||
@@ -47,19 +56,30 @@ module.exports = async () => {
|
||||
|
||||
sleep(1000);
|
||||
}
|
||||
|
||||
if (!ready) {
|
||||
throw new Error('Database did not become ready in time');
|
||||
}
|
||||
}
|
||||
|
||||
const migratePath = path.join(__dirname, '..', 'database', 'migrate.js');
|
||||
const result = spawnSync('node', [migratePath], {
|
||||
cwd: path.join(__dirname, '..', '..'),
|
||||
stdio: 'inherit',
|
||||
env: process.env
|
||||
});
|
||||
const waitScript = path.join(__dirname, '..', '..', 'scripts', 'wait-for-db.js');
|
||||
const waitResult = spawnSync('node', [waitScript], {
|
||||
cwd: path.join(__dirname, '..', '..'),
|
||||
stdio: 'inherit',
|
||||
env: process.env
|
||||
});
|
||||
|
||||
if (result.status !== 0) {
|
||||
throw new Error('Database migration failed before running tests');
|
||||
}
|
||||
if (waitResult.status !== 0) {
|
||||
throw new Error('Database wait script failed');
|
||||
}
|
||||
|
||||
const migratePath = path.join(__dirname, '..', 'database', 'migrate.js');
|
||||
const result = spawnSync('node', [migratePath], {
|
||||
cwd: path.join(__dirname, '..', '..'),
|
||||
stdio: 'inherit',
|
||||
env: process.env
|
||||
});
|
||||
|
||||
if (result.status !== 0) {
|
||||
throw new Error('Database migration failed before running tests');
|
||||
}
|
||||
};
|
||||
|
||||
@@ -7,14 +7,16 @@ module.exports = async () => {
|
||||
await cleanupUploads();
|
||||
await pool.end();
|
||||
|
||||
const composeFile = path.join(__dirname, '..', '..', '..', 'docker-compose.test.yml');
|
||||
spawnSync(
|
||||
'docker',
|
||||
['compose', '-f', composeFile, 'down', '--volumes'],
|
||||
{
|
||||
cwd: path.join(__dirname, '..', '..'),
|
||||
stdio: 'inherit',
|
||||
env: process.env
|
||||
}
|
||||
);
|
||||
if (process.env.USE_DOCKER_TEST_DB !== 'false') {
|
||||
const composeFile = path.join(__dirname, '..', '..', '..', 'docker-compose.test.yml');
|
||||
spawnSync(
|
||||
'docker',
|
||||
['compose', '-f', composeFile, 'down', '--volumes'],
|
||||
{
|
||||
cwd: path.join(__dirname, '..', '..'),
|
||||
stdio: 'inherit',
|
||||
env: process.env
|
||||
}
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user