try to fix tests
Some checks are pending
Run tests / test-runner (push) Waiting to run

This commit is contained in:
Jan Prochazka 2024-11-11 16:22:18 +01:00
parent 17f0248a3e
commit 7d0d9d3e22
2 changed files with 93 additions and 83 deletions

View File

@ -613,77 +613,77 @@ describe('Deploy database', () => {
})
);
// test.each(engines.filter(x => !x.skipDataModifications).map(engine => [engine.label, engine]))(
// 'Script drived deploy - basic predeploy - %s',
// testWrapper(async (conn, driver, engine) => {
// await testDatabaseDeploy(engine, conn, driver, [
// [
// {
// name: '1.predeploy.sql',
// text: 'create table t1 (id int primary key); insert into t1 (id) values (1);',
// },
// ],
// ]);
test.each(engines.filter(x => !x.skipDataModifications).map(engine => [engine.label, engine]))(
'Script drived deploy - basic predeploy - %s',
testWrapper(async (conn, driver, engine) => {
await testDatabaseDeploy(engine, conn, driver, [
[
{
name: '1.predeploy.sql',
text: 'create table t1 (id int primary key); insert into t1 (id) values (1);',
},
],
]);
// const res1 = await driver.query(conn, 'SELECT COUNT(*) AS cnt FROM t1');
// expect(res1.rows[0].cnt == 1).toBeTruthy();
const res1 = await driver.query(conn, 'SELECT COUNT(*) AS cnt FROM t1');
expect(res1.rows[0].cnt == 1).toBeTruthy();
// const res2 = await driver.query(conn, 'SELECT COUNT(*) AS cnt FROM dbgate_deploy_journal');
// expect(res2.rows[0].cnt == 1).toBeTruthy();
// })
// );
const res2 = await driver.query(conn, 'SELECT COUNT(*) AS cnt FROM dbgate_deploy_journal');
expect(res2.rows[0].cnt == 1).toBeTruthy();
})
);
// test.each(engines.filter(x => !x.skipDataModifications).map(engine => [engine.label, engine]))(
// 'Script drived deploy - install+uninstall - %s',
// testWrapper(async (conn, driver, engine) => {
// await testDatabaseDeploy(engine, conn, driver, [
// [
// {
// name: 't1.uninstall.sql',
// text: 'drop table t1',
// },
// {
// name: 't1.install.sql',
// text: 'create table t1 (id int primary key); insert into t1 (id) values (1)',
// },
// {
// name: 't2.once.sql',
// text: 'create table t2 (id int primary key); insert into t2 (id) values (1)',
// },
// ],
// [
// {
// name: 't1.uninstall.sql',
// text: 'drop table t1',
// },
// {
// name: 't1.install.sql',
// text: 'create table t1 (id int primary key, val int); insert into t1 (id, val) values (1, 11)',
// },
// {
// name: 't2.once.sql',
// text: 'insert into t2 (id) values (2)',
// },
// ],
// ]);
test.each(engines.filter(x => !x.skipDataModifications).map(engine => [engine.label, engine]))(
'Script drived deploy - install+uninstall - %s',
testWrapper(async (conn, driver, engine) => {
await testDatabaseDeploy(engine, conn, driver, [
[
{
name: 't1.uninstall.sql',
text: 'drop table t1',
},
{
name: 't1.install.sql',
text: 'create table t1 (id int primary key); insert into t1 (id) values (1)',
},
{
name: 't2.once.sql',
text: 'create table t2 (id int primary key); insert into t2 (id) values (1)',
},
],
[
{
name: 't1.uninstall.sql',
text: 'drop table t1',
},
{
name: 't1.install.sql',
text: 'create table t1 (id int primary key, val int); insert into t1 (id, val) values (1, 11)',
},
{
name: 't2.once.sql',
text: 'insert into t2 (id) values (2)',
},
],
]);
// const res1 = await driver.query(conn, 'SELECT val from t1 where id = 1');
// expect(res1.rows[0].val == 11).toBeTruthy();
const res1 = await driver.query(conn, 'SELECT val from t1 where id = 1');
expect(res1.rows[0].val == 11).toBeTruthy();
// const res2 = await driver.query(conn, 'SELECT COUNT(*) AS cnt FROM t2');
// expect(res2.rows[0].cnt == 1).toBeTruthy();
const res2 = await driver.query(conn, 'SELECT COUNT(*) AS cnt FROM t2');
expect(res2.rows[0].cnt == 1).toBeTruthy();
// const res3 = await driver.query(conn, 'SELECT COUNT(*) AS cnt FROM dbgate_deploy_journal');
// expect(res3.rows[0].cnt == 3).toBeTruthy();
const res3 = await driver.query(conn, 'SELECT COUNT(*) AS cnt FROM dbgate_deploy_journal');
expect(res3.rows[0].cnt == 3).toBeTruthy();
// const res4 = await driver.query(conn, "SELECT run_count from dbgate_deploy_journal where name = 't2.once.sql'");
// expect(res4.rows[0].run_count == 1).toBeTruthy();
const res4 = await driver.query(conn, "SELECT run_count from dbgate_deploy_journal where name = 't2.once.sql'");
expect(res4.rows[0].run_count == 1).toBeTruthy();
// const res5 = await driver.query(
// conn,
// "SELECT run_count from dbgate_deploy_journal where name = 't1.install.sql'"
// );
// expect(res5.rows[0].run_count == 2).toBeTruthy();
// })
// );
const res5 = await driver.query(
conn,
"SELECT run_count from dbgate_deploy_journal where name = 't1.install.sql'"
);
expect(res5.rows[0].run_count == 2).toBeTruthy();
})
);
});

View File

@ -17,28 +17,38 @@ async function deployDb({
ignoreNameRegex = '',
targetSchema = null,
}) {
const dbhan = systemConnection || (await connectUtility(driver, connection, 'read'));
if (!driver) driver = requireEngineDriver(connection);
const dbhan = systemConnection || (await connectUtility(driver, connection, 'read'));
const scriptDeployer = new ScriptDrivedDeployer(dbhan, driver, loadedDbModel ?? (await loadModelFolder(modelFolder)));
await scriptDeployer.runPre();
try {
const scriptDeployer = new ScriptDrivedDeployer(
dbhan,
driver,
loadedDbModel ?? (await loadModelFolder(modelFolder))
);
await scriptDeployer.runPre();
const { sql } = await generateDeploySql({
connection,
systemConnection: dbhan,
driver,
analysedStructure,
modelFolder,
loadedDbModel,
modelTransforms,
dbdiffOptionsExtra,
ignoreNameRegex,
targetSchema,
});
// console.log('RUNNING DEPLOY SCRIPT:', sql);
await executeQuery({ connection, systemConnection: dbhan, driver, sql, logScriptItems: true });
const { sql } = await generateDeploySql({
connection,
systemConnection: dbhan,
driver,
analysedStructure,
modelFolder,
loadedDbModel,
modelTransforms,
dbdiffOptionsExtra,
ignoreNameRegex,
targetSchema,
});
// console.log('RUNNING DEPLOY SCRIPT:', sql);
await executeQuery({ connection, systemConnection: dbhan, driver, sql, logScriptItems: true });
await scriptDeployer.runPost();
await scriptDeployer.runPost();
} finally {
if (!systemConnection) {
await driver.close(dbhan);
}
}
}
module.exports = deployDb;