diff --git a/e2e-tests/cypress.config.js b/e2e-tests/cypress.config.js
new file mode 100644
index 000000000..97f47c412
--- /dev/null
+++ b/e2e-tests/cypress.config.js
@@ -0,0 +1,9 @@
+const { defineConfig } = require("cypress");
+
+module.exports = defineConfig({
+ e2e: {
+ setupNodeEvents(on, config) {
+ // implement node event listeners here
+ },
+ },
+});
diff --git a/e2e-tests/cypress/e2e/connect.cy.js b/e2e-tests/cypress/e2e/connect.cy.js
new file mode 100644
index 000000000..810c32fba
--- /dev/null
+++ b/e2e-tests/cypress/e2e/connect.cy.js
@@ -0,0 +1,16 @@
+describe('Initialization', () => {
+ it('successfully loads', () => {
+ cy.visit('http://localhost:5001');
+ cy.contains('Database not selected');
+ });
+
+ it('adds connection', () => {
+ cy.visit('http://localhost:5001');
+ 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('Pwd2020Db');
+ cy.get('[data-testid=ConnectionDriverFields_port]').clear().type('16004');
+ cy.get('[data-testid=ConnectionTab_connect]').click();
+ cy.contains('performance_schema');
+ });
+});
diff --git a/e2e-tests/cypress/fixtures/example.json b/e2e-tests/cypress/fixtures/example.json
new file mode 100644
index 000000000..02e425437
--- /dev/null
+++ b/e2e-tests/cypress/fixtures/example.json
@@ -0,0 +1,5 @@
+{
+ "name": "Using fixtures to represent data",
+ "email": "hello@cypress.io",
+ "body": "Fixtures are a great way to mock data for responses to routes"
+}
diff --git a/e2e-tests/cypress/support/commands.js b/e2e-tests/cypress/support/commands.js
new file mode 100644
index 000000000..66ea16ef0
--- /dev/null
+++ b/e2e-tests/cypress/support/commands.js
@@ -0,0 +1,25 @@
+// ***********************************************
+// This example commands.js shows you how to
+// create various custom commands and overwrite
+// existing commands.
+//
+// For more comprehensive examples of custom
+// commands please read more here:
+// https://on.cypress.io/custom-commands
+// ***********************************************
+//
+//
+// -- This is a parent command --
+// Cypress.Commands.add('login', (email, password) => { ... })
+//
+//
+// -- This is a child command --
+// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... })
+//
+//
+// -- This is a dual command --
+// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... })
+//
+//
+// -- This will overwrite an existing command --
+// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... })
\ No newline at end of file
diff --git a/e2e-tests/cypress/support/e2e.js b/e2e-tests/cypress/support/e2e.js
new file mode 100644
index 000000000..0e7290a13
--- /dev/null
+++ b/e2e-tests/cypress/support/e2e.js
@@ -0,0 +1,20 @@
+// ***********************************************************
+// This example support/e2e.js is processed and
+// loaded automatically before your test files.
+//
+// This is a great place to put global configuration and
+// behavior that modifies Cypress.
+//
+// You can change the location of this file or turn off
+// automatically serving support files with the
+// 'supportFile' configuration option.
+//
+// You can read more here:
+// https://on.cypress.io/configuration
+// ***********************************************************
+
+// Import commands.js using ES2015 syntax:
+import './commands'
+
+// Alternatively you can use CommonJS syntax:
+// require('./commands')
\ No newline at end of file
diff --git a/e2e-tests/package.json b/e2e-tests/package.json
index 3d8b3dc5f..1c6b717ab 100644
--- a/e2e-tests/package.json
+++ b/e2e-tests/package.json
@@ -5,5 +5,8 @@
"license": "GPL",
"devDependencies": {
"cypress": "^13.16.1"
+ },
+ "scripts": {
+ "cy:open": "cypress open"
}
}
diff --git a/packages/web/src/settings/ConnectionDriverFields.svelte b/packages/web/src/settings/ConnectionDriverFields.svelte
index f0e15f38e..70c8eb4da 100644
--- a/packages/web/src/settings/ConnectionDriverFields.svelte
+++ b/packages/web/src/settings/ConnectionDriverFields.svelte
@@ -76,6 +76,7 @@
name="engine"
isNative
disabled={isConnected}
+ data-testid="ConnectionDriverFields_connectionType"
options={[
{ label: '(select connection type)', value: '' },
..._.sortBy(
@@ -116,6 +117,7 @@