From cf77e306fe21000c6a6cc84347d0618b3a93de7c Mon Sep 17 00:00:00 2001
From: Nemanja Glumac <31325167+nemanjaglumac@users.noreply.github.com>
Date: Mon, 3 May 2021 14:22:31 +0200
Subject: [PATCH] Reorganize test folder: Move e2e support files into a
 separate folder (#15899)

---
 frontend/test/__runner__/run_cypress_tests.js              | 2 +-
 frontend/test/__support__/{ => e2e}/commands.js            | 2 +-
 frontend/test/{ => __support__/e2e}/cypress-plugins.js     | 2 +-
 frontend/test/__support__/e2e/cypress-snapshots.json       | 6 ++++++
 frontend/test/__support__/{ => e2e}/cypress.js             | 4 ++--
 frontend/test/{ => __support__/e2e}/cypress.json           | 4 ++--
 frontend/test/__support__/{ => e2e}/cypress_data.js        | 0
 .../test/__support__/{ => e2e}/cypress_sample_dataset.js   | 0
 frontend/test/cypress-snapshots.json                       | 6 ------
 frontend/test/metabase-db/mongo/add.cy.spec.js             | 2 +-
 frontend/test/metabase-db/mongo/query.cy.spec.js           | 2 +-
 frontend/test/metabase-db/mysql/add.cy.spec.js             | 2 +-
 frontend/test/metabase-db/mysql/custom-column.cy.spec.js   | 6 +++++-
 frontend/test/metabase-db/mysql/query.cy.spec.js           | 2 +-
 frontend/test/metabase-db/postgres/add.cy.spec.js          | 2 +-
 .../test/metabase-db/postgres/custom-column.cy.spec.js     | 2 +-
 frontend/test/metabase-db/postgres/native.cy.spec.js       | 2 +-
 frontend/test/metabase-db/postgres/permissions.cy.spec.js  | 4 ++--
 frontend/test/metabase-db/postgres/query.cy.spec.js        | 2 +-
 frontend/test/metabase-db/postgres/sandboxes.cy.spec.js    | 4 ++--
 frontend/test/metabase-smoketest/admin.cy.spec.js          | 4 ++--
 frontend/test/metabase-smoketest/admin_setup.cy.spec.js    | 4 ++--
 frontend/test/metabase-smoketest/user.cy.spec.js           | 2 +-
 .../test/metabase/scenarios/admin/databases/add.cy.spec.js | 2 +-
 .../metabase/scenarios/admin/databases/edit.cy.spec.js     | 2 +-
 .../metabase/scenarios/admin/databases/list.cy.spec.js     | 2 +-
 .../metabase/scenarios/admin/datamodel/editor.cy.spec.js   | 4 ++--
 .../metabase/scenarios/admin/datamodel/field.cy.spec.js    | 4 ++--
 .../scenarios/admin/datamodel/hide_tables.cy.spec.js       | 2 +-
 .../metabase/scenarios/admin/datamodel/metadata.cy.spec.js | 4 ++--
 .../metabase/scenarios/admin/datamodel/metrics.cy.spec.js  | 4 ++--
 .../metabase/scenarios/admin/datamodel/segments.cy.spec.js | 4 ++--
 .../metabase/scenarios/admin/datamodel/table.cy.spec.js    | 2 +-
 .../test/metabase/scenarios/admin/people/people.cy.spec.js | 4 ++--
 .../scenarios/admin/permissions/permissions.cy.spec.js     | 2 +-
 .../scenarios/admin/permissions/sandboxes.cy.spec.js       | 6 +++---
 .../scenarios/admin/settings/localization.cy.spec.js       | 4 ++--
 .../metabase/scenarios/admin/settings/settings.cy.spec.js  | 2 +-
 .../metabase/scenarios/admin/settings/spinner.cy.spec.js   | 2 +-
 .../scenarios/admin/settings/whitelabel.cy.spec.js         | 2 +-
 .../scenarios/admin/troubleshooting/tasks.cy.spec.js       | 2 +-
 frontend/test/metabase/scenarios/alert/alert.cy.spec.js    | 2 +-
 .../test/metabase/scenarios/alert/alert_auth.cy.spec.js    | 2 +-
 .../test/metabase/scenarios/alert/email_alert.cy.spec.js   | 2 +-
 frontend/test/metabase/scenarios/audit/ad-hoc.cy.spec.js   | 2 +-
 frontend/test/metabase/scenarios/audit/auditing.cy.spec.js | 6 +++---
 frontend/test/metabase/scenarios/auth/search.cy.spec.js    | 2 +-
 frontend/test/metabase/scenarios/auth/signin.cy.spec.js    | 4 ++--
 frontend/test/metabase/scenarios/auth/sso.cy.spec.js       | 2 +-
 .../metabase/scenarios/collections/collections.cy.spec.js  | 4 ++--
 .../metabase/scenarios/collections/permissions.cy.spec.js  | 4 ++--
 .../scenarios/collections/personal-collections.cy.spec.js  | 4 ++--
 .../scenarios/dashboard/chained-filters.cy.spec.js         | 4 ++--
 .../scenarios/dashboard/dashboard-drill.cy.spec.js         | 4 ++--
 .../test/metabase/scenarios/dashboard/dashboard.cy.spec.js | 4 ++--
 .../dashboard/dashboard_data_permissions.cy.spec.js        | 6 +++++-
 .../scenarios/dashboard/dashboard_local-only.cy.spec.js    | 4 ++--
 .../test/metabase/scenarios/dashboard/embed.cy.spec.js     | 2 +-
 .../metabase/scenarios/dashboard/nested-cards.cy.spec.js   | 2 +-
 .../metabase/scenarios/dashboard/old-parameters.cy.spec.js | 2 +-
 .../scenarios/dashboard/parameters-embedded.cy.spec.js     | 4 ++--
 .../metabase/scenarios/dashboard/parameters.cy.spec.js     | 2 +-
 .../metabase/scenarios/dashboard/permissions.cy.spec.js    | 2 +-
 .../metabase/scenarios/dashboard/subscriptions.cy.spec.js  | 4 ++--
 .../test/metabase/scenarios/dashboard/text-box.cy.spec.js  | 2 +-
 .../metabase/scenarios/dashboard/title-drill.cy.spec.js    | 2 +-
 .../test/metabase/scenarios/dashboard/x-rays.cy.spec.js    | 4 ++--
 .../test/metabase/scenarios/home/activity-page.cy.spec.js  | 2 +-
 frontend/test/metabase/scenarios/home/overworld.cy.spec.js | 2 +-
 frontend/test/metabase/scenarios/home/search.cy.spec.js    | 4 ++--
 .../test/metabase/scenarios/internal/question.cy.spec.js   | 4 ++--
 frontend/test/metabase/scenarios/permissions.cy.spec.js    | 2 +-
 frontend/test/metabase/scenarios/public/public.cy.spec.js  | 4 ++--
 frontend/test/metabase/scenarios/pulse/pulse.cy.spec.js    | 2 +-
 .../metabase/scenarios/question/custom_column.cy.spec.js   | 4 ++--
 .../test/metabase/scenarios/question/data_ref.cy.spec.js   | 2 +-
 .../test/metabase/scenarios/question/downloads.cy.spec.js  | 2 +-
 .../test/metabase/scenarios/question/filter.cy.spec.js     | 4 ++--
 frontend/test/metabase/scenarios/question/joins.cy.spec.js | 4 ++--
 .../test/metabase/scenarios/question/loading.cy.spec.js    | 2 +-
 .../test/metabase/scenarios/question/native.cy.spec.js     | 6 +++---
 .../metabase/scenarios/question/native_subquery.cy.spec.js | 2 +-
 .../test/metabase/scenarios/question/nested.cy.spec.js     | 4 ++--
 frontend/test/metabase/scenarios/question/new.cy.spec.js   | 4 ++--
 .../test/metabase/scenarios/question/notebook.cy.spec.js   | 4 ++--
 frontend/test/metabase/scenarios/question/nulls.cy.spec.js | 4 ++--
 .../test/metabase/scenarios/question/operators.cy.spec.js  | 2 +-
 frontend/test/metabase/scenarios/question/saved.cy.spec.js | 7 ++++++-
 .../test/metabase/scenarios/question/settings.cy.spec.js   | 4 ++--
 .../test/metabase/scenarios/question/trendline.cy.spec.js  | 2 +-
 frontend/test/metabase/scenarios/question/view.cy.spec.js  | 4 ++--
 .../test/metabase/scenarios/reference/databases.cy.spec.js | 2 +-
 .../test/metabase/scenarios/reference/metrics.cy.spec.js   | 4 ++--
 frontend/test/metabase/scenarios/setup/setup.cy.spec.js    | 2 +-
 .../test/metabase/scenarios/setup/user_settings.cy.spec.js | 4 ++--
 .../scenarios/snippets/snippet-permissions.cy.spec.js      | 2 +-
 .../test/metabase/scenarios/snippets/snippets.cy.spec.js   | 2 +-
 .../metabase/scenarios/visualizations/bar_chart.cy.spec.js | 2 +-
 .../visualizations/drillthroughs/chart_drill.cy.spec.js    | 6 +++---
 .../visualizations/drillthroughs/dash_drill.cy.spec.js     | 4 ++--
 .../scenarios/visualizations/line_chart.cy.spec.js         | 4 ++--
 .../test/metabase/scenarios/visualizations/maps.cy.spec.js | 4 ++--
 .../scenarios/visualizations/object_detail.cy.spec.js      | 2 +-
 .../metabase/scenarios/visualizations/pie_chart.cy.spec.js | 4 ++--
 .../scenarios/visualizations/pivot_tables.cy.spec.js       | 4 ++--
 .../test/metabase/scenarios/visualizations/rows.cy.spec.js | 2 +-
 .../metabase/scenarios/visualizations/scatter.cy.spec.js   | 4 ++--
 .../metabase/scenarios/visualizations/waterfall.cy.spec.js | 4 ++--
 frontend/test/snapshot-creators/default.cy.snap.js         | 6 +++---
 package.json                                               | 2 +-
 110 files changed, 180 insertions(+), 167 deletions(-)
 rename frontend/test/__support__/{ => e2e}/commands.js (99%)
 rename frontend/test/{ => __support__/e2e}/cypress-plugins.js (95%)
 create mode 100644 frontend/test/__support__/e2e/cypress-snapshots.json
 rename frontend/test/__support__/{ => e2e}/cypress.js (98%)
 rename frontend/test/{ => __support__/e2e}/cypress.json (60%)
 rename frontend/test/__support__/{ => e2e}/cypress_data.js (100%)
 rename frontend/test/__support__/{ => e2e}/cypress_sample_dataset.js (100%)
 delete mode 100644 frontend/test/cypress-snapshots.json

diff --git a/frontend/test/__runner__/run_cypress_tests.js b/frontend/test/__runner__/run_cypress_tests.js
index 217684ea2c3..9cb9f0149e2 100644
--- a/frontend/test/__runner__/run_cypress_tests.js
+++ b/frontend/test/__runner__/run_cypress_tests.js
@@ -152,7 +152,7 @@ async function generateSnapshots() {
       "cypress",
       "run",
       "--config-file",
-      "frontend/test/cypress-snapshots.json",
+      "frontend/test/__support__/e2e/cypress-snapshots.json",
       "--config",
       `baseUrl=${server.host}`,
     ],
diff --git a/frontend/test/__support__/commands.js b/frontend/test/__support__/e2e/commands.js
similarity index 99%
rename from frontend/test/__support__/commands.js
rename to frontend/test/__support__/e2e/commands.js
index 96813f1107d..5764dbaff38 100644
--- a/frontend/test/__support__/commands.js
+++ b/frontend/test/__support__/e2e/commands.js
@@ -1,4 +1,4 @@
-import { USERS } from "__support__/cypress_data";
+import { USERS } from "__support__/e2e/cypress_data";
 
 Cypress.Commands.add("createUser", user => {
   cy.log(`Create ${user} user`);
diff --git a/frontend/test/cypress-plugins.js b/frontend/test/__support__/e2e/cypress-plugins.js
similarity index 95%
rename from frontend/test/cypress-plugins.js
rename to frontend/test/__support__/e2e/cypress-plugins.js
index 4953db5f2d5..5a1f84d985d 100644
--- a/frontend/test/cypress-plugins.js
+++ b/frontend/test/__support__/e2e/cypress-plugins.js
@@ -19,7 +19,7 @@ module.exports = (on, config) => {
   /********************************************************************
    **                          WEBPACK                               **
    ********************************************************************/
-  const { resolve } = require("../../webpack.config.js");
+  const { resolve } = require("../../../../webpack.config.js");
   const options = {
     webpackOptions: { resolve },
     watchOptions: {},
diff --git a/frontend/test/__support__/e2e/cypress-snapshots.json b/frontend/test/__support__/e2e/cypress-snapshots.json
new file mode 100644
index 00000000000..2c97cc8adfa
--- /dev/null
+++ b/frontend/test/__support__/e2e/cypress-snapshots.json
@@ -0,0 +1,6 @@
+{
+  "testFiles": "**/*.cy.snap.js",
+  "pluginsFile": "frontend/test/__support__/e2e/cypress-plugins.js",
+  "integrationFolder": "frontend/test",
+  "supportFile": "frontend/test/__support__/e2e/cypress.js"
+}
diff --git a/frontend/test/__support__/cypress.js b/frontend/test/__support__/e2e/cypress.js
similarity index 98%
rename from frontend/test/__support__/cypress.js
rename to frontend/test/__support__/e2e/cypress.js
index a159961636b..074465f8d40 100644
--- a/frontend/test/__support__/cypress.js
+++ b/frontend/test/__support__/e2e/cypress.js
@@ -2,7 +2,7 @@ import "@testing-library/cypress/add-commands";
 import "@cypress/skip-test/support";
 import "./commands";
 
-export const version = require("../../../version.json");
+export const version = require("../../../../version.json");
 
 export function snapshot(name) {
   cy.request("POST", `/api/testing/snapshot/${name}`);
@@ -209,7 +209,7 @@ export function expectedRouteCalls({ route_alias, calls } = {}) {
 
 export function remapDisplayValueToFK({ display_value, name, fk } = {}) {
   // Both display_value and fk are expected to be field IDs
-  // You can get them from frontend/test/__support__/cypress_sample_dataset.json
+  // You can get them from frontend/test/__support__/e2e/cypress_sample_dataset.json
   cy.request("POST", `/api/field/${display_value}/dimension`, {
     field_id: display_value,
     name,
diff --git a/frontend/test/cypress.json b/frontend/test/__support__/e2e/cypress.json
similarity index 60%
rename from frontend/test/cypress.json
rename to frontend/test/__support__/e2e/cypress.json
index ee063e2a784..7efc9abc53b 100644
--- a/frontend/test/cypress.json
+++ b/frontend/test/__support__/e2e/cypress.json
@@ -1,8 +1,8 @@
 {
   "testFiles": "**/*.cy.spec.js",
-  "pluginsFile": "frontend/test/cypress-plugins.js",
+  "pluginsFile": "frontend/test/__support__/e2e/cypress-plugins.js",
   "integrationFolder": ".",
-  "supportFile": "frontend/test/__support__/cypress.js",
+  "supportFile": "frontend/test/__support__/e2e/cypress.js",
   "videoUploadOnPasses": false,
   "viewportHeight": 800,
   "viewportWidth": 1280,
diff --git a/frontend/test/__support__/cypress_data.js b/frontend/test/__support__/e2e/cypress_data.js
similarity index 100%
rename from frontend/test/__support__/cypress_data.js
rename to frontend/test/__support__/e2e/cypress_data.js
diff --git a/frontend/test/__support__/cypress_sample_dataset.js b/frontend/test/__support__/e2e/cypress_sample_dataset.js
similarity index 100%
rename from frontend/test/__support__/cypress_sample_dataset.js
rename to frontend/test/__support__/e2e/cypress_sample_dataset.js
diff --git a/frontend/test/cypress-snapshots.json b/frontend/test/cypress-snapshots.json
deleted file mode 100644
index 50e1915b89f..00000000000
--- a/frontend/test/cypress-snapshots.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-	"testFiles": "**/*.cy.snap.js",
-	"pluginsFile": "frontend/test/cypress-plugins.js",
-	"integrationFolder": "frontend/test",
-	"supportFile": "frontend/test/__support__/cypress.js"
-}
diff --git a/frontend/test/metabase-db/mongo/add.cy.spec.js b/frontend/test/metabase-db/mongo/add.cy.spec.js
index b2508513620..fdfeb29beb5 100644
--- a/frontend/test/metabase-db/mongo/add.cy.spec.js
+++ b/frontend/test/metabase-db/mongo/add.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore, modal, typeAndBlurUsingLabel } from "__support__/cypress";
+import { restore, modal, typeAndBlurUsingLabel } from "__support__/e2e/cypress";
 
 describe("mongodb > admin > add", () => {
   beforeEach(() => {
diff --git a/frontend/test/metabase-db/mongo/query.cy.spec.js b/frontend/test/metabase-db/mongo/query.cy.spec.js
index 2cffc20a7d3..aaa2bc1f535 100644
--- a/frontend/test/metabase-db/mongo/query.cy.spec.js
+++ b/frontend/test/metabase-db/mongo/query.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore, modal, addMongoDatabase } from "__support__/cypress";
+import { restore, modal, addMongoDatabase } from "__support__/e2e/cypress";
 
 const MONGO_DB_NAME = "QA Mongo4";
 
diff --git a/frontend/test/metabase-db/mysql/add.cy.spec.js b/frontend/test/metabase-db/mysql/add.cy.spec.js
index 9e640bd76e0..13c67b563f2 100644
--- a/frontend/test/metabase-db/mysql/add.cy.spec.js
+++ b/frontend/test/metabase-db/mysql/add.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore, modal, typeAndBlurUsingLabel } from "__support__/cypress";
+import { restore, modal, typeAndBlurUsingLabel } from "__support__/e2e/cypress";
 
 describe("mysql > admin > add", () => {
   beforeEach(() => {
diff --git a/frontend/test/metabase-db/mysql/custom-column.cy.spec.js b/frontend/test/metabase-db/mysql/custom-column.cy.spec.js
index ff2daf2c436..6e3d7be21d6 100644
--- a/frontend/test/metabase-db/mysql/custom-column.cy.spec.js
+++ b/frontend/test/metabase-db/mysql/custom-column.cy.spec.js
@@ -1,4 +1,8 @@
-import { restore, addMySQLDatabase, withDatabase } from "__support__/cypress";
+import {
+  restore,
+  addMySQLDatabase,
+  withDatabase,
+} from "__support__/e2e/cypress";
 
 const MYSQL_DB_NAME = "QA MySQL8";
 
diff --git a/frontend/test/metabase-db/mysql/query.cy.spec.js b/frontend/test/metabase-db/mysql/query.cy.spec.js
index a88b5d686d9..0aff11dc8f0 100644
--- a/frontend/test/metabase-db/mysql/query.cy.spec.js
+++ b/frontend/test/metabase-db/mysql/query.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore, modal, addMySQLDatabase } from "__support__/cypress";
+import { restore, modal, addMySQLDatabase } from "__support__/e2e/cypress";
 
 const MYSQL_DB_NAME = "QA MySQL8";
 
diff --git a/frontend/test/metabase-db/postgres/add.cy.spec.js b/frontend/test/metabase-db/postgres/add.cy.spec.js
index e2e5a9acc2c..4377084b028 100644
--- a/frontend/test/metabase-db/postgres/add.cy.spec.js
+++ b/frontend/test/metabase-db/postgres/add.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore, modal, typeAndBlurUsingLabel } from "__support__/cypress";
+import { restore, modal, typeAndBlurUsingLabel } from "__support__/e2e/cypress";
 
 describe("postgres > admin > add", () => {
   beforeEach(() => {
diff --git a/frontend/test/metabase-db/postgres/custom-column.cy.spec.js b/frontend/test/metabase-db/postgres/custom-column.cy.spec.js
index 14b6b09fab5..9e59ea1c6e3 100644
--- a/frontend/test/metabase-db/postgres/custom-column.cy.spec.js
+++ b/frontend/test/metabase-db/postgres/custom-column.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore, addPostgresDatabase, popover } from "__support__/cypress";
+import { restore, addPostgresDatabase, popover } from "__support__/e2e/cypress";
 
 const PG_DB_NAME = "QA Postgres12";
 
diff --git a/frontend/test/metabase-db/postgres/native.cy.spec.js b/frontend/test/metabase-db/postgres/native.cy.spec.js
index 72bbd274b16..887f902cd6e 100644
--- a/frontend/test/metabase-db/postgres/native.cy.spec.js
+++ b/frontend/test/metabase-db/postgres/native.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore, addPostgresDatabase, modal } from "__support__/cypress";
+import { restore, addPostgresDatabase, modal } from "__support__/e2e/cypress";
 
 const PG_DB_NAME = "QA Postgres12";
 
diff --git a/frontend/test/metabase-db/postgres/permissions.cy.spec.js b/frontend/test/metabase-db/postgres/permissions.cy.spec.js
index d1b01302776..8a00a92049a 100644
--- a/frontend/test/metabase-db/postgres/permissions.cy.spec.js
+++ b/frontend/test/metabase-db/postgres/permissions.cy.spec.js
@@ -2,8 +2,8 @@ import {
   restore,
   addPostgresDatabase,
   withDatabase,
-} from "__support__/cypress";
-import { USER_GROUPS } from "__support__/cypress_data";
+} from "__support__/e2e/cypress";
+import { USER_GROUPS } from "__support__/e2e/cypress_data";
 
 const { ALL_USERS_GROUP } = USER_GROUPS;
 const PG_DB_NAME = "QA Postgres12";
diff --git a/frontend/test/metabase-db/postgres/query.cy.spec.js b/frontend/test/metabase-db/postgres/query.cy.spec.js
index 69d4ebd3146..e2702a07869 100644
--- a/frontend/test/metabase-db/postgres/query.cy.spec.js
+++ b/frontend/test/metabase-db/postgres/query.cy.spec.js
@@ -3,7 +3,7 @@ import {
   addPostgresDatabase,
   withDatabase,
   visitQuestionAdhoc,
-} from "__support__/cypress";
+} from "__support__/e2e/cypress";
 
 const PG_DB_NAME = "QA Postgres12";
 const PG_DB_ID = 2;
diff --git a/frontend/test/metabase-db/postgres/sandboxes.cy.spec.js b/frontend/test/metabase-db/postgres/sandboxes.cy.spec.js
index 477ae7fd9f9..3738f2d9eb3 100644
--- a/frontend/test/metabase-db/postgres/sandboxes.cy.spec.js
+++ b/frontend/test/metabase-db/postgres/sandboxes.cy.spec.js
@@ -3,8 +3,8 @@ import {
   addPostgresDatabase,
   withDatabase,
   describeWithToken,
-} from "__support__/cypress";
-import { USER_GROUPS } from "__support__/cypress_data";
+} from "__support__/e2e/cypress";
+import { USER_GROUPS } from "__support__/e2e/cypress_data";
 
 const PG_DB_NAME = "QA Postgres12";
 const PG_DB_ID = 2;
diff --git a/frontend/test/metabase-smoketest/admin.cy.spec.js b/frontend/test/metabase-smoketest/admin.cy.spec.js
index 55fd28c8704..82bafb0f6c4 100644
--- a/frontend/test/metabase-smoketest/admin.cy.spec.js
+++ b/frontend/test/metabase-smoketest/admin.cy.spec.js
@@ -1,6 +1,6 @@
 import path from "path";
-import { restore, sidebar } from "__support__/cypress";
-import { USERS } from "__support__/cypress_data";
+import { restore, sidebar } from "__support__/e2e/cypress";
+import { USERS } from "__support__/e2e/cypress_data";
 
 const { admin } = USERS;
 const new_user = {
diff --git a/frontend/test/metabase-smoketest/admin_setup.cy.spec.js b/frontend/test/metabase-smoketest/admin_setup.cy.spec.js
index 590d46eced3..b9f75e05dc4 100644
--- a/frontend/test/metabase-smoketest/admin_setup.cy.spec.js
+++ b/frontend/test/metabase-smoketest/admin_setup.cy.spec.js
@@ -3,8 +3,8 @@ import {
   popover,
   restore,
   setupLocalHostEmail,
-} from "__support__/cypress";
-import { USERS } from "__support__/cypress_data";
+} from "__support__/e2e/cypress";
+import { USERS } from "__support__/e2e/cypress_data";
 
 const { admin, normal, nocollection, nodata } = USERS;
 const new_user = {
diff --git a/frontend/test/metabase-smoketest/user.cy.spec.js b/frontend/test/metabase-smoketest/user.cy.spec.js
index 484dcf6069c..4b93306c5d5 100644
--- a/frontend/test/metabase-smoketest/user.cy.spec.js
+++ b/frontend/test/metabase-smoketest/user.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore, sidebar, popover } from "__support__/cypress";
+import { restore, sidebar, popover } from "__support__/e2e/cypress";
 
 describe("smoketest > user", () => {
   // Goal: user can use all the features of the simple question and notebook editor
diff --git a/frontend/test/metabase/scenarios/admin/databases/add.cy.spec.js b/frontend/test/metabase/scenarios/admin/databases/add.cy.spec.js
index ca0a06be1ae..8c79f80cc7e 100644
--- a/frontend/test/metabase/scenarios/admin/databases/add.cy.spec.js
+++ b/frontend/test/metabase/scenarios/admin/databases/add.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore, popover } from "__support__/cypress";
+import { restore, popover } from "__support__/e2e/cypress";
 
 function typeField(label, value) {
   cy.findByLabelText(label)
diff --git a/frontend/test/metabase/scenarios/admin/databases/edit.cy.spec.js b/frontend/test/metabase/scenarios/admin/databases/edit.cy.spec.js
index ce643b0c59d..921231f849d 100644
--- a/frontend/test/metabase/scenarios/admin/databases/edit.cy.spec.js
+++ b/frontend/test/metabase/scenarios/admin/databases/edit.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore, popover, modal } from "__support__/cypress";
+import { restore, popover, modal } from "__support__/e2e/cypress";
 
 describe("scenarios > admin > databases > edit", () => {
   beforeEach(() => {
diff --git a/frontend/test/metabase/scenarios/admin/databases/list.cy.spec.js b/frontend/test/metabase/scenarios/admin/databases/list.cy.spec.js
index 1dcc4cd86ef..945b334184a 100644
--- a/frontend/test/metabase/scenarios/admin/databases/list.cy.spec.js
+++ b/frontend/test/metabase/scenarios/admin/databases/list.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore } from "__support__/cypress";
+import { restore } from "__support__/e2e/cypress";
 
 describe("scenarios > admin > databases > list", () => {
   beforeEach(() => {
diff --git a/frontend/test/metabase/scenarios/admin/datamodel/editor.cy.spec.js b/frontend/test/metabase/scenarios/admin/datamodel/editor.cy.spec.js
index 626f2faaf6e..0298a777118 100644
--- a/frontend/test/metabase/scenarios/admin/datamodel/editor.cy.spec.js
+++ b/frontend/test/metabase/scenarios/admin/datamodel/editor.cy.spec.js
@@ -1,6 +1,6 @@
-import { restore, popover, visitAlias } from "__support__/cypress";
+import { restore, popover, visitAlias } from "__support__/e2e/cypress";
 
-import { SAMPLE_DATASET } from "__support__/cypress_sample_dataset";
+import { SAMPLE_DATASET } from "__support__/e2e/cypress_sample_dataset";
 
 const { ORDERS_ID } = SAMPLE_DATASET;
 
diff --git a/frontend/test/metabase/scenarios/admin/datamodel/field.cy.spec.js b/frontend/test/metabase/scenarios/admin/datamodel/field.cy.spec.js
index f0d7afd844a..3255c3c4633 100644
--- a/frontend/test/metabase/scenarios/admin/datamodel/field.cy.spec.js
+++ b/frontend/test/metabase/scenarios/admin/datamodel/field.cy.spec.js
@@ -3,9 +3,9 @@ import {
   withDatabase,
   visitAlias,
   popover,
-} from "__support__/cypress";
+} from "__support__/e2e/cypress";
 
-import { SAMPLE_DATASET } from "__support__/cypress_sample_dataset";
+import { SAMPLE_DATASET } from "__support__/e2e/cypress_sample_dataset";
 
 const { ORDERS, ORDERS_ID } = SAMPLE_DATASET;
 
diff --git a/frontend/test/metabase/scenarios/admin/datamodel/hide_tables.cy.spec.js b/frontend/test/metabase/scenarios/admin/datamodel/hide_tables.cy.spec.js
index 45cba50d7e8..eaa3cb787f0 100644
--- a/frontend/test/metabase/scenarios/admin/datamodel/hide_tables.cy.spec.js
+++ b/frontend/test/metabase/scenarios/admin/datamodel/hide_tables.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore } from "__support__/cypress";
+import { restore } from "__support__/e2e/cypress";
 
 const ORDERS_URL = "/admin/datamodel/database/1/table/2";
 
diff --git a/frontend/test/metabase/scenarios/admin/datamodel/metadata.cy.spec.js b/frontend/test/metabase/scenarios/admin/datamodel/metadata.cy.spec.js
index bd00bd70e0f..6ebde7c0c0d 100644
--- a/frontend/test/metabase/scenarios/admin/datamodel/metadata.cy.spec.js
+++ b/frontend/test/metabase/scenarios/admin/datamodel/metadata.cy.spec.js
@@ -3,8 +3,8 @@ import {
   openOrdersTable,
   openReviewsTable,
   popover,
-} from "__support__/cypress";
-import { SAMPLE_DATASET } from "__support__/cypress_sample_dataset";
+} from "__support__/e2e/cypress";
+import { SAMPLE_DATASET } from "__support__/e2e/cypress_sample_dataset";
 
 const { ORDERS, ORDERS_ID, REVIEWS } = SAMPLE_DATASET;
 
diff --git a/frontend/test/metabase/scenarios/admin/datamodel/metrics.cy.spec.js b/frontend/test/metabase/scenarios/admin/datamodel/metrics.cy.spec.js
index 9284b656fde..51c41ccfac0 100644
--- a/frontend/test/metabase/scenarios/admin/datamodel/metrics.cy.spec.js
+++ b/frontend/test/metabase/scenarios/admin/datamodel/metrics.cy.spec.js
@@ -1,5 +1,5 @@
-import { restore, popover, modal } from "__support__/cypress";
-import { SAMPLE_DATASET } from "__support__/cypress_sample_dataset";
+import { restore, popover, modal } from "__support__/e2e/cypress";
+import { SAMPLE_DATASET } from "__support__/e2e/cypress_sample_dataset";
 
 const { ORDERS, ORDERS_ID } = SAMPLE_DATASET;
 
diff --git a/frontend/test/metabase/scenarios/admin/datamodel/segments.cy.spec.js b/frontend/test/metabase/scenarios/admin/datamodel/segments.cy.spec.js
index f9e0c0e8ac8..fc7d5371b50 100644
--- a/frontend/test/metabase/scenarios/admin/datamodel/segments.cy.spec.js
+++ b/frontend/test/metabase/scenarios/admin/datamodel/segments.cy.spec.js
@@ -1,7 +1,7 @@
 // Ported from `segments.e2e.spec.js`
-import { restore, popover, modal, sidebar } from "__support__/cypress";
+import { restore, popover, modal, sidebar } from "__support__/e2e/cypress";
 
-import { SAMPLE_DATASET } from "__support__/cypress_sample_dataset";
+import { SAMPLE_DATASET } from "__support__/e2e/cypress_sample_dataset";
 
 const { ORDERS, ORDERS_ID } = SAMPLE_DATASET;
 
diff --git a/frontend/test/metabase/scenarios/admin/datamodel/table.cy.spec.js b/frontend/test/metabase/scenarios/admin/datamodel/table.cy.spec.js
index 2ce130e5f89..7121556979b 100644
--- a/frontend/test/metabase/scenarios/admin/datamodel/table.cy.spec.js
+++ b/frontend/test/metabase/scenarios/admin/datamodel/table.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore } from "__support__/cypress";
+import { restore } from "__support__/e2e/cypress";
 
 describe("scenarios > admin > databases > table", () => {
   beforeEach(() => {
diff --git a/frontend/test/metabase/scenarios/admin/people/people.cy.spec.js b/frontend/test/metabase/scenarios/admin/people/people.cy.spec.js
index 6e9ada8567b..da4cc360eef 100644
--- a/frontend/test/metabase/scenarios/admin/people/people.cy.spec.js
+++ b/frontend/test/metabase/scenarios/admin/people/people.cy.spec.js
@@ -1,8 +1,8 @@
 // Includes migrations from integration tests:
 // https://github.com/metabase/metabase/pull/14174
 
-import { restore, popover, setupDummySMTP } from "__support__/cypress";
-import { USERS, USER_GROUPS } from "__support__/cypress_data";
+import { restore, popover, setupDummySMTP } from "__support__/e2e/cypress";
+import { USERS, USER_GROUPS } from "__support__/e2e/cypress_data";
 const { normal, admin } = USERS;
 const { DATA_GROUP } = USER_GROUPS;
 const TOTAL_USERS = Object.entries(USERS).length;
diff --git a/frontend/test/metabase/scenarios/admin/permissions/permissions.cy.spec.js b/frontend/test/metabase/scenarios/admin/permissions/permissions.cy.spec.js
index cb4bb24b28e..f197db29e15 100644
--- a/frontend/test/metabase/scenarios/admin/permissions/permissions.cy.spec.js
+++ b/frontend/test/metabase/scenarios/admin/permissions/permissions.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore } from "__support__/cypress";
+import { restore } from "__support__/e2e/cypress";
 
 describe("scenarios > admin > permissions", () => {
   beforeEach(() => {
diff --git a/frontend/test/metabase/scenarios/admin/permissions/sandboxes.cy.spec.js b/frontend/test/metabase/scenarios/admin/permissions/sandboxes.cy.spec.js
index 2f3493451d7..e0776dba995 100644
--- a/frontend/test/metabase/scenarios/admin/permissions/sandboxes.cy.spec.js
+++ b/frontend/test/metabase/scenarios/admin/permissions/sandboxes.cy.spec.js
@@ -8,10 +8,10 @@ import {
   restore,
   remapDisplayValueToFK,
   sidebar,
-} from "__support__/cypress";
-import { USER_GROUPS } from "__support__/cypress_data";
+} from "__support__/e2e/cypress";
+import { USER_GROUPS } from "__support__/e2e/cypress_data";
 
-import { SAMPLE_DATASET } from "__support__/cypress_sample_dataset";
+import { SAMPLE_DATASET } from "__support__/e2e/cypress_sample_dataset";
 
 const {
   ORDERS,
diff --git a/frontend/test/metabase/scenarios/admin/settings/localization.cy.spec.js b/frontend/test/metabase/scenarios/admin/settings/localization.cy.spec.js
index 55d19b0f325..c05e33875e5 100644
--- a/frontend/test/metabase/scenarios/admin/settings/localization.cy.spec.js
+++ b/frontend/test/metabase/scenarios/admin/settings/localization.cy.spec.js
@@ -1,5 +1,5 @@
-import { restore } from "__support__/cypress";
-import { SAMPLE_DATASET } from "__support__/cypress_sample_dataset";
+import { restore } from "__support__/e2e/cypress";
+import { SAMPLE_DATASET } from "__support__/e2e/cypress_sample_dataset";
 
 const { ORDERS, ORDERS_ID } = SAMPLE_DATASET;
 
diff --git a/frontend/test/metabase/scenarios/admin/settings/settings.cy.spec.js b/frontend/test/metabase/scenarios/admin/settings/settings.cy.spec.js
index 853265e4641..5450c6a6776 100644
--- a/frontend/test/metabase/scenarios/admin/settings/settings.cy.spec.js
+++ b/frontend/test/metabase/scenarios/admin/settings/settings.cy.spec.js
@@ -4,7 +4,7 @@ import {
   version,
   popover,
   setupDummySMTP,
-} from "__support__/cypress";
+} from "__support__/e2e/cypress";
 
 describe("scenarios > admin > settings", () => {
   beforeEach(() => {
diff --git a/frontend/test/metabase/scenarios/admin/settings/spinner.cy.spec.js b/frontend/test/metabase/scenarios/admin/settings/spinner.cy.spec.js
index e87e6896e77..e1abff7f0b0 100644
--- a/frontend/test/metabase/scenarios/admin/settings/spinner.cy.spec.js
+++ b/frontend/test/metabase/scenarios/admin/settings/spinner.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore } from "__support__/cypress";
+import { restore } from "__support__/e2e/cypress";
 
 describe("scenarios > admin > spinner", () => {
   beforeEach(() => {
diff --git a/frontend/test/metabase/scenarios/admin/settings/whitelabel.cy.spec.js b/frontend/test/metabase/scenarios/admin/settings/whitelabel.cy.spec.js
index d5ce938b211..4eb70a05acb 100644
--- a/frontend/test/metabase/scenarios/admin/settings/whitelabel.cy.spec.js
+++ b/frontend/test/metabase/scenarios/admin/settings/whitelabel.cy.spec.js
@@ -2,7 +2,7 @@ import {
   restore,
   openOrdersTable,
   describeWithToken,
-} from "__support__/cypress";
+} from "__support__/e2e/cypress";
 
 // Define colors that we use for whitelabeling
 // If rbg values exist, it's because we explicit test those
diff --git a/frontend/test/metabase/scenarios/admin/troubleshooting/tasks.cy.spec.js b/frontend/test/metabase/scenarios/admin/troubleshooting/tasks.cy.spec.js
index 490a1972758..c5ab908a149 100644
--- a/frontend/test/metabase/scenarios/admin/troubleshooting/tasks.cy.spec.js
+++ b/frontend/test/metabase/scenarios/admin/troubleshooting/tasks.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore } from "__support__/cypress";
+import { restore } from "__support__/e2e/cypress";
 
 describe("scenarios > admin > troubleshooting > tasks", () => {
   beforeEach(() => {
diff --git a/frontend/test/metabase/scenarios/alert/alert.cy.spec.js b/frontend/test/metabase/scenarios/alert/alert.cy.spec.js
index 13640ba7c1d..dde401f5860 100644
--- a/frontend/test/metabase/scenarios/alert/alert.cy.spec.js
+++ b/frontend/test/metabase/scenarios/alert/alert.cy.spec.js
@@ -4,7 +4,7 @@ import {
   createBasicAlert,
   popover,
   openPeopleTable,
-} from "__support__/cypress";
+} from "__support__/e2e/cypress";
 // Ported from alert.e2e.spec.js
 // *** We should also check that alerts can be set up through slack
 
diff --git a/frontend/test/metabase/scenarios/alert/alert_auth.cy.spec.js b/frontend/test/metabase/scenarios/alert/alert_auth.cy.spec.js
index 94c235adf15..15f6c480f91 100644
--- a/frontend/test/metabase/scenarios/alert/alert_auth.cy.spec.js
+++ b/frontend/test/metabase/scenarios/alert/alert_auth.cy.spec.js
@@ -2,7 +2,7 @@ import {
   restore,
   setupLocalHostEmail,
   createBasicAlert,
-} from "__support__/cypress";
+} from "__support__/e2e/cypress";
 // Port from alert.e2e.spec.js
 
 // [quarantine]: cannot run tests that rely on email setup in CI (yet)
diff --git a/frontend/test/metabase/scenarios/alert/email_alert.cy.spec.js b/frontend/test/metabase/scenarios/alert/email_alert.cy.spec.js
index dbf3eda452a..614b41471ff 100644
--- a/frontend/test/metabase/scenarios/alert/email_alert.cy.spec.js
+++ b/frontend/test/metabase/scenarios/alert/email_alert.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore, setupLocalHostEmail } from "__support__/cypress";
+import { restore, setupLocalHostEmail } from "__support__/e2e/cypress";
 
 function setUpHourlyAlert(question_num) {
   cy.visit(`/question/${question_num}`);
diff --git a/frontend/test/metabase/scenarios/audit/ad-hoc.cy.spec.js b/frontend/test/metabase/scenarios/audit/ad-hoc.cy.spec.js
index 59c1e9e0165..abca15342ef 100644
--- a/frontend/test/metabase/scenarios/audit/ad-hoc.cy.spec.js
+++ b/frontend/test/metabase/scenarios/audit/ad-hoc.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore, describeWithToken } from "__support__/cypress";
+import { restore, describeWithToken } from "__support__/e2e/cypress";
 
 describeWithToken("audit > ad-hoc", () => {
   describe("native query with JOIN", () => {
diff --git a/frontend/test/metabase/scenarios/audit/auditing.cy.spec.js b/frontend/test/metabase/scenarios/audit/auditing.cy.spec.js
index a8fb02034eb..e895e9897b3 100644
--- a/frontend/test/metabase/scenarios/audit/auditing.cy.spec.js
+++ b/frontend/test/metabase/scenarios/audit/auditing.cy.spec.js
@@ -1,6 +1,6 @@
-import { restore, describeWithToken } from "__support__/cypress";
-import { USERS } from "__support__/cypress_data";
-import { SAMPLE_DATASET } from "__support__/cypress_sample_dataset";
+import { restore, describeWithToken } from "__support__/e2e/cypress";
+import { USERS } from "__support__/e2e/cypress_data";
+import { SAMPLE_DATASET } from "__support__/e2e/cypress_sample_dataset";
 const { normal } = USERS;
 const { PRODUCTS } = SAMPLE_DATASET;
 const TOTAL_USERS = Object.entries(USERS).length;
diff --git a/frontend/test/metabase/scenarios/auth/search.cy.spec.js b/frontend/test/metabase/scenarios/auth/search.cy.spec.js
index 6afe2c8d571..e7a3a47070e 100644
--- a/frontend/test/metabase/scenarios/auth/search.cy.spec.js
+++ b/frontend/test/metabase/scenarios/auth/search.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore } from "__support__/cypress";
+import { restore } from "__support__/e2e/cypress";
 
 describe("scenarios > auth > search", () => {
   beforeEach(restore);
diff --git a/frontend/test/metabase/scenarios/auth/signin.cy.spec.js b/frontend/test/metabase/scenarios/auth/signin.cy.spec.js
index 1137acab52a..324edb1b946 100644
--- a/frontend/test/metabase/scenarios/auth/signin.cy.spec.js
+++ b/frontend/test/metabase/scenarios/auth/signin.cy.spec.js
@@ -1,5 +1,5 @@
-import { browse, restore } from "__support__/cypress";
-import { USERS } from "__support__/cypress_data";
+import { browse, restore } from "__support__/e2e/cypress";
+import { USERS } from "__support__/e2e/cypress_data";
 
 const sizes = [[1280, 800], [640, 360]];
 const { admin } = USERS;
diff --git a/frontend/test/metabase/scenarios/auth/sso.cy.spec.js b/frontend/test/metabase/scenarios/auth/sso.cy.spec.js
index 6a8dcc3e683..001ee92f7c7 100644
--- a/frontend/test/metabase/scenarios/auth/sso.cy.spec.js
+++ b/frontend/test/metabase/scenarios/auth/sso.cy.spec.js
@@ -1,4 +1,4 @@
-import { describeWithToken, restore } from "__support__/cypress";
+import { describeWithToken, restore } from "__support__/e2e/cypress";
 
 describe("scenarios > auth > signin > SSO", () => {
   beforeEach(() => {
diff --git a/frontend/test/metabase/scenarios/collections/collections.cy.spec.js b/frontend/test/metabase/scenarios/collections/collections.cy.spec.js
index ad7fc110ed3..443ab74938e 100644
--- a/frontend/test/metabase/scenarios/collections/collections.cy.spec.js
+++ b/frontend/test/metabase/scenarios/collections/collections.cy.spec.js
@@ -4,8 +4,8 @@ import {
   modal,
   popover,
   openOrdersTable,
-} from "__support__/cypress";
-import { USERS, USER_GROUPS } from "__support__/cypress_data";
+} from "__support__/e2e/cypress";
+import { USERS, USER_GROUPS } from "__support__/e2e/cypress_data";
 
 const { nocollection } = USERS;
 const { DATA_GROUP } = USER_GROUPS;
diff --git a/frontend/test/metabase/scenarios/collections/permissions.cy.spec.js b/frontend/test/metabase/scenarios/collections/permissions.cy.spec.js
index 92764da7fb8..719ceabb975 100644
--- a/frontend/test/metabase/scenarios/collections/permissions.cy.spec.js
+++ b/frontend/test/metabase/scenarios/collections/permissions.cy.spec.js
@@ -1,6 +1,6 @@
 import { onlyOn } from "@cypress/skip-test";
-import { restore, popover } from "__support__/cypress";
-import { USERS } from "__support__/cypress_data";
+import { restore, popover } from "__support__/e2e/cypress";
+import { USERS } from "__support__/e2e/cypress_data";
 
 const PERMISSIONS = {
   curate: ["admin", "normal", "nodata"],
diff --git a/frontend/test/metabase/scenarios/collections/personal-collections.cy.spec.js b/frontend/test/metabase/scenarios/collections/personal-collections.cy.spec.js
index 12120c96641..02343631500 100644
--- a/frontend/test/metabase/scenarios/collections/personal-collections.cy.spec.js
+++ b/frontend/test/metabase/scenarios/collections/personal-collections.cy.spec.js
@@ -1,5 +1,5 @@
-import { restore, popover, modal } from "__support__/cypress";
-import { USERS } from "__support__/cypress_data";
+import { restore, popover, modal } from "__support__/e2e/cypress";
+import { USERS } from "__support__/e2e/cypress_data";
 
 describe("personal collections", () => {
   beforeEach(() => {
diff --git a/frontend/test/metabase/scenarios/dashboard/chained-filters.cy.spec.js b/frontend/test/metabase/scenarios/dashboard/chained-filters.cy.spec.js
index 1771c44b50e..ddcd1f1d3fe 100644
--- a/frontend/test/metabase/scenarios/dashboard/chained-filters.cy.spec.js
+++ b/frontend/test/metabase/scenarios/dashboard/chained-filters.cy.spec.js
@@ -1,5 +1,5 @@
-import { restore, popover } from "__support__/cypress";
-import { SAMPLE_DATASET } from "__support__/cypress_sample_dataset";
+import { restore, popover } from "__support__/e2e/cypress";
+import { SAMPLE_DATASET } from "__support__/e2e/cypress_sample_dataset";
 
 const { PEOPLE, PRODUCTS, PRODUCTS_ID } = SAMPLE_DATASET;
 
diff --git a/frontend/test/metabase/scenarios/dashboard/dashboard-drill.cy.spec.js b/frontend/test/metabase/scenarios/dashboard/dashboard-drill.cy.spec.js
index bc29892379a..cc3c51a333f 100644
--- a/frontend/test/metabase/scenarios/dashboard/dashboard-drill.cy.spec.js
+++ b/frontend/test/metabase/scenarios/dashboard/dashboard-drill.cy.spec.js
@@ -3,9 +3,9 @@ import {
   modal,
   popover,
   createNativeQuestion,
-} from "__support__/cypress";
+} from "__support__/e2e/cypress";
 
-import { SAMPLE_DATASET } from "__support__/cypress_sample_dataset";
+import { SAMPLE_DATASET } from "__support__/e2e/cypress_sample_dataset";
 
 const {
   ORDERS,
diff --git a/frontend/test/metabase/scenarios/dashboard/dashboard.cy.spec.js b/frontend/test/metabase/scenarios/dashboard/dashboard.cy.spec.js
index f5a76da50ed..3ebfcc0b568 100644
--- a/frontend/test/metabase/scenarios/dashboard/dashboard.cy.spec.js
+++ b/frontend/test/metabase/scenarios/dashboard/dashboard.cy.spec.js
@@ -5,9 +5,9 @@ import {
   restore,
   selectDashboardFilter,
   expectedRouteCalls,
-} from "__support__/cypress";
+} from "__support__/e2e/cypress";
 
-import { SAMPLE_DATASET } from "__support__/cypress_sample_dataset";
+import { SAMPLE_DATASET } from "__support__/e2e/cypress_sample_dataset";
 
 const {
   ORDERS,
diff --git a/frontend/test/metabase/scenarios/dashboard/dashboard_data_permissions.cy.spec.js b/frontend/test/metabase/scenarios/dashboard/dashboard_data_permissions.cy.spec.js
index c84621ff465..d230989bc40 100644
--- a/frontend/test/metabase/scenarios/dashboard/dashboard_data_permissions.cy.spec.js
+++ b/frontend/test/metabase/scenarios/dashboard/dashboard_data_permissions.cy.spec.js
@@ -1,4 +1,8 @@
-import { restore, popover, selectDashboardFilter } from "__support__/cypress";
+import {
+  restore,
+  popover,
+  selectDashboardFilter,
+} from "__support__/e2e/cypress";
 
 function filterDashboard(suggests = true) {
   cy.visit("/dashboard/1");
diff --git a/frontend/test/metabase/scenarios/dashboard/dashboard_local-only.cy.spec.js b/frontend/test/metabase/scenarios/dashboard/dashboard_local-only.cy.spec.js
index b0ca2200499..4fde9cabc76 100644
--- a/frontend/test/metabase/scenarios/dashboard/dashboard_local-only.cy.spec.js
+++ b/frontend/test/metabase/scenarios/dashboard/dashboard_local-only.cy.spec.js
@@ -1,5 +1,5 @@
-import { restore } from "__support__/cypress";
-import { SAMPLE_DATASET } from "__support__/cypress_sample_dataset";
+import { restore } from "__support__/e2e/cypress";
+import { SAMPLE_DATASET } from "__support__/e2e/cypress_sample_dataset";
 
 const { PEOPLE, PEOPLE_ID } = SAMPLE_DATASET;
 
diff --git a/frontend/test/metabase/scenarios/dashboard/embed.cy.spec.js b/frontend/test/metabase/scenarios/dashboard/embed.cy.spec.js
index fc5cb346a62..c1795972b15 100644
--- a/frontend/test/metabase/scenarios/dashboard/embed.cy.spec.js
+++ b/frontend/test/metabase/scenarios/dashboard/embed.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore, popover, modal } from "__support__/cypress";
+import { restore, popover, modal } from "__support__/e2e/cypress";
 
 describe("scenarios > dashboard > embed", () => {
   beforeEach(() => {
diff --git a/frontend/test/metabase/scenarios/dashboard/nested-cards.cy.spec.js b/frontend/test/metabase/scenarios/dashboard/nested-cards.cy.spec.js
index 11de497b2e6..8dda123a7db 100644
--- a/frontend/test/metabase/scenarios/dashboard/nested-cards.cy.spec.js
+++ b/frontend/test/metabase/scenarios/dashboard/nested-cards.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore, popover } from "__support__/cypress";
+import { restore, popover } from "__support__/e2e/cypress";
 
 describe("scenarios > dashboard > nested cards", () => {
   beforeEach(() => {
diff --git a/frontend/test/metabase/scenarios/dashboard/old-parameters.cy.spec.js b/frontend/test/metabase/scenarios/dashboard/old-parameters.cy.spec.js
index d0c8b501e98..fcc662884ae 100644
--- a/frontend/test/metabase/scenarios/dashboard/old-parameters.cy.spec.js
+++ b/frontend/test/metabase/scenarios/dashboard/old-parameters.cy.spec.js
@@ -1,4 +1,4 @@
-import { popover, restore, mockSessionProperty } from "__support__/cypress";
+import { popover, restore, mockSessionProperty } from "__support__/e2e/cypress";
 // NOTE: some overlap with parameters-embedded.cy.spec.js
 
 describe("scenarios > dashboard > parameters", () => {
diff --git a/frontend/test/metabase/scenarios/dashboard/parameters-embedded.cy.spec.js b/frontend/test/metabase/scenarios/dashboard/parameters-embedded.cy.spec.js
index fa7a05679bd..796a481c60d 100644
--- a/frontend/test/metabase/scenarios/dashboard/parameters-embedded.cy.spec.js
+++ b/frontend/test/metabase/scenarios/dashboard/parameters-embedded.cy.spec.js
@@ -1,6 +1,6 @@
-import { restore, popover } from "__support__/cypress";
+import { restore, popover } from "__support__/e2e/cypress";
 
-import { SAMPLE_DATASET } from "__support__/cypress_sample_dataset";
+import { SAMPLE_DATASET } from "__support__/e2e/cypress_sample_dataset";
 
 const { ORDERS, PEOPLE } = SAMPLE_DATASET;
 
diff --git a/frontend/test/metabase/scenarios/dashboard/parameters.cy.spec.js b/frontend/test/metabase/scenarios/dashboard/parameters.cy.spec.js
index 0c5aa5c4814..27e77040126 100644
--- a/frontend/test/metabase/scenarios/dashboard/parameters.cy.spec.js
+++ b/frontend/test/metabase/scenarios/dashboard/parameters.cy.spec.js
@@ -1,4 +1,4 @@
-import { modal, popover, restore } from "__support__/cypress";
+import { modal, popover, restore } from "__support__/e2e/cypress";
 // NOTE: some overlap with parameters-embedded.cy.spec.js
 
 describe("scenarios > dashboard > parameters", () => {
diff --git a/frontend/test/metabase/scenarios/dashboard/permissions.cy.spec.js b/frontend/test/metabase/scenarios/dashboard/permissions.cy.spec.js
index e5a9a003192..1046b26b766 100644
--- a/frontend/test/metabase/scenarios/dashboard/permissions.cy.spec.js
+++ b/frontend/test/metabase/scenarios/dashboard/permissions.cy.spec.js
@@ -1,6 +1,6 @@
 import _ from "underscore";
 import { assoc } from "icepick";
-import { restore } from "__support__/cypress";
+import { restore } from "__support__/e2e/cypress";
 
 describe("scenarios > dashboard > permissions", () => {
   let dashboardId;
diff --git a/frontend/test/metabase/scenarios/dashboard/subscriptions.cy.spec.js b/frontend/test/metabase/scenarios/dashboard/subscriptions.cy.spec.js
index 263391f5ee2..abd206c879b 100644
--- a/frontend/test/metabase/scenarios/dashboard/subscriptions.cy.spec.js
+++ b/frontend/test/metabase/scenarios/dashboard/subscriptions.cy.spec.js
@@ -4,8 +4,8 @@ import {
   describeWithToken,
   popover,
   mockSessionProperty,
-} from "__support__/cypress";
-import { USERS } from "__support__/cypress_data";
+} from "__support__/e2e/cypress";
+import { USERS } from "__support__/e2e/cypress_data";
 const { admin } = USERS;
 
 describe("scenarios > dashboard > subscriptions", () => {
diff --git a/frontend/test/metabase/scenarios/dashboard/text-box.cy.spec.js b/frontend/test/metabase/scenarios/dashboard/text-box.cy.spec.js
index 4986b99b018..a4d4b511134 100644
--- a/frontend/test/metabase/scenarios/dashboard/text-box.cy.spec.js
+++ b/frontend/test/metabase/scenarios/dashboard/text-box.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore } from "__support__/cypress";
+import { restore } from "__support__/e2e/cypress";
 
 function addTextBox(string) {
   cy.icon("pencil").click();
diff --git a/frontend/test/metabase/scenarios/dashboard/title-drill.cy.spec.js b/frontend/test/metabase/scenarios/dashboard/title-drill.cy.spec.js
index 89b4bf4f840..7a01783079f 100644
--- a/frontend/test/metabase/scenarios/dashboard/title-drill.cy.spec.js
+++ b/frontend/test/metabase/scenarios/dashboard/title-drill.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore } from "__support__/cypress";
+import { restore } from "__support__/e2e/cypress";
 
 describe("scenarios > dashboard > title drill", () => {
   beforeEach(() => {
diff --git a/frontend/test/metabase/scenarios/dashboard/x-rays.cy.spec.js b/frontend/test/metabase/scenarios/dashboard/x-rays.cy.spec.js
index 794ca1f69ff..74f32ec0530 100644
--- a/frontend/test/metabase/scenarios/dashboard/x-rays.cy.spec.js
+++ b/frontend/test/metabase/scenarios/dashboard/x-rays.cy.spec.js
@@ -1,5 +1,5 @@
-import { restore, visitQuestionAdhoc } from "__support__/cypress";
-import { SAMPLE_DATASET } from "__support__/cypress_sample_dataset";
+import { restore, visitQuestionAdhoc } from "__support__/e2e/cypress";
+import { SAMPLE_DATASET } from "__support__/e2e/cypress_sample_dataset";
 
 const {
   ORDERS,
diff --git a/frontend/test/metabase/scenarios/home/activity-page.cy.spec.js b/frontend/test/metabase/scenarios/home/activity-page.cy.spec.js
index 4c07041b018..09cf4a2b511 100644
--- a/frontend/test/metabase/scenarios/home/activity-page.cy.spec.js
+++ b/frontend/test/metabase/scenarios/home/activity-page.cy.spec.js
@@ -1,5 +1,5 @@
 //Replaces HomepageApp.e2e.spec.js
-import { restore, openProductsTable, popover } from "__support__/cypress";
+import { restore, openProductsTable, popover } from "__support__/e2e/cypress";
 
 describe("metabase > scenarios > home > activity-page", () => {
   beforeEach(() => {
diff --git a/frontend/test/metabase/scenarios/home/overworld.cy.spec.js b/frontend/test/metabase/scenarios/home/overworld.cy.spec.js
index 09fc9717a0a..a379d49a9f5 100644
--- a/frontend/test/metabase/scenarios/home/overworld.cy.spec.js
+++ b/frontend/test/metabase/scenarios/home/overworld.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore } from "__support__/cypress";
+import { restore } from "__support__/e2e/cypress";
 
 describe("scenarios > home > overworld", () => {
   beforeEach(restore);
diff --git a/frontend/test/metabase/scenarios/home/search.cy.spec.js b/frontend/test/metabase/scenarios/home/search.cy.spec.js
index ddb573b49f1..b6e468a42fc 100644
--- a/frontend/test/metabase/scenarios/home/search.cy.spec.js
+++ b/frontend/test/metabase/scenarios/home/search.cy.spec.js
@@ -1,5 +1,5 @@
-import { restore } from "__support__/cypress";
-import { USERS } from "__support__/cypress_data";
+import { restore } from "__support__/e2e/cypress";
+import { USERS } from "__support__/e2e/cypress_data";
 
 ["admin", "normal"].forEach(user => {
   describe(`search > ${user} user`, () => {
diff --git a/frontend/test/metabase/scenarios/internal/question.cy.spec.js b/frontend/test/metabase/scenarios/internal/question.cy.spec.js
index 3d6830d2804..537706d49dc 100644
--- a/frontend/test/metabase/scenarios/internal/question.cy.spec.js
+++ b/frontend/test/metabase/scenarios/internal/question.cy.spec.js
@@ -1,5 +1,5 @@
-import { restore, adhocQuestionHash } from "__support__/cypress";
-import { SAMPLE_DATASET } from "__support__/cypress_sample_dataset";
+import { restore, adhocQuestionHash } from "__support__/e2e/cypress";
+import { SAMPLE_DATASET } from "__support__/e2e/cypress_sample_dataset";
 
 // This is really a test of the QuestionLoader component
 // It's used on /_internal/question among other places and loads questions by ID or url hash.
diff --git a/frontend/test/metabase/scenarios/permissions.cy.spec.js b/frontend/test/metabase/scenarios/permissions.cy.spec.js
index 4171f6df559..8d15614b9a4 100644
--- a/frontend/test/metabase/scenarios/permissions.cy.spec.js
+++ b/frontend/test/metabase/scenarios/permissions.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore } from "__support__/cypress";
+import { restore } from "__support__/e2e/cypress";
 
 describe("scenarios > permissions", () => {
   beforeEach(restore);
diff --git a/frontend/test/metabase/scenarios/public/public.cy.spec.js b/frontend/test/metabase/scenarios/public/public.cy.spec.js
index cfa24860edb..d360fd5e8b9 100644
--- a/frontend/test/metabase/scenarios/public/public.cy.spec.js
+++ b/frontend/test/metabase/scenarios/public/public.cy.spec.js
@@ -1,6 +1,6 @@
-import { restore, popover, modal } from "__support__/cypress";
+import { restore, popover, modal } from "__support__/e2e/cypress";
 
-import { SAMPLE_DATASET } from "__support__/cypress_sample_dataset";
+import { SAMPLE_DATASET } from "__support__/e2e/cypress_sample_dataset";
 
 const { PRODUCTS } = SAMPLE_DATASET;
 
diff --git a/frontend/test/metabase/scenarios/pulse/pulse.cy.spec.js b/frontend/test/metabase/scenarios/pulse/pulse.cy.spec.js
index bf597cfa9b0..ea7e4d9254b 100644
--- a/frontend/test/metabase/scenarios/pulse/pulse.cy.spec.js
+++ b/frontend/test/metabase/scenarios/pulse/pulse.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore } from "__support__/cypress";
+import { restore } from "__support__/e2e/cypress";
 
 const MOCK_PULSE_FORM_INPUT = {
   channels: {
diff --git a/frontend/test/metabase/scenarios/question/custom_column.cy.spec.js b/frontend/test/metabase/scenarios/question/custom_column.cy.spec.js
index ab65e8a6f23..14e836e2441 100644
--- a/frontend/test/metabase/scenarios/question/custom_column.cy.spec.js
+++ b/frontend/test/metabase/scenarios/question/custom_column.cy.spec.js
@@ -6,9 +6,9 @@ import {
   openOrdersTable,
   openPeopleTable,
   visitQuestionAdhoc,
-} from "__support__/cypress";
+} from "__support__/e2e/cypress";
 
-import { SAMPLE_DATASET } from "__support__/cypress_sample_dataset";
+import { SAMPLE_DATASET } from "__support__/e2e/cypress_sample_dataset";
 
 const { ORDERS, ORDERS_ID, PRODUCTS, PRODUCTS_ID } = SAMPLE_DATASET;
 
diff --git a/frontend/test/metabase/scenarios/question/data_ref.cy.spec.js b/frontend/test/metabase/scenarios/question/data_ref.cy.spec.js
index 088fbe13cec..4239e7b61f2 100644
--- a/frontend/test/metabase/scenarios/question/data_ref.cy.spec.js
+++ b/frontend/test/metabase/scenarios/question/data_ref.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore } from "__support__/cypress";
+import { restore } from "__support__/e2e/cypress";
 
 describe("scenarios > native question > data reference sidebar", () => {
   beforeEach(() => {
diff --git a/frontend/test/metabase/scenarios/question/downloads.cy.spec.js b/frontend/test/metabase/scenarios/question/downloads.cy.spec.js
index 5610dce09be..c85cc73b6e9 100644
--- a/frontend/test/metabase/scenarios/question/downloads.cy.spec.js
+++ b/frontend/test/metabase/scenarios/question/downloads.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore } from "__support__/cypress";
+import { restore } from "__support__/e2e/cypress";
 
 const xlsx = require("xlsx");
 
diff --git a/frontend/test/metabase/scenarios/question/filter.cy.spec.js b/frontend/test/metabase/scenarios/question/filter.cy.spec.js
index c8254602f1c..8165e7187e7 100644
--- a/frontend/test/metabase/scenarios/question/filter.cy.spec.js
+++ b/frontend/test/metabase/scenarios/question/filter.cy.spec.js
@@ -6,9 +6,9 @@ import {
   openPeopleTable,
   popover,
   visitQuestionAdhoc,
-} from "__support__/cypress";
+} from "__support__/e2e/cypress";
 
-import { SAMPLE_DATASET } from "__support__/cypress_sample_dataset";
+import { SAMPLE_DATASET } from "__support__/e2e/cypress_sample_dataset";
 
 const {
   ORDERS,
diff --git a/frontend/test/metabase/scenarios/question/joins.cy.spec.js b/frontend/test/metabase/scenarios/question/joins.cy.spec.js
index 3563079e951..103bf53c921 100644
--- a/frontend/test/metabase/scenarios/question/joins.cy.spec.js
+++ b/frontend/test/metabase/scenarios/question/joins.cy.spec.js
@@ -1,5 +1,5 @@
-import { restore, openProductsTable, popover } from "__support__/cypress";
-import { SAMPLE_DATASET } from "__support__/cypress_sample_dataset";
+import { restore, openProductsTable, popover } from "__support__/e2e/cypress";
+import { SAMPLE_DATASET } from "__support__/e2e/cypress_sample_dataset";
 
 const { ORDERS, ORDERS_ID, PRODUCTS } = SAMPLE_DATASET;
 
diff --git a/frontend/test/metabase/scenarios/question/loading.cy.spec.js b/frontend/test/metabase/scenarios/question/loading.cy.spec.js
index 5200d27608f..e9b89214885 100644
--- a/frontend/test/metabase/scenarios/question/loading.cy.spec.js
+++ b/frontend/test/metabase/scenarios/question/loading.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore } from "__support__/cypress";
+import { restore } from "__support__/e2e/cypress";
 
 describe("scenarios > question > loading behavior", () => {
   beforeEach(() => {
diff --git a/frontend/test/metabase/scenarios/question/native.cy.spec.js b/frontend/test/metabase/scenarios/question/native.cy.spec.js
index fc3afcd0177..2c2e892f292 100644
--- a/frontend/test/metabase/scenarios/question/native.cy.spec.js
+++ b/frontend/test/metabase/scenarios/question/native.cy.spec.js
@@ -4,9 +4,9 @@ import {
   modal,
   visitQuestionAdhoc,
   mockSessionProperty,
-} from "__support__/cypress";
-import { SAMPLE_DATASET } from "__support__/cypress_sample_dataset";
-import { USER_GROUPS } from "__support__/cypress_data";
+} from "__support__/e2e/cypress";
+import { SAMPLE_DATASET } from "__support__/e2e/cypress_sample_dataset";
+import { USER_GROUPS } from "__support__/e2e/cypress_data";
 
 const { ORDERS, PRODUCTS } = SAMPLE_DATASET;
 const { COLLECTION_GROUP } = USER_GROUPS;
diff --git a/frontend/test/metabase/scenarios/question/native_subquery.cy.spec.js b/frontend/test/metabase/scenarios/question/native_subquery.cy.spec.js
index 4b22638fd3c..8ca448d07cc 100644
--- a/frontend/test/metabase/scenarios/question/native_subquery.cy.spec.js
+++ b/frontend/test/metabase/scenarios/question/native_subquery.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore } from "__support__/cypress";
+import { restore } from "__support__/e2e/cypress";
 
 describe("scenarios > question > native subquery", () => {
   beforeEach(() => {
diff --git a/frontend/test/metabase/scenarios/question/nested.cy.spec.js b/frontend/test/metabase/scenarios/question/nested.cy.spec.js
index 5804501d2ca..fc5fb453629 100644
--- a/frontend/test/metabase/scenarios/question/nested.cy.spec.js
+++ b/frontend/test/metabase/scenarios/question/nested.cy.spec.js
@@ -5,9 +5,9 @@ import {
   openOrdersTable,
   remapDisplayValueToFK,
   sidebar,
-} from "__support__/cypress";
+} from "__support__/e2e/cypress";
 
-import { SAMPLE_DATASET } from "__support__/cypress_sample_dataset";
+import { SAMPLE_DATASET } from "__support__/e2e/cypress_sample_dataset";
 
 const { ORDERS, ORDERS_ID, PRODUCTS, PRODUCTS_ID } = SAMPLE_DATASET;
 
diff --git a/frontend/test/metabase/scenarios/question/new.cy.spec.js b/frontend/test/metabase/scenarios/question/new.cy.spec.js
index adf804bb88c..f56454da9e0 100644
--- a/frontend/test/metabase/scenarios/question/new.cy.spec.js
+++ b/frontend/test/metabase/scenarios/question/new.cy.spec.js
@@ -4,9 +4,9 @@ import {
   popover,
   openOrdersTable,
   openReviewsTable,
-} from "__support__/cypress";
+} from "__support__/e2e/cypress";
 
-import { SAMPLE_DATASET } from "__support__/cypress_sample_dataset";
+import { SAMPLE_DATASET } from "__support__/e2e/cypress_sample_dataset";
 
 const { ORDERS, ORDERS_ID } = SAMPLE_DATASET;
 
diff --git a/frontend/test/metabase/scenarios/question/notebook.cy.spec.js b/frontend/test/metabase/scenarios/question/notebook.cy.spec.js
index 673f5148b00..4e3c047eaa1 100644
--- a/frontend/test/metabase/scenarios/question/notebook.cy.spec.js
+++ b/frontend/test/metabase/scenarios/question/notebook.cy.spec.js
@@ -6,9 +6,9 @@ import {
   popover,
   modal,
   visitQuestionAdhoc,
-} from "__support__/cypress";
+} from "__support__/e2e/cypress";
 
-import { SAMPLE_DATASET } from "__support__/cypress_sample_dataset";
+import { SAMPLE_DATASET } from "__support__/e2e/cypress_sample_dataset";
 
 const {
   ORDERS,
diff --git a/frontend/test/metabase/scenarios/question/nulls.cy.spec.js b/frontend/test/metabase/scenarios/question/nulls.cy.spec.js
index 96c119d54cb..ee86679e503 100644
--- a/frontend/test/metabase/scenarios/question/nulls.cy.spec.js
+++ b/frontend/test/metabase/scenarios/question/nulls.cy.spec.js
@@ -1,6 +1,6 @@
-import { restore, openOrdersTable, popover } from "__support__/cypress";
+import { restore, openOrdersTable, popover } from "__support__/e2e/cypress";
 
-import { SAMPLE_DATASET } from "__support__/cypress_sample_dataset";
+import { SAMPLE_DATASET } from "__support__/e2e/cypress_sample_dataset";
 
 const { ORDERS, ORDERS_ID } = SAMPLE_DATASET;
 
diff --git a/frontend/test/metabase/scenarios/question/operators.cy.spec.js b/frontend/test/metabase/scenarios/question/operators.cy.spec.js
index 06d25f80a73..96c08bc6f72 100644
--- a/frontend/test/metabase/scenarios/question/operators.cy.spec.js
+++ b/frontend/test/metabase/scenarios/question/operators.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore, popover } from "__support__/cypress";
+import { restore, popover } from "__support__/e2e/cypress";
 
 describe("operators in questions", () => {
   beforeEach(() => {
diff --git a/frontend/test/metabase/scenarios/question/saved.cy.spec.js b/frontend/test/metabase/scenarios/question/saved.cy.spec.js
index e9eb8132199..e6557b2ea26 100644
--- a/frontend/test/metabase/scenarios/question/saved.cy.spec.js
+++ b/frontend/test/metabase/scenarios/question/saved.cy.spec.js
@@ -1,4 +1,9 @@
-import { restore, popover, modal, openOrdersTable } from "__support__/cypress";
+import {
+  restore,
+  popover,
+  modal,
+  openOrdersTable,
+} from "__support__/e2e/cypress";
 
 describe("scenarios > question > saved", () => {
   beforeEach(() => {
diff --git a/frontend/test/metabase/scenarios/question/settings.cy.spec.js b/frontend/test/metabase/scenarios/question/settings.cy.spec.js
index a4aa78ca5ab..9cfcb252f18 100644
--- a/frontend/test/metabase/scenarios/question/settings.cy.spec.js
+++ b/frontend/test/metabase/scenarios/question/settings.cy.spec.js
@@ -3,9 +3,9 @@ import {
   restore,
   openOrdersTable,
   visitQuestionAdhoc,
-} from "__support__/cypress";
+} from "__support__/e2e/cypress";
 
-import { SAMPLE_DATASET } from "__support__/cypress_sample_dataset";
+import { SAMPLE_DATASET } from "__support__/e2e/cypress_sample_dataset";
 const { ORDERS, ORDERS_ID, PRODUCTS, PRODUCTS_ID } = SAMPLE_DATASET;
 
 describe("scenarios > question > settings", () => {
diff --git a/frontend/test/metabase/scenarios/question/trendline.cy.spec.js b/frontend/test/metabase/scenarios/question/trendline.cy.spec.js
index c95a6c75681..54a937a4f61 100644
--- a/frontend/test/metabase/scenarios/question/trendline.cy.spec.js
+++ b/frontend/test/metabase/scenarios/question/trendline.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore, openOrdersTable, sidebar } from "__support__/cypress";
+import { restore, openOrdersTable, sidebar } from "__support__/e2e/cypress";
 
 describe("scenarios > question > trendline", () => {
   beforeEach(() => {
diff --git a/frontend/test/metabase/scenarios/question/view.cy.spec.js b/frontend/test/metabase/scenarios/question/view.cy.spec.js
index 0716fc3f31c..a419669b285 100644
--- a/frontend/test/metabase/scenarios/question/view.cy.spec.js
+++ b/frontend/test/metabase/scenarios/question/view.cy.spec.js
@@ -1,5 +1,5 @@
-import { restore, openOrdersTable, popover } from "__support__/cypress";
-import { SAMPLE_DATASET } from "__support__/cypress_sample_dataset";
+import { restore, openOrdersTable, popover } from "__support__/e2e/cypress";
+import { SAMPLE_DATASET } from "__support__/e2e/cypress_sample_dataset";
 
 const { PRODUCTS } = SAMPLE_DATASET;
 
diff --git a/frontend/test/metabase/scenarios/reference/databases.cy.spec.js b/frontend/test/metabase/scenarios/reference/databases.cy.spec.js
index 4c8540b664d..f338dca4277 100644
--- a/frontend/test/metabase/scenarios/reference/databases.cy.spec.js
+++ b/frontend/test/metabase/scenarios/reference/databases.cy.spec.js
@@ -1,4 +1,4 @@
-import { popover, restore } from "__support__/cypress";
+import { popover, restore } from "__support__/e2e/cypress";
 
 describe("scenarios > reference > databases", () => {
   beforeEach(() => {
diff --git a/frontend/test/metabase/scenarios/reference/metrics.cy.spec.js b/frontend/test/metabase/scenarios/reference/metrics.cy.spec.js
index 3287eedfe6d..7eed3641e63 100644
--- a/frontend/test/metabase/scenarios/reference/metrics.cy.spec.js
+++ b/frontend/test/metabase/scenarios/reference/metrics.cy.spec.js
@@ -1,5 +1,5 @@
-import { restore } from "__support__/cypress";
-import { SAMPLE_DATASET } from "__support__/cypress_sample_dataset";
+import { restore } from "__support__/e2e/cypress";
+import { SAMPLE_DATASET } from "__support__/e2e/cypress_sample_dataset";
 
 const { ORDERS, ORDERS_ID } = SAMPLE_DATASET;
 
diff --git a/frontend/test/metabase/scenarios/setup/setup.cy.spec.js b/frontend/test/metabase/scenarios/setup/setup.cy.spec.js
index 2f87818e9f0..600a388deaa 100644
--- a/frontend/test/metabase/scenarios/setup/setup.cy.spec.js
+++ b/frontend/test/metabase/scenarios/setup/setup.cy.spec.js
@@ -1,5 +1,5 @@
 import path from "path";
-import { restore } from "__support__/cypress";
+import { restore } from "__support__/e2e/cypress";
 
 // we're testing for one known (en) and one unknown (xx) locale
 const locales = ["en", "xx"];
diff --git a/frontend/test/metabase/scenarios/setup/user_settings.cy.spec.js b/frontend/test/metabase/scenarios/setup/user_settings.cy.spec.js
index 33496d118c2..a8f94890c6c 100644
--- a/frontend/test/metabase/scenarios/setup/user_settings.cy.spec.js
+++ b/frontend/test/metabase/scenarios/setup/user_settings.cy.spec.js
@@ -1,6 +1,6 @@
 // Migrated from frontend/test/metabase/user/UserSettings.integ.spec.js
-import { restore } from "__support__/cypress";
-import { USERS } from "__support__/cypress_data";
+import { restore } from "__support__/e2e/cypress";
+import { USERS } from "__support__/e2e/cypress_data";
 const { first_name, last_name, email } = USERS.normal;
 
 const CURRENT_USER = {
diff --git a/frontend/test/metabase/scenarios/snippets/snippet-permissions.cy.spec.js b/frontend/test/metabase/scenarios/snippets/snippet-permissions.cy.spec.js
index 60abe9b6bea..b607386b67d 100644
--- a/frontend/test/metabase/scenarios/snippets/snippet-permissions.cy.spec.js
+++ b/frontend/test/metabase/scenarios/snippets/snippet-permissions.cy.spec.js
@@ -4,7 +4,7 @@ import {
   popover,
   sidebar,
   describeWithToken,
-} from "__support__/cypress";
+} from "__support__/e2e/cypress";
 
 describeWithToken("scenarios > question > snippets", () => {
   beforeEach(() => {
diff --git a/frontend/test/metabase/scenarios/snippets/snippets.cy.spec.js b/frontend/test/metabase/scenarios/snippets/snippets.cy.spec.js
index 6bb44006ccc..328cf381ad6 100644
--- a/frontend/test/metabase/scenarios/snippets/snippets.cy.spec.js
+++ b/frontend/test/metabase/scenarios/snippets/snippets.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore, modal } from "__support__/cypress";
+import { restore, modal } from "__support__/e2e/cypress";
 
 // HACK which lets us type (even very long words) without losing focus
 // this is needed for fields where autocomplete suggestions are enabled
diff --git a/frontend/test/metabase/scenarios/visualizations/bar_chart.cy.spec.js b/frontend/test/metabase/scenarios/visualizations/bar_chart.cy.spec.js
index 49fdbcbd661..f54b2b0cb9d 100644
--- a/frontend/test/metabase/scenarios/visualizations/bar_chart.cy.spec.js
+++ b/frontend/test/metabase/scenarios/visualizations/bar_chart.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore, visitQuestionAdhoc } from "__support__/cypress";
+import { restore, visitQuestionAdhoc } from "__support__/e2e/cypress";
 
 describe("scenarios > visualizations > bar chart", () => {
   beforeEach(() => {
diff --git a/frontend/test/metabase/scenarios/visualizations/drillthroughs/chart_drill.cy.spec.js b/frontend/test/metabase/scenarios/visualizations/drillthroughs/chart_drill.cy.spec.js
index 3d17f02f57c..73f086e33f8 100644
--- a/frontend/test/metabase/scenarios/visualizations/drillthroughs/chart_drill.cy.spec.js
+++ b/frontend/test/metabase/scenarios/visualizations/drillthroughs/chart_drill.cy.spec.js
@@ -5,9 +5,9 @@ import {
   popover,
   sidebar,
   visitQuestionAdhoc,
-} from "__support__/cypress";
-import { USER_GROUPS } from "__support__/cypress_data";
-import { SAMPLE_DATASET } from "__support__/cypress_sample_dataset";
+} from "__support__/e2e/cypress";
+import { USER_GROUPS } from "__support__/e2e/cypress_data";
+import { SAMPLE_DATASET } from "__support__/e2e/cypress_sample_dataset";
 
 const {
   ORDERS,
diff --git a/frontend/test/metabase/scenarios/visualizations/drillthroughs/dash_drill.cy.spec.js b/frontend/test/metabase/scenarios/visualizations/drillthroughs/dash_drill.cy.spec.js
index 3c5ec25c1f8..907a2fddc42 100644
--- a/frontend/test/metabase/scenarios/visualizations/drillthroughs/dash_drill.cy.spec.js
+++ b/frontend/test/metabase/scenarios/visualizations/drillthroughs/dash_drill.cy.spec.js
@@ -1,6 +1,6 @@
 // Imported from drillthroughs.e2e.spec.js
-import { restore } from "__support__/cypress";
-import { SAMPLE_DATASET } from "__support__/cypress_sample_dataset";
+import { restore } from "__support__/e2e/cypress";
+import { SAMPLE_DATASET } from "__support__/e2e/cypress_sample_dataset";
 
 const { ORDERS, ORDERS_ID, PRODUCTS, PEOPLE, PEOPLE_ID } = SAMPLE_DATASET;
 
diff --git a/frontend/test/metabase/scenarios/visualizations/line_chart.cy.spec.js b/frontend/test/metabase/scenarios/visualizations/line_chart.cy.spec.js
index 523fc65b36f..bb5f2a20446 100644
--- a/frontend/test/metabase/scenarios/visualizations/line_chart.cy.spec.js
+++ b/frontend/test/metabase/scenarios/visualizations/line_chart.cy.spec.js
@@ -1,5 +1,5 @@
-import { restore, visitQuestionAdhoc } from "__support__/cypress";
-import { SAMPLE_DATASET } from "__support__/cypress_sample_dataset";
+import { restore, visitQuestionAdhoc } from "__support__/e2e/cypress";
+import { SAMPLE_DATASET } from "__support__/e2e/cypress_sample_dataset";
 
 const { ORDERS, ORDERS_ID } = SAMPLE_DATASET;
 
diff --git a/frontend/test/metabase/scenarios/visualizations/maps.cy.spec.js b/frontend/test/metabase/scenarios/visualizations/maps.cy.spec.js
index 8f8cc257b35..c92102f25d2 100644
--- a/frontend/test/metabase/scenarios/visualizations/maps.cy.spec.js
+++ b/frontend/test/metabase/scenarios/visualizations/maps.cy.spec.js
@@ -1,5 +1,5 @@
-import { restore, popover, visitQuestionAdhoc } from "__support__/cypress";
-import { SAMPLE_DATASET } from "__support__/cypress_sample_dataset";
+import { restore, popover, visitQuestionAdhoc } from "__support__/e2e/cypress";
+import { SAMPLE_DATASET } from "__support__/e2e/cypress_sample_dataset";
 
 const { PEOPLE, PEOPLE_ID } = SAMPLE_DATASET;
 
diff --git a/frontend/test/metabase/scenarios/visualizations/object_detail.cy.spec.js b/frontend/test/metabase/scenarios/visualizations/object_detail.cy.spec.js
index 41990e7c50c..43f95db744b 100644
--- a/frontend/test/metabase/scenarios/visualizations/object_detail.cy.spec.js
+++ b/frontend/test/metabase/scenarios/visualizations/object_detail.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore } from "__support__/cypress";
+import { restore } from "__support__/e2e/cypress";
 
 describe("scenarios > visualizations > object detail", () => {
   beforeEach(() => {
diff --git a/frontend/test/metabase/scenarios/visualizations/pie_chart.cy.spec.js b/frontend/test/metabase/scenarios/visualizations/pie_chart.cy.spec.js
index 22423ddfc04..9129901cb13 100644
--- a/frontend/test/metabase/scenarios/visualizations/pie_chart.cy.spec.js
+++ b/frontend/test/metabase/scenarios/visualizations/pie_chart.cy.spec.js
@@ -1,5 +1,5 @@
-import { restore, visitQuestionAdhoc } from "__support__/cypress";
-import { SAMPLE_DATASET } from "__support__/cypress_sample_dataset";
+import { restore, visitQuestionAdhoc } from "__support__/e2e/cypress";
+import { SAMPLE_DATASET } from "__support__/e2e/cypress_sample_dataset";
 
 const { PRODUCTS, PRODUCTS_ID } = SAMPLE_DATASET;
 
diff --git a/frontend/test/metabase/scenarios/visualizations/pivot_tables.cy.spec.js b/frontend/test/metabase/scenarios/visualizations/pivot_tables.cy.spec.js
index b67d376c73b..462b7dd26d4 100644
--- a/frontend/test/metabase/scenarios/visualizations/pivot_tables.cy.spec.js
+++ b/frontend/test/metabase/scenarios/visualizations/pivot_tables.cy.spec.js
@@ -4,8 +4,8 @@ import {
   getIframeBody,
   popover,
   sidebar,
-} from "__support__/cypress";
-import { SAMPLE_DATASET } from "__support__/cypress_sample_dataset";
+} from "__support__/e2e/cypress";
+import { SAMPLE_DATASET } from "__support__/e2e/cypress_sample_dataset";
 
 const {
   ORDERS,
diff --git a/frontend/test/metabase/scenarios/visualizations/rows.cy.spec.js b/frontend/test/metabase/scenarios/visualizations/rows.cy.spec.js
index 0feb41fe488..f7ba488901b 100644
--- a/frontend/test/metabase/scenarios/visualizations/rows.cy.spec.js
+++ b/frontend/test/metabase/scenarios/visualizations/rows.cy.spec.js
@@ -1,4 +1,4 @@
-import { restore } from "__support__/cypress";
+import { restore } from "__support__/e2e/cypress";
 
 describe("scenarios > visualizations > rows", () => {
   beforeEach(() => {
diff --git a/frontend/test/metabase/scenarios/visualizations/scatter.cy.spec.js b/frontend/test/metabase/scenarios/visualizations/scatter.cy.spec.js
index 0de62c8ae1a..f4e28972416 100644
--- a/frontend/test/metabase/scenarios/visualizations/scatter.cy.spec.js
+++ b/frontend/test/metabase/scenarios/visualizations/scatter.cy.spec.js
@@ -1,5 +1,5 @@
-import { restore, visitQuestionAdhoc, popover } from "__support__/cypress";
-import { SAMPLE_DATASET } from "__support__/cypress_sample_dataset";
+import { restore, visitQuestionAdhoc, popover } from "__support__/e2e/cypress";
+import { SAMPLE_DATASET } from "__support__/e2e/cypress_sample_dataset";
 
 const { ORDERS, ORDERS_ID, PRODUCTS } = SAMPLE_DATASET;
 
diff --git a/frontend/test/metabase/scenarios/visualizations/waterfall.cy.spec.js b/frontend/test/metabase/scenarios/visualizations/waterfall.cy.spec.js
index 995fa2f921d..d282ff59e85 100644
--- a/frontend/test/metabase/scenarios/visualizations/waterfall.cy.spec.js
+++ b/frontend/test/metabase/scenarios/visualizations/waterfall.cy.spec.js
@@ -2,8 +2,8 @@ import {
   openOrdersTable,
   restore,
   visitQuestionAdhoc,
-} from "__support__/cypress";
-import { SAMPLE_DATASET } from "__support__/cypress_sample_dataset";
+} from "__support__/e2e/cypress";
+import { SAMPLE_DATASET } from "__support__/e2e/cypress_sample_dataset";
 
 const { ORDERS, ORDERS_ID } = SAMPLE_DATASET;
 
diff --git a/frontend/test/snapshot-creators/default.cy.snap.js b/frontend/test/snapshot-creators/default.cy.snap.js
index 4b86c52eac4..9d106baa0b8 100644
--- a/frontend/test/snapshot-creators/default.cy.snap.js
+++ b/frontend/test/snapshot-creators/default.cy.snap.js
@@ -1,6 +1,6 @@
 import _ from "underscore";
-import { snapshot, restore, withSampleDataset } from "__support__/cypress";
-import { USERS, USER_GROUPS } from "__support__/cypress_data";
+import { snapshot, restore, withSampleDataset } from "__support__/e2e/cypress";
+import { USERS, USER_GROUPS } from "__support__/e2e/cypress_data";
 
 const {
   ALL_USERS_GROUP,
@@ -22,7 +22,7 @@ describe("snapshots", () => {
       withSampleDataset(SAMPLE_DATASET => {
         createQuestionAndDashboard(SAMPLE_DATASET);
         cy.writeFile(
-          "frontend/test/__support__/cypress_sample_dataset.json",
+          "frontend/test/__support__/e2e/cypress_sample_dataset.json",
           SAMPLE_DATASET,
         );
       });
diff --git a/package.json b/package.json
index d378ab4b22b..d05cacad6c2 100644
--- a/package.json
+++ b/package.json
@@ -199,7 +199,7 @@
     "test-cypress": "yarn build && ./bin/build-for-test && yarn test-cypress-no-build && yarn test-cypress-smoketest",
     "test-cypress-open": "./bin/build-for-test && yarn test-cypress-no-build --open",
     "test-cypress-open-no-backend": "E2E_HOST='http://localhost:3000' yarn test-cypress-no-build --open",
-    "test-cypress-no-build": "yarn && CONFIG_FILE=frontend/test/cypress.json babel-node ./frontend/test/__runner__/run_cypress_tests.js",
+    "test-cypress-no-build": "yarn && CONFIG_FILE=frontend/test/__support__/e2e/cypress.json babel-node ./frontend/test/__runner__/run_cypress_tests.js",
     "test-cypress-smoketest": "yarn test-cypress-no-build --folder frontend/test/metabase-smoketest"
   },
   "lint-staged": {
-- 
GitLab