diff --git a/e2e-tests/.localconfig.js b/e2e-tests/.localconfig.js index 7d29d7c75..bc50cfece 100644 --- a/e2e-tests/.localconfig.js +++ b/e2e-tests/.localconfig.js @@ -3,5 +3,5 @@ module.exports = { postgres: true, mssql: true, oracle: true, - // sqlite: true, + sqlite: true, }; diff --git a/e2e-tests/cypress.config.js b/e2e-tests/cypress.config.js index 403ed02d9..c335795d6 100644 --- a/e2e-tests/cypress.config.js +++ b/e2e-tests/cypress.config.js @@ -1,6 +1,5 @@ const { defineConfig } = require('cypress'); const killPort = require('kill-port'); -const { clearTestingData } = require('./e2eTestTools'); const waitOn = require('wait-on'); const { exec } = require('child_process'); const fs = require('fs'); @@ -14,7 +13,6 @@ module.exports = defineConfig({ // implement node event listeners here on('before:spec', async details => { - await clearTestingData(); // console.log('********************* DETAILS *********************', JSON.stringify(details)); if (config.isInteractive) { diff --git a/e2e-tests/cypress/e2e/multi-sql.cy.js b/e2e-tests/cypress/e2e/multi-sql.cy.js index 1f344a21f..83e73d390 100644 --- a/e2e-tests/cypress/e2e/multi-sql.cy.js +++ b/e2e-tests/cypress/e2e/multi-sql.cy.js @@ -46,6 +46,9 @@ function multiTest(testName, testDefinition) { }) ); } + if (localconfig.sqlite) { + it(testName + ' Sqlite', () => testDefinition('Sqlite-connection', 'sqlite@dbgate-plugin-sqlite')); + } } describe('Mutli-sql tests', () => { diff --git a/e2e-tests/env/multi-sql/.env b/e2e-tests/env/multi-sql/.env index 513941f6f..b8657106c 100644 --- a/e2e-tests/env/multi-sql/.env +++ b/e2e-tests/env/multi-sql/.env @@ -1,4 +1,4 @@ -CONNECTIONS=mysql,postgres,mssql,oracle +CONNECTIONS=mysql,postgres,mssql,oracle,sqlite LABEL_mysql=MySql-connection SERVER_mysql=localhost @@ -30,3 +30,7 @@ USER_mssql=sa PASSWORD_mssql=Pwd2020Db PORT_mssql=16014 ENGINE_mssql=mssql@dbgate-plugin-mssql + +LABEL_sqlite=Sqlite-connection +FILE_sqlite=my_guitar_shop.db +ENGINE_sqlite=sqlite@dbgate-plugin-sqlite diff --git a/e2e-tests/init/multi-sql.js b/e2e-tests/init/multi-sql.js index 2ec3bada7..f2f60b4f6 100644 --- a/e2e-tests/init/multi-sql.js +++ b/e2e-tests/init/multi-sql.js @@ -9,19 +9,23 @@ const dbgatePluginPostgres = require('dbgate-plugin-postgres'); dbgateApi.registerPlugins(dbgatePluginPostgres); async function createDb(connection, dropDbSql, createDbSql, database = 'my_guitar_shop') { - try { - await dbgateApi.executeQuery({ - connection, - sql: dropDbSql, - }); - } catch (err) { - console.error('Failed to drop database', err); + if (dropDbSql) { + try { + await dbgateApi.executeQuery({ + connection, + sql: dropDbSql, + }); + } catch (err) { + console.error('Failed to drop database', err); + } } - await dbgateApi.executeQuery({ - connection, - sql: createDbSql, - }); + if (createDbSql) { + await dbgateApi.executeQuery({ + connection, + sql: createDbSql, + }); + } await dbgateApi.importDbFromFolder({ connection: { @@ -89,6 +93,18 @@ async function run() { 'C##my_guitar_shop' ); } + + if (localconfig.sqlite) { + await createDb( + { + databaseFile: process.env.FILE_sqlite, + singleDatabase: true, + engine: 'sqlite@dbgate-plugin-sqlite', + }, + null, + null + ); + } } dbgateApi.runScript(run); diff --git a/e2e-tests/package.json b/e2e-tests/package.json index 43ff95b1b..a40162814 100644 --- a/e2e-tests/package.json +++ b/e2e-tests/package.json @@ -22,12 +22,12 @@ "cy:run:team": "cypress run --spec cypress/e2e/team.cy.js", "cy:run:multi-sql": "cypress run --spec cypress/e2e/multi-sql.cy.js", - "start:add-connection": "cd .. && node packer/build/bundle.js --listen-api --run-e2e-tests", - "start:portal": "cd .. && env-cmd -f e2e-tests/env/portal/.env node e2e-tests/init/portal.js && env-cmd -f e2e-tests/env/portal/.env node packer/build/bundle.js --listen-api --run-e2e-tests", - "start:oauth": "cd .. && env-cmd -f e2e-tests/env/oauth/.env node packer/build/bundle.js --listen-api --run-e2e-tests", - "start:browse-data": "cd .. && env-cmd -f e2e-tests/env/browse-data/.env node e2e-tests/init/browse-data.js && env-cmd -f e2e-tests/env/browse-data/.env node packer/build/bundle.js --listen-api --run-e2e-tests", - "start:team": "cd .. && env-cmd -f e2e-tests/env/team/.env node e2e-tests/init/team.js && env-cmd -f e2e-tests/env/team/.env node packer/build/bundle.js --listen-api --run-e2e-tests", - "start:multi-sql": "cd .. && env-cmd -f e2e-tests/env/multi-sql/.env node e2e-tests/init/multi-sql.js && env-cmd -f e2e-tests/env/multi-sql/.env node packer/build/bundle.js --listen-api --run-e2e-tests", + "start:add-connection": "node clearTestingData && cd .. && node packer/build/bundle.js --listen-api --run-e2e-tests", + "start:portal": "node clearTestingData && cd .. && env-cmd -f e2e-tests/env/portal/.env node e2e-tests/init/portal.js && env-cmd -f e2e-tests/env/portal/.env node packer/build/bundle.js --listen-api --run-e2e-tests", + "start:oauth": "node clearTestingData && cd .. && env-cmd -f e2e-tests/env/oauth/.env node packer/build/bundle.js --listen-api --run-e2e-tests", + "start:browse-data": "node clearTestingData && cd .. && env-cmd -f e2e-tests/env/browse-data/.env node e2e-tests/init/browse-data.js && env-cmd -f e2e-tests/env/browse-data/.env node packer/build/bundle.js --listen-api --run-e2e-tests", + "start:team": "node clearTestingData && cd .. && env-cmd -f e2e-tests/env/team/.env node e2e-tests/init/team.js && env-cmd -f e2e-tests/env/team/.env node packer/build/bundle.js --listen-api --run-e2e-tests", + "start:multi-sql": "node clearTestingData && cd .. && env-cmd -f e2e-tests/env/multi-sql/.env node e2e-tests/init/multi-sql.js && env-cmd -f e2e-tests/env/multi-sql/.env node packer/build/bundle.js --listen-api --run-e2e-tests", "test:add-connection": "start-server-and-test start:add-connection http://localhost:3000 cy:run:add-connection", "test:portal": "start-server-and-test start:portal http://localhost:3000 cy:run:portal", diff --git a/yarn.lock b/yarn.lock index 28021eeb5..c9a66c113 100644 --- a/yarn.lock +++ b/yarn.lock @@ -542,7 +542,7 @@ "@azure/core-util" "^1.1.0" tslib "^2.6.2" -"@azure/core-auth@^1.8.0", "@azure/core-auth@^1.9.0": +"@azure/core-auth@^1.7.1", "@azure/core-auth@^1.8.0", "@azure/core-auth@^1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@azure/core-auth/-/core-auth-1.9.0.tgz#ac725b03fabe3c892371065ee9e2041bee0fd1ac" integrity sha512-FPwHpZywuyasDSLMqJ6fhbOK3TqUdviZNF8OqRGA4W5Ewib2lEEZ+pBsYcBa88B2NGO/SEnYPGhyBqNlE8ilSw== @@ -604,6 +604,20 @@ https-proxy-agent "^7.0.0" tslib "^2.6.2" +"@azure/core-rest-pipeline@^1.15.1": + version "1.19.0" + resolved "https://registry.yarnpkg.com/@azure/core-rest-pipeline/-/core-rest-pipeline-1.19.0.tgz#4cc60d3f2ee68cf0ef379851b4ed175f7932c8c5" + integrity sha512-bM3308LRyg5g7r3Twprtqww0R/r7+GyVxj4BafcmVPo4WQoGt5JXuaqxHEFjw2o3rvFZcUPiqJMg6WuvEEeVUA== + dependencies: + "@azure/abort-controller" "^2.0.0" + "@azure/core-auth" "^1.8.0" + "@azure/core-tracing" "^1.0.1" + "@azure/core-util" "^1.11.0" + "@azure/logger" "^1.0.0" + http-proxy-agent "^7.0.0" + https-proxy-agent "^7.0.0" + tslib "^2.6.2" + "@azure/core-rest-pipeline@^1.17.0": version "1.18.2" resolved "https://registry.yarnpkg.com/@azure/core-rest-pipeline/-/core-rest-pipeline-1.18.2.tgz#fa3a83b412d4b3e33edca30a71b1d5838306c075" @@ -625,6 +639,13 @@ dependencies: tslib "^2.6.2" +"@azure/core-tracing@^1.1.1": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@azure/core-tracing/-/core-tracing-1.2.0.tgz#7be5d53c3522d639cf19042cbcdb19f71bc35ab2" + integrity sha512-UKTiEJPkWcESPYJz3X5uKRYyOcJD+4nYph+KpfdPRnQJVrZfk0KJgdnaAWKfhsBBtAf/D58Az4AvCJEmWgIBAg== + dependencies: + tslib "^2.6.2" + "@azure/core-util@^1.0.0", "@azure/core-util@^1.1.0", "@azure/core-util@^1.2.0", "@azure/core-util@^1.6.1", "@azure/core-util@^1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@azure/core-util/-/core-util-1.9.0.tgz#469afd7e6452d5388b189f90d33f7756b0b210d1" @@ -633,7 +654,7 @@ "@azure/abort-controller" "^2.0.0" tslib "^2.6.2" -"@azure/core-util@^1.11.0": +"@azure/core-util@^1.11.0", "@azure/core-util@^1.8.1": version "1.11.0" resolved "https://registry.yarnpkg.com/@azure/core-util/-/core-util-1.11.0.tgz#f530fc67e738aea872fbdd1cc8416e70219fada7" integrity sha512-DxOSLua+NdpWoSqULhjDyAZTXFdP/LKkqtYuxxz1SCN289zk3OG8UOpnCQAz/tygyACBtWp/BoO72ptK7msY8g== @@ -641,6 +662,22 @@ "@azure/abort-controller" "^2.0.0" tslib "^2.6.2" +"@azure/cosmos@^4.1.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@azure/cosmos/-/cosmos-4.2.0.tgz#eb1379a6bf1d8e12d07151ce6e53f5248d63a715" + integrity sha512-acfAQTYLxgB/iZK7XvTVYe9NPk6DECEgcIXDQhyn7Uo4dGxeeW5D3YqLjLJrrzND5Iawer3eUQ5/iiLWvTGAxQ== + dependencies: + "@azure/abort-controller" "^2.0.0" + "@azure/core-auth" "^1.7.1" + "@azure/core-rest-pipeline" "^1.15.1" + "@azure/core-tracing" "^1.1.1" + "@azure/core-util" "^1.8.1" + fast-json-stable-stringify "^2.1.0" + jsbi "^4.3.0" + priorityqueuejs "^2.0.0" + semaphore "^1.1.0" + tslib "^2.6.2" + "@azure/identity@^3.4.1": version "3.4.2" resolved "https://registry.yarnpkg.com/@azure/identity/-/identity-3.4.2.tgz#6b01724c9caac7cadab6b63c76584345bda8e2de" @@ -5242,7 +5279,7 @@ fast-glob@^3.0.3, fast-glob@^3.3.2: merge2 "^1.3.0" micromatch "^4.0.4" -fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== @@ -7852,6 +7889,11 @@ js2xmlparser@^4.0.2: dependencies: xmlcreate "^2.0.4" +jsbi@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/jsbi/-/jsbi-4.3.0.tgz#b54ee074fb6fcbc00619559305c8f7e912b04741" + integrity sha512-SnZNcinB4RIcnEyZqFPdGPVgrg2AcnykiBy0sHVJQKHYeaLUvi3Exj+iaPpLnFVkDPZIV4U0yvgC9/R4uEAZ9g== + jsbn@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" @@ -9807,6 +9849,11 @@ printj@~1.1.0: resolved "https://registry.yarnpkg.com/printj/-/printj-1.1.2.tgz#d90deb2975a8b9f600fb3a1c94e3f4c53c78a222" integrity sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ== +priorityqueuejs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/priorityqueuejs/-/priorityqueuejs-2.0.0.tgz#96064040edd847ee9dd3013d8e16297399a6bd4f" + integrity sha512-19BMarhgpq3x4ccvVi8k2QpJZcymo/iFUcrhPd4V96kYGovOdTsWwy7fxChYi4QY+m2EnGBWSX9Buakz+tWNQQ== + process-nextick-args@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" @@ -10528,6 +10575,11 @@ secure-json-parse@^2.4.0: resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.7.0.tgz#5a5f9cd6ae47df23dba3151edd06855d47e09862" integrity sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw== +semaphore@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/semaphore/-/semaphore-1.1.0.tgz#aaad8b86b20fe8e9b32b16dc2ee682a8cd26a8aa" + integrity sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA== + semiver@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/semiver/-/semiver-1.1.0.tgz#9c97fb02c21c7ce4fcf1b73e2c7a24324bdddd5f"