createSql test + postgre FIX

This commit is contained in:
Jan Prochazka 2021-05-27 15:46:21 +02:00
parent 8896260df7
commit 73d8ad36ad
6 changed files with 33 additions and 10 deletions

View File

@ -1,4 +1,4 @@
name: Electron app
name: Electron app BETA
on:
push:

View File

@ -1,4 +1,4 @@
name: Docker image
name: Docker image BETA
# on: [push]

View File

@ -16,7 +16,7 @@ const obj1Match = expect.objectContaining({
describe('Object analyse', () => {
test.each(flatSource())(
'Full analysis (%s - %s)',
'Full analysis - %s - %s',
testWrapper(async (conn, driver, type, object, engine) => {
for (const sql of initSql) await driver.query(conn, sql);
@ -29,7 +29,7 @@ describe('Object analyse', () => {
);
test.each(flatSource())(
'Incremental analysis - add (%s - %s)',
'Incremental analysis - add - %s - %s',
testWrapper(async (conn, driver, type, object, engine) => {
for (const sql of initSql) await driver.query(conn, sql);
@ -44,7 +44,7 @@ describe('Object analyse', () => {
);
test.each(flatSource())(
'Incremental analysis - drop (%s - %s)',
'Incremental analysis - drop - %s - %s',
testWrapper(async (conn, driver, type, object, engine) => {
for (const sql of initSql) await driver.query(conn, sql);
@ -58,4 +58,25 @@ describe('Object analyse', () => {
expect(structure2[type][0]).toEqual(obj1Match);
})
);
test.each(flatSource())(
'Create SQL - add - %s - %s',
testWrapper(async (conn, driver, type, object, engine) => {
for (const sql of initSql) await driver.query(conn, sql);
await driver.query(conn, object.create1);
const structure1 = await driver.analyseFull(conn);
await driver.query(conn, object.drop1);
const structure2 = await driver.analyseIncremental(conn, structure1);
expect(structure2[type].length).toEqual(0);
await driver.query(conn, structure1[type][0].createSql);
const structure3 = await driver.analyseIncremental(conn, structure2);
expect(structure3[type].length).toEqual(1);
expect(structure3[type][0]).toEqual(obj1Match);
})
);
});

View File

@ -27,7 +27,7 @@ const t1Match = expect.objectContaining({
describe('Table analyse', () => {
test.each(engines.map(engine => [engine.label, engine]))(
'Table structure - full analysis (%s)',
'Table structure - full analysis - %s',
testWrapper(async (conn, driver, engine) => {
await driver.query(conn, t1Sql);
@ -39,7 +39,7 @@ describe('Table analyse', () => {
);
test.each(engines.map(engine => [engine.label, engine]))(
'Table add - incremental analysis (%s)',
'Table add - incremental analysis - %s',
testWrapper(async (conn, driver, engine) => {
await driver.query(conn, 'CREATE TABLE t0 (id0 int)');
const structure1 = await driver.analyseFull(conn);
@ -52,7 +52,7 @@ describe('Table analyse', () => {
);
test.each(engines.map(engine => [engine.label, engine]))(
'Table remove - incremental analysis (%s)',
'Table remove - incremental analysis - %s',
testWrapper(async (conn, driver, engine) => {
await driver.query(conn, t1Sql);
await driver.query(conn, 'CREATE TABLE t2 (id2 int)');

View File

@ -114,6 +114,7 @@ class Analyser extends DatabaseAnalyser {
objectId: `procedures:${proc.schema_name}.${proc.pure_name}`,
pureName: proc.pure_name,
schemaName: proc.schema_name,
createSql: `CREATE PROCEDURE "${proc.schema_name}"."${proc.pure_name}"() LANGUAGE ${proc.language}\nAS\n$$\n${proc.definition}\n$$`,
contentHash: proc.hash_code,
})),
functions: routines.rows

View File

@ -2,9 +2,10 @@ module.exports = `
select
routine_name as "pure_name",
routine_schema as "schema_name",
routine_definition as "create_sql",
routine_definition as "definition",
md5(routine_definition) as "hash_code",
routine_type as "object_type"
routine_type as "object_type",
external_language as "language"
from
information_schema.routines where routine_schema != 'information_schema' and routine_schema != 'pg_catalog'
and (