From 5405b9bf720f1d2db64bb921fbbf3234e847b3b0 Mon Sep 17 00:00:00 2001 From: "SPRINX0\\prochazka" Date: Mon, 9 Dec 2024 16:32:56 +0100 Subject: [PATCH] cypress run server inline test --- e2e-tests/cypress.config.js | 28 ++++++++++++++++++- e2e-tests/cypress/e2e/connect.cy.js | 8 ++++++ .../e2eTestTools.js | 16 +++++++---- e2e-tests/package.json | 10 +++---- .../settings/ConnectionDriverFields.svelte | 4 ++- 5 files changed, 54 insertions(+), 12 deletions(-) rename common/clearDataWithBackup.js => e2e-tests/e2eTestTools.js (70%) diff --git a/e2e-tests/cypress.config.js b/e2e-tests/cypress.config.js index 97f47c412..720eaff2a 100644 --- a/e2e-tests/cypress.config.js +++ b/e2e-tests/cypress.config.js @@ -1,9 +1,35 @@ -const { defineConfig } = require("cypress"); +const { defineConfig } = require('cypress'); +const { clearDataWithBackup } = require('./e2eTestTools'); +const { exec } = require('child_process'); +const waitOn = require('wait-on'); module.exports = defineConfig({ e2e: { setupNodeEvents(on, config) { // implement node event listeners here + let serverProcess; + + on('before:spec', async details => { + console.log('******** BEFORE RUN ****************'); + clearDataWithBackup(); + + serverProcess = exec('yarn start'); + await waitOn({ resources: ['http://localhost:3000'] }); + serverProcess.stdout.on('data', data => { + console.log(data.toString()); + }); + serverProcess.stderr.on('data', data => { + console.error(data.toString()); + }); + }); + + on('after:spec', () => { + console.log('******** AFTER RUN ****************', serverProcess); + if (serverProcess) { + console.log('Stopping local server...'); + serverProcess.kill(); + } + }); }, }, }); diff --git a/e2e-tests/cypress/e2e/connect.cy.js b/e2e-tests/cypress/e2e/connect.cy.js index 9ed86cfd5..b03266038 100644 --- a/e2e-tests/cypress/e2e/connect.cy.js +++ b/e2e-tests/cypress/e2e/connect.cy.js @@ -14,7 +14,15 @@ describe('Initialization', () => { if (process.env.CI) { cy.get('[data-testid=ConnectionDriverFields_server]').clear().type('mysql'); } + cy.get('[data-testid=ConnectionDriverFields_displayName]').clear().type('test-mysql-1'); + cy.get('[data-testid=ConnectionTab_buttonSave]').click(); cy.get('[data-testid=ConnectionTab_buttonConnect]').click(); cy.contains('performance_schema'); }); + + // it('import chinook DB', () => { + // cy.visit('http://localhost:3000'); + // cy.findByText('test-mysql-1').dblclick(); + // }); + }); diff --git a/common/clearDataWithBackup.js b/e2e-tests/e2eTestTools.js similarity index 70% rename from common/clearDataWithBackup.js rename to e2e-tests/e2eTestTools.js index f8e7e2bc6..3d34035be 100644 --- a/common/clearDataWithBackup.js +++ b/e2e-tests/e2eTestTools.js @@ -18,9 +18,15 @@ function createTimeStamp() { return ts; } -if (fs.existsSync(path.join(baseDir, 'connections.jsonl'))) { - fs.renameSync( - path.join(baseDir, 'connections.jsonl'), - path.join(baseDir, `connections-${createTimeStamp()}.jsonl.bak`) - ); +function clearDataWithBackup() { + if (fs.existsSync(path.join(baseDir, 'connections.jsonl'))) { + fs.renameSync( + path.join(baseDir, 'connections.jsonl'), + path.join(baseDir, `connections-${createTimeStamp()}.jsonl.bak`) + ); + } } + +module.exports = { + clearDataWithBackup, +}; diff --git a/e2e-tests/package.json b/e2e-tests/package.json index 08754e7fd..b2e69721c 100644 --- a/e2e-tests/package.json +++ b/e2e-tests/package.json @@ -9,11 +9,11 @@ "start-server-and-test": "^2.0.8" }, "scripts": { - "cy:open": "cypress open", + "cy:open": "cypress open --config experimentalInteractiveRunEvents=true", "cy:run": "cypress run", - "start:ci": "cd .. && cross-env CI=true node packer/build/bundle.js --listen-api --run-packer-build", - "start:local": "cd .. && node common/clearDataWithBackup.js && node packer/build/bundle.js --listen-api --run-packer-build", - "test:ci": "start-server-and-test start:ci http://localhost:3000 cy:run", - "test:local": "start-server-and-test start:local http://localhost:3000 cy:run" + "cy:run:ci": "cross-env CI=true cypress run", + "start": "cd .. && node packer/build/bundle.js --listen-api --run-packer-build", + "test:ci": "start-server-and-test start http://localhost:3000 cy:run:ci", + "test": "start-server-and-test start http://localhost:3000 cy:run" } } diff --git a/packages/web/src/settings/ConnectionDriverFields.svelte b/packages/web/src/settings/ConnectionDriverFields.svelte index 70c8eb4da..40de755ee 100644 --- a/packages/web/src/settings/ConnectionDriverFields.svelte +++ b/packages/web/src/settings/ConnectionDriverFields.svelte @@ -411,7 +411,8 @@ name="displayName" templateProps={{ noMargin: true }} disabled={isConnected} - /> + data-testid="ConnectionDriverFields_displayName" + />