From dab9d33394b5996614eddd211850c174b5e08ce3 Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Thu, 27 May 2021 10:28:52 +0200 Subject: [PATCH] test - small refactor --- ...{analyse.spec.js => table-analyse.spec.js} | 40 ++----------------- integration-tests/tools.js | 37 +++++++++++++++++ integration-tests/wait.js | 1 + 3 files changed, 42 insertions(+), 36 deletions(-) rename integration-tests/__tests__/{analyse.spec.js => table-analyse.spec.js} (75%) create mode 100644 integration-tests/tools.js diff --git a/integration-tests/__tests__/analyse.spec.js b/integration-tests/__tests__/table-analyse.spec.js similarity index 75% rename from integration-tests/__tests__/analyse.spec.js rename to integration-tests/__tests__/table-analyse.spec.js index a512ad5d9..04bdda9b9 100644 --- a/integration-tests/__tests__/analyse.spec.js +++ b/integration-tests/__tests__/table-analyse.spec.js @@ -1,15 +1,8 @@ -const engines = require('../engines'); const requireEngineDriver = require('dbgate-api/src/utility/requireEngineDriver'); -const crypto = require('crypto'); - -global.DBGATE_TOOLS = require('dbgate-tools'); - -function randomDbName() { - const generatedKey = crypto.randomBytes(6); - const newKey = generatedKey.toString('hex'); - return `db${newKey}`; -} +const engines = require('../engines'); +const { connect, randomDbName } = require('../tools'); +const t1Sql = 'CREATE TABLE t1 (id int not null primary key, val varchar(50) null)'; const t1Match = expect.objectContaining({ pureName: 't1', columns: [ @@ -32,32 +25,8 @@ const t1Match = expect.objectContaining({ ], }), }); -const t1Sql = 'CREATE TABLE t1 (id int not null primary key, val varchar(50) null)'; -async function connect(engine, database) { - const { connection } = engine; - const driver = requireEngineDriver(connection); - - if (engine.generateDbFile) { - const conn = await driver.connect({ - ...connection, - databaseFile: `dbtemp/${database}`, - }); - return conn; - } else { - const conn = await driver.connect(connection); - await driver.query(conn, `CREATE DATABASE ${database}`); - await driver.close(conn); - - const res = await driver.connect({ - ...connection, - database, - }); - return res; - } -} - -describe('Analyse tests', () => { +describe('Table analyse tests', () => { test.each(engines.map(engine => [engine.label, engine]))( 'Table structure - full analysis (%s)', async (label, engine) => { @@ -108,5 +77,4 @@ describe('Analyse tests', () => { await driver.close(conn); } ); - }); diff --git a/integration-tests/tools.js b/integration-tests/tools.js new file mode 100644 index 000000000..983c04fbf --- /dev/null +++ b/integration-tests/tools.js @@ -0,0 +1,37 @@ +global.DBGATE_TOOLS = require('dbgate-tools'); +const requireEngineDriver = require('dbgate-api/src/utility/requireEngineDriver'); +const crypto = require('crypto'); + +function randomDbName() { + const generatedKey = crypto.randomBytes(6); + const newKey = generatedKey.toString('hex'); + return `db${newKey}`; +} + +async function connect(engine, database) { + const { connection } = engine; + const driver = requireEngineDriver(connection); + + if (engine.generateDbFile) { + const conn = await driver.connect({ + ...connection, + databaseFile: `dbtemp/${database}`, + }); + return conn; + } else { + const conn = await driver.connect(connection); + await driver.query(conn, `CREATE DATABASE ${database}`); + await driver.close(conn); + + const res = await driver.connect({ + ...connection, + database, + }); + return res; + } +} + +module.exports = { + randomDbName, + connect, +}; diff --git a/integration-tests/wait.js b/integration-tests/wait.js index 6b2c2b3d9..b5bdfee7f 100644 --- a/integration-tests/wait.js +++ b/integration-tests/wait.js @@ -9,6 +9,7 @@ async function run() { try { const conn = await driver.connect(engine.connection); await driver.getVersion(conn); + console.log(`Connect to ${engine.label} - OK`); await driver.close(conn); break; } catch (err) {