test trigger createSql

This commit is contained in:
Jan Prochazka
2024-12-20 09:26:53 +01:00
parent 2488cee7ea
commit 0edc7f077f
3 changed files with 28 additions and 26 deletions

View File

@@ -158,6 +158,13 @@ describe('Object analyse', () => {
const createdTrigger = structure[objectTypeField].find(x => x.pureName == expected.pureName); const createdTrigger = structure[objectTypeField].find(x => x.pureName == expected.pureName);
expect(createdTrigger).toEqual(expect.objectContaining(expected)); expect(createdTrigger).toEqual(expect.objectContaining(expected));
// test trigger createSql
if (triggerOtherCreateSql) await runCommandOnDriver(conn, driver, triggerOtherCreateSql);
await runCommandOnDriver(conn, driver, createdTrigger.createSql);
const structure2 = await driver.analyseFull(conn);
const createdTrigger2 = structure2[objectTypeField].find(x => x.pureName == expected.pureName);
expect(createdTrigger2).toEqual(expect.objectContaining(expected));
}) })
); );
}); });

View File

@@ -354,6 +354,13 @@ const sqlServerEngine = {
drop1: 'DROP PROCEDURE obj1', drop1: 'DROP PROCEDURE obj1',
drop2: 'DROP PROCEDURE obj2', drop2: 'DROP PROCEDURE obj2',
}, },
{
type:'triggers',
create1: 'CREATE TRIGGER obj1 ON t1 AFTER INSERT AS BEGIN SELECT * FROM t1 END',
create2: 'CREATE TRIGGER obj2 ON t2 AFTER INSERT AS BEGIN SELECT * FROM t2 END',
drop1: 'DROP TRIGGER obj1',
drop2: 'DROP TRIGGER obj2',
}
], ],
parametersOtherSql: ['CREATE PROCEDURE obj2 (@p1 int, @p2 int) AS SELECT id from t1'], parametersOtherSql: ['CREATE PROCEDURE obj2 (@p1 int, @p2 int) AS SELECT id from t1'],
parameters: [ parameters: [
@@ -419,14 +426,8 @@ const sqlServerEngine = {
triggers: [ triggers: [
{ {
testName: 'triggers before each row', testName: 'triggers before each row',
create: `CREATE TRIGGER obj1 create: `CREATE TRIGGER obj1 ON t1 AFTER INSERT AS BEGIN SELECT * FROM t1 END`,
ON t1 drop: 'DROP TRIGGER obj1',
AFTER INSERT
AS
BEGIN
SELECT * FROM t1
END;`,
drop: 'DROP TRIGGER obj1;',
objectTypeField: 'triggers', objectTypeField: 'triggers',
expected: { expected: {
pureName: 'obj1', pureName: 'obj1',
@@ -436,14 +437,8 @@ END;`,
}, },
{ {
testName: 'triggers before each row', testName: 'triggers before each row',
create: `CREATE TRIGGER obj1 create: `CREATE TRIGGER obj1 ON t1 AFTER UPDATE AS BEGIN SELECT * FROM t1 END`,
ON t1 drop: 'DROP TRIGGER obj1',
AFTER UPDATE
AS
BEGIN
SELECT * FROM t1
END;`,
drop: 'DROP TRIGGER obj1;',
objectTypeField: 'triggers', objectTypeField: 'triggers',
expected: { expected: {
pureName: 'obj1', pureName: 'obj1',
@@ -580,17 +575,17 @@ const enginesOnCi = [
oracleEngine, oracleEngine,
]; ];
const enginesOnLocal = { const enginesOnLocal = [
// all engines, which would be run on local test // all engines, which would be run on local test
mysqlEngine, // mysqlEngine,
mariaDbEngine, // mariaDbEngine,
postgreSqlEngine, // postgreSqlEngine,
sqlServerEngine, sqlServerEngine,
sqliteEngine, // sqliteEngine,
cockroachDbEngine, // cockroachDbEngine,
clickhouseEngine, // clickhouseEngine,
oracleEngine, // oracleEngine,
}; ];
module.exports = process.env.CITEST ? enginesOnCi : enginesOnLocal; module.exports = process.env.CITEST ? enginesOnCi : enginesOnLocal;

View File

@@ -2,6 +2,6 @@ module.exports = `
select o.object_id as objectId, o.modify_date as modifyDate, o.type, o.name as pureName, s.name as schemaName select o.object_id as objectId, o.modify_date as modifyDate, o.type, o.name as pureName, s.name as schemaName
from sys.objects o from sys.objects o
inner join sys.schemas s on o.schema_id = s.schema_id inner join sys.schemas s on o.schema_id = s.schema_id
where o.type in ('U', 'V', 'P', 'IF', 'FN', 'TF') -- , 'TR' - triggers disabled where o.type in ('U', 'V', 'P', 'IF', 'FN', 'TF', 'TR')
and s.name =SCHEMA_NAME_CONDITION and s.name =SCHEMA_NAME_CONDITION
`; `;