dbgate/integration-tests/wait.js

33 lines
987 B
JavaScript
Raw Normal View History

2021-05-27 07:26:37 +00:00
const requireEngineDriver = require('dbgate-api/src/utility/requireEngineDriver');
const engines = require('./engines');
2021-05-27 11:07:58 +00:00
const { extractConnection } = require('./tools');
2024-08-20 10:18:55 +00:00
global.DBGATE_PACKAGES = {
'dbgate-tools': require('dbgate-tools'),
'dbgate-sqltree': require('dbgate-sqltree'),
};
2021-05-27 07:26:37 +00:00
2021-05-27 10:26:20 +00:00
async function connectEngine(engine) {
2021-05-27 11:07:58 +00:00
const connection = extractConnection(engine);
const driver = requireEngineDriver(connection);
2021-05-27 10:26:20 +00:00
for (;;) {
try {
2021-05-27 11:07:58 +00:00
const conn = await driver.connect(connection);
2021-05-27 10:26:20 +00:00
await driver.getVersion(conn);
console.log(`Connect to ${engine.label} - OK`);
await driver.close(conn);
return;
} catch (err) {
console.log(`Waiting for ${engine.label}, error: ${err.message}`);
await new Promise(resolve => setTimeout(resolve, 2500));
continue;
2021-05-27 07:26:37 +00:00
}
}
2021-05-27 07:12:21 +00:00
}
2021-05-27 10:26:20 +00:00
async function run() {
await new Promise(resolve => setTimeout(resolve, 10000));
await Promise.all(engines.map(engine => connectEngine(engine)));
}
2021-05-27 07:12:21 +00:00
run();