diff --git a/e2e-tests/cypress/e2e/connect.cy.js b/e2e-tests/cypress/e2e/connect.cy.js index 3869063f7..8669670f3 100644 --- a/e2e-tests/cypress/e2e/connect.cy.js +++ b/e2e-tests/cypress/e2e/connect.cy.js @@ -23,45 +23,36 @@ describe('Initialization', () => { cy.contains('performance_schema'); }); - // it('SSH connection', () => { - // const runOnCI = Cypress.env('runOnCI'); + it('SSH connection', () => { + const runOnCI = Cypress.env('runOnCI'); - // cy.get('body') - // .trigger('keydown', { - // key: 'F1', - // code: 'F1', - // which: 112, - // keyCode: 112, - // bubbles: true, - // }) - // .trigger('keyup', { - // key: 'F1', - // code: 'F1', - // which: 112, - // keyCode: 112, - // bubbles: true, - // }); - // cy.get('body').type('Close all'); - // cy.get('body').type('{enter}'); + cy.visit('http://localhost:3000'); + cy.contains('Connections'); - // cy.visit('http://localhost:3000'); - // cy.get('[data-testid=ConnectionList_buttonNewConnection]').click(); - // cy.get('[data-testid=ConnectionDriverFields_connectionType]').select('MySQL'); - // cy.get('[data-testid=ConnectionDriverFields_user]').clear().type('root'); - // cy.get('[data-testid=ConnectionDriverFields_password]').clear().type('root'); + cy.realPress("F1"); + cy.realType("Close all"); + cy.realPress("Enter"); - // cy.get('[data-testid=ConnectionSshTunnelFields_sshLogin]').clear().type('root'); - // cy.get('[data-testid=ConnectionSshTunnelFields_sshPassword]').clear().type('root'); - // if (runOnCI) { - // cy.get('[data-testid=ConnectionSshTunnelFields_sshHost]').clear().type('mysql-ssh'); - // } else { - // cy.get('[data-testid=ConnectionSshTunnelFields_sshPort]').clear().type('16006'); - // } - // cy.get('[data-testid=ConnectionDriverFields_displayName]').clear().type('test-mysql-ssh-1'); - // cy.get('[data-testid=ConnectionTab_buttonSave]').click(); - // cy.get('[data-testid=ConnectionTab_buttonConnect]').click(); - // cy.contains('performance_schema'); - // }); + cy.get('[data-testid=ConnectionList_buttonNewConnection]').click(); + cy.get('[data-testid=ConnectionDriverFields_connectionType]').select('MySQL'); + cy.get('[data-testid=ConnectionDriverFields_user]').clear().type('root'); + cy.get('[data-testid=ConnectionDriverFields_password]').clear().type('root'); + + cy.get('[data-testid=ConnectionDriverFields_displayName]').clear().type('test-mysql-ssh-1'); + + cy.get('[data-testid=ConnectionTab_tabSshTunnel]').click(); + cy.get('[data-testid=ConnectionSshTunnelFields_useSshTunnel]').check(); + cy.get('[data-testid=ConnectionSshTunnelFields_sshLogin]').clear().type('root'); + cy.get('[data-testid=ConnectionSshTunnelFields_sshPassword]').clear().type('root'); + if (runOnCI) { + cy.get('[data-testid=ConnectionSshTunnelFields_sshHost]').clear().type('mysql-ssh'); + } else { + cy.get('[data-testid=ConnectionSshTunnelFields_sshPort]').clear().type('16006'); + } + 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'); diff --git a/e2e-tests/cypress/support/e2e.js b/e2e-tests/cypress/support/e2e.js index 0e7290a13..8d19da9bd 100644 --- a/e2e-tests/cypress/support/e2e.js +++ b/e2e-tests/cypress/support/e2e.js @@ -17,4 +17,6 @@ import './commands' // Alternatively you can use CommonJS syntax: -// require('./commands') \ No newline at end of file +// require('./commands') + +import "cypress-real-events"; \ No newline at end of file diff --git a/e2e-tests/package.json b/e2e-tests/package.json index 0f5eff1b0..4606e5c5d 100644 --- a/e2e-tests/package.json +++ b/e2e-tests/package.json @@ -7,6 +7,7 @@ "axios": "^1.7.9", "cross-env": "^7.0.3", "cypress": "^13.16.1", + "cypress-real-events": "^1.13.0", "kill-port": "^2.0.1", "start-server-and-test": "^2.0.8" }, diff --git a/e2e-tests/yarn.lock b/e2e-tests/yarn.lock index 1a31e6637..1c8ab226e 100644 --- a/e2e-tests/yarn.lock +++ b/e2e-tests/yarn.lock @@ -350,6 +350,11 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" +cypress-real-events@^1.13.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/cypress-real-events/-/cypress-real-events-1.13.0.tgz#6b7cd32dcac172db1493608f97a2576c7d0bd5af" + integrity sha512-LoejtK+dyZ1jaT8wGT5oASTPfsNV8/ClRp99ruN60oPj8cBJYod80iJDyNwfPAu4GCxTXOhhAv9FO65Hpwt6Hg== + cypress@^13.16.1: version "13.16.1" resolved "https://registry.yarnpkg.com/cypress/-/cypress-13.16.1.tgz#82e776f6ad2037ccce6b6feabed768615c476258" diff --git a/packages/web/src/elements/TabControl.svelte b/packages/web/src/elements/TabControl.svelte index a8aa06984..b95afae33 100644 --- a/packages/web/src/elements/TabControl.svelte +++ b/packages/web/src/elements/TabControl.svelte @@ -7,6 +7,7 @@ slot?: number; component?: any; props?: any; + testid?: string; } export let tabs: TabDef[]; @@ -27,7 +28,7 @@
{#each _.compact(tabs) as tab, index} -
(value = index)}> +
(value = index)} data-testid={tab.testid}> {tab.label} diff --git a/packages/web/src/tabs/ConnectionTab.svelte b/packages/web/src/tabs/ConnectionTab.svelte index df6616a23..b4167776d 100644 --- a/packages/web/src/tabs/ConnectionTab.svelte +++ b/packages/web/src/tabs/ConnectionTab.svelte @@ -218,18 +218,22 @@ label: 'General', component: ConnectionDriverFields, props: { getDatabaseList, currentConnection }, + testid: 'ConnectionTab_tabGeneral', }, driver?.showConnectionTab('sshTunnel', $values) && { label: 'SSH Tunnel', component: ConnectionSshTunnelFields, + testid: 'ConnectionTab_tabSshTunnel', }, driver?.showConnectionTab('ssl', $values) && { label: 'SSL', component: ConnectionSslFields, + testid: 'ConnectionTab_tabSsl', }, { label: 'Advanced', component: ConnectionAdvancedDriverFields, + testid: 'ConnectionTab_tabAdvanced', }, ]} /> diff --git a/workflow-templates/run-tests.yaml b/workflow-templates/run-tests.yaml index c813d251e..d2561fc2b 100644 --- a/workflow-templates/run-tests.yaml +++ b/workflow-templates/run-tests.yaml @@ -100,5 +100,9 @@ jobs: env: ORACLE_PASSWORD: Pwd2020Db + mysql-ssh: + build: ../../e2e-tests/mysql-ssh + + # cockroachdb: # image: cockroachdb/cockroach