From 980d3f08222c3d55183befef8c2db40286db19a4 Mon Sep 17 00:00:00 2001
From: Tom Robinson <tlrobinson@gmail.com>
Date: Thu, 31 Jan 2019 16:53:42 -0800
Subject: [PATCH] Make test tree more consistent with src tree

---
 frontend/src/metabase-lib/lib/Mode.js         |   2 +-
 frontend/src/metabase-lib/lib/Question.js     |   2 +-
 frontend/src/metabase/{qb => modes}/.eslintrc |   0
 .../components/TimeseriesFilterWidget.jsx     |   0
 .../components/TimeseriesGroupingWidget.jsx   |   0
 .../components/__support__/fixtures.js        |   0
 .../actions/CommonMetricsAction.jsx           |   0
 .../components/actions/CompareWithTable.jsx   |   0
 .../actions/CompoundQueryAction.jsx           |   0
 .../components/actions/CountByTimeAction.jsx  |   0
 .../components/actions/PivotByAction.jsx      |   0
 .../actions/PivotByCategoryAction.jsx         |   0
 .../actions/PivotByLocationAction.jsx         |   0
 .../components/actions/PivotByTimeAction.jsx  |   0
 .../SummarizeBySegmentMetricAction.jsx        |   0
 .../actions/UnderlyingDataAction.jsx          |   0
 .../actions/UnderlyingRecordsAction.jsx       |   0
 .../components/actions/XRayCard.jsx           |   0
 .../{qb => modes}/components/actions/index.js |   0
 .../drill/AutomaticDashboardDrill.jsx         |   0
 .../components/drill/CompareToRestDrill.js    |   0
 .../components/drill/DistributionDrill.jsx    |   0
 .../components/drill/FormatAction.jsx         |   0
 .../components/drill/ObjectDetailDrill.jsx    |   0
 .../components/drill/PivotByCategoryDrill.jsx |   0
 .../components/drill/PivotByLocationDrill.jsx |   0
 .../components/drill/PivotByTimeDrill.jsx     |   0
 .../components/drill/QuickFilterDrill.jsx     |   0
 .../components/drill/SortAction.jsx           |   0
 .../drill/SummarizeColumnByTimeDrill.js       |   2 +-
 .../components/drill/SummarizeColumnDrill.js  |   2 +-
 .../drill/UnderlyingRecordsDrill.jsx          |   0
 .../components/drill/ZoomDrill.jsx            |   2 +-
 .../{qb => modes}/components/drill/index.js   |   0
 .../components/modes/DefaultMode.jsx          |   0
 .../components/modes/GeoMode.jsx              |   0
 .../components/modes/MetricMode.jsx           |   0
 .../components/modes/NativeMode.jsx           |   0
 .../components/modes/ObjectMode.jsx           |   0
 .../components/modes/PivotMode.jsx            |   0
 .../components/modes/SegmentMode.jsx          |   0
 .../components/modes/TimeseriesMode.jsx       |   6 +-
 .../src/metabase/{qb => modes}/lib/actions.js |   0
 .../metabase/{qb => modes}/lib/drilldown.js   |   0
 .../src/metabase/{qb => modes}/lib/modes.js   |   0
 .../src/metabase/query_builder/selectors.js   |   2 +-
 .../visualizations/components/LeafletMap.jsx  |   2 +-
 .../visualizations/lib/LineAreaBarRenderer.js |   2 +-
 .../{ => lib}/Action.unit.spec.js             |   0
 .../{ => lib}/Dimension.unit.spec.js          |   0
 .../metabase-lib/{ => lib}/Mode.unit.spec.js  |   0
 .../{ => lib}/Question.e2e.spec.js            |   0
 .../{ => lib}/Question.unit.spec.js           |   0
 .../{ => lib}/metadata/Table.unit.spec.js     |   0
 .../queries/NativeQuery.unit.spec.js          |   0
 .../queries/StructuredQuery.unit.spec.js      |   0
 .../dashboards/dashboards.e2e.spec.js         | 155 ------------------
 .../TimeseriesFilterWidget.unit.spec.jsx      |   2 +-
 .../modes/TimeseriesMode.unit.spec.js         |   6 +-
 .../actions/CommonMetricsAction.e2e.spec.js   |   0
 .../actions/CommonMetricsAction.unit.spec.js  |   2 +-
 .../actions/CompoundQueryAction.unit.spec.js  |   2 +-
 .../actions/CountByTimeAction.e2e.spec.js     |   0
 .../actions/CountByTimeAction.unit.spec.js    |   2 +-
 ...ummarizeBySegmentMetricAction.unit.spec.js |   2 +-
 .../drill}/ObjectDetailDrill.unit.spec.js     |   2 +-
 .../drill}/PivotByCategoryDrill.e2e.spec.js   |   0
 .../drill}/QuickFilterDrill.e2e.spec.js       |   0
 .../drill}/SortAction.e2e.spec.js             |   0
 .../SummarizeColumnByTimeDrill.e2e.spec.js    |   0
 .../SummarizeColumnByTimeDrill.unit.spec.js   |   2 +-
 .../drill}/SummarizeColumnDrill.e2e.spec.js   |   0
 .../drill}/SummarizeColumnDrill.unit.spec.js  |   2 +-
 .../drill}/TimeseriesPivotDrill.e2e.spec.js   |   0
 .../UnderlyingRecordsDrill.unit.spec.js       |   2 +-
 .../drill}/ZoomDrill.unit.spec.js             |   2 +-
 .../metabase/modes/lib/actions.unit.spec.js   |   2 +-
 .../metabase/modes/lib/drilldown.unit.spec.js |   2 +-
 78 files changed, 26 insertions(+), 181 deletions(-)
 rename frontend/src/metabase/{qb => modes}/.eslintrc (100%)
 rename frontend/src/metabase/{qb => modes}/components/TimeseriesFilterWidget.jsx (100%)
 rename frontend/src/metabase/{qb => modes}/components/TimeseriesGroupingWidget.jsx (100%)
 rename frontend/src/metabase/{qb => modes}/components/__support__/fixtures.js (100%)
 rename frontend/src/metabase/{qb => modes}/components/actions/CommonMetricsAction.jsx (100%)
 rename frontend/src/metabase/{qb => modes}/components/actions/CompareWithTable.jsx (100%)
 rename frontend/src/metabase/{qb => modes}/components/actions/CompoundQueryAction.jsx (100%)
 rename frontend/src/metabase/{qb => modes}/components/actions/CountByTimeAction.jsx (100%)
 rename frontend/src/metabase/{qb => modes}/components/actions/PivotByAction.jsx (100%)
 rename frontend/src/metabase/{qb => modes}/components/actions/PivotByCategoryAction.jsx (100%)
 rename frontend/src/metabase/{qb => modes}/components/actions/PivotByLocationAction.jsx (100%)
 rename frontend/src/metabase/{qb => modes}/components/actions/PivotByTimeAction.jsx (100%)
 rename frontend/src/metabase/{qb => modes}/components/actions/SummarizeBySegmentMetricAction.jsx (100%)
 rename frontend/src/metabase/{qb => modes}/components/actions/UnderlyingDataAction.jsx (100%)
 rename frontend/src/metabase/{qb => modes}/components/actions/UnderlyingRecordsAction.jsx (100%)
 rename frontend/src/metabase/{qb => modes}/components/actions/XRayCard.jsx (100%)
 rename frontend/src/metabase/{qb => modes}/components/actions/index.js (100%)
 rename frontend/src/metabase/{qb => modes}/components/drill/AutomaticDashboardDrill.jsx (100%)
 rename frontend/src/metabase/{qb => modes}/components/drill/CompareToRestDrill.js (100%)
 rename frontend/src/metabase/{qb => modes}/components/drill/DistributionDrill.jsx (100%)
 rename frontend/src/metabase/{qb => modes}/components/drill/FormatAction.jsx (100%)
 rename frontend/src/metabase/{qb => modes}/components/drill/ObjectDetailDrill.jsx (100%)
 rename frontend/src/metabase/{qb => modes}/components/drill/PivotByCategoryDrill.jsx (100%)
 rename frontend/src/metabase/{qb => modes}/components/drill/PivotByLocationDrill.jsx (100%)
 rename frontend/src/metabase/{qb => modes}/components/drill/PivotByTimeDrill.jsx (100%)
 rename frontend/src/metabase/{qb => modes}/components/drill/QuickFilterDrill.jsx (100%)
 rename frontend/src/metabase/{qb => modes}/components/drill/SortAction.jsx (100%)
 rename frontend/src/metabase/{qb => modes}/components/drill/SummarizeColumnByTimeDrill.js (95%)
 rename frontend/src/metabase/{qb => modes}/components/drill/SummarizeColumnDrill.js (95%)
 rename frontend/src/metabase/{qb => modes}/components/drill/UnderlyingRecordsDrill.jsx (100%)
 rename frontend/src/metabase/{qb => modes}/components/drill/ZoomDrill.jsx (89%)
 rename frontend/src/metabase/{qb => modes}/components/drill/index.js (100%)
 rename frontend/src/metabase/{qb => modes}/components/modes/DefaultMode.jsx (100%)
 rename frontend/src/metabase/{qb => modes}/components/modes/GeoMode.jsx (100%)
 rename frontend/src/metabase/{qb => modes}/components/modes/MetricMode.jsx (100%)
 rename frontend/src/metabase/{qb => modes}/components/modes/NativeMode.jsx (100%)
 rename frontend/src/metabase/{qb => modes}/components/modes/ObjectMode.jsx (100%)
 rename frontend/src/metabase/{qb => modes}/components/modes/PivotMode.jsx (100%)
 rename frontend/src/metabase/{qb => modes}/components/modes/SegmentMode.jsx (100%)
 rename frontend/src/metabase/{qb => modes}/components/modes/TimeseriesMode.jsx (85%)
 rename frontend/src/metabase/{qb => modes}/lib/actions.js (100%)
 rename frontend/src/metabase/{qb => modes}/lib/drilldown.js (100%)
 rename frontend/src/metabase/{qb => modes}/lib/modes.js (100%)
 rename frontend/test/metabase-lib/{ => lib}/Action.unit.spec.js (100%)
 rename frontend/test/metabase-lib/{ => lib}/Dimension.unit.spec.js (100%)
 rename frontend/test/metabase-lib/{ => lib}/Mode.unit.spec.js (100%)
 rename frontend/test/metabase-lib/{ => lib}/Question.e2e.spec.js (100%)
 rename frontend/test/metabase-lib/{ => lib}/Question.unit.spec.js (100%)
 rename frontend/test/metabase-lib/{ => lib}/metadata/Table.unit.spec.js (100%)
 rename frontend/test/metabase-lib/{ => lib}/queries/NativeQuery.unit.spec.js (100%)
 rename frontend/test/metabase-lib/{ => lib}/queries/StructuredQuery.unit.spec.js (100%)
 delete mode 100644 frontend/test/metabase/dashboards/dashboards.e2e.spec.js
 rename frontend/test/metabase/modes/{ => components}/actions/CommonMetricsAction.e2e.spec.js (100%)
 rename frontend/test/metabase/modes/{ => components}/actions/CommonMetricsAction.unit.spec.js (94%)
 rename frontend/test/metabase/modes/{ => components}/actions/CompoundQueryAction.unit.spec.js (93%)
 rename frontend/test/metabase/modes/{ => components}/actions/CountByTimeAction.e2e.spec.js (100%)
 rename frontend/test/metabase/modes/{ => components}/actions/CountByTimeAction.unit.spec.js (91%)
 rename frontend/test/metabase/modes/{ => components}/actions/SummarizeBySegmentMetricAction.unit.spec.js (95%)
 rename frontend/test/metabase/modes/{drills => components/drill}/ObjectDetailDrill.unit.spec.js (93%)
 rename frontend/test/metabase/modes/{drills => components/drill}/PivotByCategoryDrill.e2e.spec.js (100%)
 rename frontend/test/metabase/modes/{drills => components/drill}/QuickFilterDrill.e2e.spec.js (100%)
 rename frontend/test/metabase/modes/{drills => components/drill}/SortAction.e2e.spec.js (100%)
 rename frontend/test/metabase/modes/{drills => components/drill}/SummarizeColumnByTimeDrill.e2e.spec.js (100%)
 rename frontend/test/metabase/modes/{drills => components/drill}/SummarizeColumnByTimeDrill.unit.spec.js (92%)
 rename frontend/test/metabase/modes/{drills => components/drill}/SummarizeColumnDrill.e2e.spec.js (100%)
 rename frontend/test/metabase/modes/{drills => components/drill}/SummarizeColumnDrill.unit.spec.js (90%)
 rename frontend/test/metabase/modes/{drills => components/drill}/TimeseriesPivotDrill.e2e.spec.js (100%)
 rename frontend/test/metabase/modes/{drills => components/drill}/UnderlyingRecordsDrill.unit.spec.js (96%)
 rename frontend/test/metabase/modes/{drills => components/drill}/ZoomDrill.unit.spec.js (96%)

diff --git a/frontend/src/metabase-lib/lib/Mode.js b/frontend/src/metabase-lib/lib/Mode.js
index badcebc266d..c91589e9f17 100644
--- a/frontend/src/metabase-lib/lib/Mode.js
+++ b/frontend/src/metabase-lib/lib/Mode.js
@@ -1,7 +1,7 @@
 import _ from "underscore";
 
 import Question from "metabase-lib/lib/Question";
-import { getMode } from "metabase/qb/lib/modes";
+import { getMode } from "metabase/modes/lib/modes";
 
 import type {
   ClickAction,
diff --git a/frontend/src/metabase-lib/lib/Question.js b/frontend/src/metabase-lib/lib/Question.js
index ea06fe511f2..a685c9d6871 100644
--- a/frontend/src/metabase-lib/lib/Question.js
+++ b/frontend/src/metabase-lib/lib/Question.js
@@ -24,7 +24,7 @@ import {
   distribution,
   toUnderlyingRecords,
   drillUnderlyingRecords,
-} from "metabase/qb/lib/actions";
+} from "metabase/modes/lib/actions";
 
 import _ from "underscore";
 import { chain, assoc } from "icepick";
diff --git a/frontend/src/metabase/qb/.eslintrc b/frontend/src/metabase/modes/.eslintrc
similarity index 100%
rename from frontend/src/metabase/qb/.eslintrc
rename to frontend/src/metabase/modes/.eslintrc
diff --git a/frontend/src/metabase/qb/components/TimeseriesFilterWidget.jsx b/frontend/src/metabase/modes/components/TimeseriesFilterWidget.jsx
similarity index 100%
rename from frontend/src/metabase/qb/components/TimeseriesFilterWidget.jsx
rename to frontend/src/metabase/modes/components/TimeseriesFilterWidget.jsx
diff --git a/frontend/src/metabase/qb/components/TimeseriesGroupingWidget.jsx b/frontend/src/metabase/modes/components/TimeseriesGroupingWidget.jsx
similarity index 100%
rename from frontend/src/metabase/qb/components/TimeseriesGroupingWidget.jsx
rename to frontend/src/metabase/modes/components/TimeseriesGroupingWidget.jsx
diff --git a/frontend/src/metabase/qb/components/__support__/fixtures.js b/frontend/src/metabase/modes/components/__support__/fixtures.js
similarity index 100%
rename from frontend/src/metabase/qb/components/__support__/fixtures.js
rename to frontend/src/metabase/modes/components/__support__/fixtures.js
diff --git a/frontend/src/metabase/qb/components/actions/CommonMetricsAction.jsx b/frontend/src/metabase/modes/components/actions/CommonMetricsAction.jsx
similarity index 100%
rename from frontend/src/metabase/qb/components/actions/CommonMetricsAction.jsx
rename to frontend/src/metabase/modes/components/actions/CommonMetricsAction.jsx
diff --git a/frontend/src/metabase/qb/components/actions/CompareWithTable.jsx b/frontend/src/metabase/modes/components/actions/CompareWithTable.jsx
similarity index 100%
rename from frontend/src/metabase/qb/components/actions/CompareWithTable.jsx
rename to frontend/src/metabase/modes/components/actions/CompareWithTable.jsx
diff --git a/frontend/src/metabase/qb/components/actions/CompoundQueryAction.jsx b/frontend/src/metabase/modes/components/actions/CompoundQueryAction.jsx
similarity index 100%
rename from frontend/src/metabase/qb/components/actions/CompoundQueryAction.jsx
rename to frontend/src/metabase/modes/components/actions/CompoundQueryAction.jsx
diff --git a/frontend/src/metabase/qb/components/actions/CountByTimeAction.jsx b/frontend/src/metabase/modes/components/actions/CountByTimeAction.jsx
similarity index 100%
rename from frontend/src/metabase/qb/components/actions/CountByTimeAction.jsx
rename to frontend/src/metabase/modes/components/actions/CountByTimeAction.jsx
diff --git a/frontend/src/metabase/qb/components/actions/PivotByAction.jsx b/frontend/src/metabase/modes/components/actions/PivotByAction.jsx
similarity index 100%
rename from frontend/src/metabase/qb/components/actions/PivotByAction.jsx
rename to frontend/src/metabase/modes/components/actions/PivotByAction.jsx
diff --git a/frontend/src/metabase/qb/components/actions/PivotByCategoryAction.jsx b/frontend/src/metabase/modes/components/actions/PivotByCategoryAction.jsx
similarity index 100%
rename from frontend/src/metabase/qb/components/actions/PivotByCategoryAction.jsx
rename to frontend/src/metabase/modes/components/actions/PivotByCategoryAction.jsx
diff --git a/frontend/src/metabase/qb/components/actions/PivotByLocationAction.jsx b/frontend/src/metabase/modes/components/actions/PivotByLocationAction.jsx
similarity index 100%
rename from frontend/src/metabase/qb/components/actions/PivotByLocationAction.jsx
rename to frontend/src/metabase/modes/components/actions/PivotByLocationAction.jsx
diff --git a/frontend/src/metabase/qb/components/actions/PivotByTimeAction.jsx b/frontend/src/metabase/modes/components/actions/PivotByTimeAction.jsx
similarity index 100%
rename from frontend/src/metabase/qb/components/actions/PivotByTimeAction.jsx
rename to frontend/src/metabase/modes/components/actions/PivotByTimeAction.jsx
diff --git a/frontend/src/metabase/qb/components/actions/SummarizeBySegmentMetricAction.jsx b/frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx
similarity index 100%
rename from frontend/src/metabase/qb/components/actions/SummarizeBySegmentMetricAction.jsx
rename to frontend/src/metabase/modes/components/actions/SummarizeBySegmentMetricAction.jsx
diff --git a/frontend/src/metabase/qb/components/actions/UnderlyingDataAction.jsx b/frontend/src/metabase/modes/components/actions/UnderlyingDataAction.jsx
similarity index 100%
rename from frontend/src/metabase/qb/components/actions/UnderlyingDataAction.jsx
rename to frontend/src/metabase/modes/components/actions/UnderlyingDataAction.jsx
diff --git a/frontend/src/metabase/qb/components/actions/UnderlyingRecordsAction.jsx b/frontend/src/metabase/modes/components/actions/UnderlyingRecordsAction.jsx
similarity index 100%
rename from frontend/src/metabase/qb/components/actions/UnderlyingRecordsAction.jsx
rename to frontend/src/metabase/modes/components/actions/UnderlyingRecordsAction.jsx
diff --git a/frontend/src/metabase/qb/components/actions/XRayCard.jsx b/frontend/src/metabase/modes/components/actions/XRayCard.jsx
similarity index 100%
rename from frontend/src/metabase/qb/components/actions/XRayCard.jsx
rename to frontend/src/metabase/modes/components/actions/XRayCard.jsx
diff --git a/frontend/src/metabase/qb/components/actions/index.js b/frontend/src/metabase/modes/components/actions/index.js
similarity index 100%
rename from frontend/src/metabase/qb/components/actions/index.js
rename to frontend/src/metabase/modes/components/actions/index.js
diff --git a/frontend/src/metabase/qb/components/drill/AutomaticDashboardDrill.jsx b/frontend/src/metabase/modes/components/drill/AutomaticDashboardDrill.jsx
similarity index 100%
rename from frontend/src/metabase/qb/components/drill/AutomaticDashboardDrill.jsx
rename to frontend/src/metabase/modes/components/drill/AutomaticDashboardDrill.jsx
diff --git a/frontend/src/metabase/qb/components/drill/CompareToRestDrill.js b/frontend/src/metabase/modes/components/drill/CompareToRestDrill.js
similarity index 100%
rename from frontend/src/metabase/qb/components/drill/CompareToRestDrill.js
rename to frontend/src/metabase/modes/components/drill/CompareToRestDrill.js
diff --git a/frontend/src/metabase/qb/components/drill/DistributionDrill.jsx b/frontend/src/metabase/modes/components/drill/DistributionDrill.jsx
similarity index 100%
rename from frontend/src/metabase/qb/components/drill/DistributionDrill.jsx
rename to frontend/src/metabase/modes/components/drill/DistributionDrill.jsx
diff --git a/frontend/src/metabase/qb/components/drill/FormatAction.jsx b/frontend/src/metabase/modes/components/drill/FormatAction.jsx
similarity index 100%
rename from frontend/src/metabase/qb/components/drill/FormatAction.jsx
rename to frontend/src/metabase/modes/components/drill/FormatAction.jsx
diff --git a/frontend/src/metabase/qb/components/drill/ObjectDetailDrill.jsx b/frontend/src/metabase/modes/components/drill/ObjectDetailDrill.jsx
similarity index 100%
rename from frontend/src/metabase/qb/components/drill/ObjectDetailDrill.jsx
rename to frontend/src/metabase/modes/components/drill/ObjectDetailDrill.jsx
diff --git a/frontend/src/metabase/qb/components/drill/PivotByCategoryDrill.jsx b/frontend/src/metabase/modes/components/drill/PivotByCategoryDrill.jsx
similarity index 100%
rename from frontend/src/metabase/qb/components/drill/PivotByCategoryDrill.jsx
rename to frontend/src/metabase/modes/components/drill/PivotByCategoryDrill.jsx
diff --git a/frontend/src/metabase/qb/components/drill/PivotByLocationDrill.jsx b/frontend/src/metabase/modes/components/drill/PivotByLocationDrill.jsx
similarity index 100%
rename from frontend/src/metabase/qb/components/drill/PivotByLocationDrill.jsx
rename to frontend/src/metabase/modes/components/drill/PivotByLocationDrill.jsx
diff --git a/frontend/src/metabase/qb/components/drill/PivotByTimeDrill.jsx b/frontend/src/metabase/modes/components/drill/PivotByTimeDrill.jsx
similarity index 100%
rename from frontend/src/metabase/qb/components/drill/PivotByTimeDrill.jsx
rename to frontend/src/metabase/modes/components/drill/PivotByTimeDrill.jsx
diff --git a/frontend/src/metabase/qb/components/drill/QuickFilterDrill.jsx b/frontend/src/metabase/modes/components/drill/QuickFilterDrill.jsx
similarity index 100%
rename from frontend/src/metabase/qb/components/drill/QuickFilterDrill.jsx
rename to frontend/src/metabase/modes/components/drill/QuickFilterDrill.jsx
diff --git a/frontend/src/metabase/qb/components/drill/SortAction.jsx b/frontend/src/metabase/modes/components/drill/SortAction.jsx
similarity index 100%
rename from frontend/src/metabase/qb/components/drill/SortAction.jsx
rename to frontend/src/metabase/modes/components/drill/SortAction.jsx
diff --git a/frontend/src/metabase/qb/components/drill/SummarizeColumnByTimeDrill.js b/frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js
similarity index 95%
rename from frontend/src/metabase/qb/components/drill/SummarizeColumnByTimeDrill.js
rename to frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js
index 27c46dd62fd..a4b67b6aee6 100644
--- a/frontend/src/metabase/qb/components/drill/SummarizeColumnByTimeDrill.js
+++ b/frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.js
@@ -3,7 +3,7 @@
 import React from "react";
 import { t } from "c-3po";
 import StructuredQuery from "metabase-lib/lib/queries/StructuredQuery";
-import { getFieldRefFromColumn } from "metabase/qb/lib/actions";
+import { getFieldRefFromColumn } from "metabase/modes/lib/actions";
 import {
   isDate,
   getAggregator,
diff --git a/frontend/src/metabase/qb/components/drill/SummarizeColumnDrill.js b/frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js
similarity index 95%
rename from frontend/src/metabase/qb/components/drill/SummarizeColumnDrill.js
rename to frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js
index 50d12fb2b68..6be83d62b1c 100644
--- a/frontend/src/metabase/qb/components/drill/SummarizeColumnDrill.js
+++ b/frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.js
@@ -1,6 +1,6 @@
 /* @flow */
 
-import { getFieldRefFromColumn } from "metabase/qb/lib/actions";
+import { getFieldRefFromColumn } from "metabase/modes/lib/actions";
 import {
   getAggregator,
   isCompatibleAggregatorForField,
diff --git a/frontend/src/metabase/qb/components/drill/UnderlyingRecordsDrill.jsx b/frontend/src/metabase/modes/components/drill/UnderlyingRecordsDrill.jsx
similarity index 100%
rename from frontend/src/metabase/qb/components/drill/UnderlyingRecordsDrill.jsx
rename to frontend/src/metabase/modes/components/drill/UnderlyingRecordsDrill.jsx
diff --git a/frontend/src/metabase/qb/components/drill/ZoomDrill.jsx b/frontend/src/metabase/modes/components/drill/ZoomDrill.jsx
similarity index 89%
rename from frontend/src/metabase/qb/components/drill/ZoomDrill.jsx
rename to frontend/src/metabase/modes/components/drill/ZoomDrill.jsx
index 4ecd90a06c8..d4b0e18d6b0 100644
--- a/frontend/src/metabase/qb/components/drill/ZoomDrill.jsx
+++ b/frontend/src/metabase/modes/components/drill/ZoomDrill.jsx
@@ -1,6 +1,6 @@
 /* @flow */
 
-import { drillDownForDimensions } from "metabase/qb/lib/actions";
+import { drillDownForDimensions } from "metabase/modes/lib/actions";
 
 import type {
   ClickAction,
diff --git a/frontend/src/metabase/qb/components/drill/index.js b/frontend/src/metabase/modes/components/drill/index.js
similarity index 100%
rename from frontend/src/metabase/qb/components/drill/index.js
rename to frontend/src/metabase/modes/components/drill/index.js
diff --git a/frontend/src/metabase/qb/components/modes/DefaultMode.jsx b/frontend/src/metabase/modes/components/modes/DefaultMode.jsx
similarity index 100%
rename from frontend/src/metabase/qb/components/modes/DefaultMode.jsx
rename to frontend/src/metabase/modes/components/modes/DefaultMode.jsx
diff --git a/frontend/src/metabase/qb/components/modes/GeoMode.jsx b/frontend/src/metabase/modes/components/modes/GeoMode.jsx
similarity index 100%
rename from frontend/src/metabase/qb/components/modes/GeoMode.jsx
rename to frontend/src/metabase/modes/components/modes/GeoMode.jsx
diff --git a/frontend/src/metabase/qb/components/modes/MetricMode.jsx b/frontend/src/metabase/modes/components/modes/MetricMode.jsx
similarity index 100%
rename from frontend/src/metabase/qb/components/modes/MetricMode.jsx
rename to frontend/src/metabase/modes/components/modes/MetricMode.jsx
diff --git a/frontend/src/metabase/qb/components/modes/NativeMode.jsx b/frontend/src/metabase/modes/components/modes/NativeMode.jsx
similarity index 100%
rename from frontend/src/metabase/qb/components/modes/NativeMode.jsx
rename to frontend/src/metabase/modes/components/modes/NativeMode.jsx
diff --git a/frontend/src/metabase/qb/components/modes/ObjectMode.jsx b/frontend/src/metabase/modes/components/modes/ObjectMode.jsx
similarity index 100%
rename from frontend/src/metabase/qb/components/modes/ObjectMode.jsx
rename to frontend/src/metabase/modes/components/modes/ObjectMode.jsx
diff --git a/frontend/src/metabase/qb/components/modes/PivotMode.jsx b/frontend/src/metabase/modes/components/modes/PivotMode.jsx
similarity index 100%
rename from frontend/src/metabase/qb/components/modes/PivotMode.jsx
rename to frontend/src/metabase/modes/components/modes/PivotMode.jsx
diff --git a/frontend/src/metabase/qb/components/modes/SegmentMode.jsx b/frontend/src/metabase/modes/components/modes/SegmentMode.jsx
similarity index 100%
rename from frontend/src/metabase/qb/components/modes/SegmentMode.jsx
rename to frontend/src/metabase/modes/components/modes/SegmentMode.jsx
diff --git a/frontend/src/metabase/qb/components/modes/TimeseriesMode.jsx b/frontend/src/metabase/modes/components/modes/TimeseriesMode.jsx
similarity index 85%
rename from frontend/src/metabase/qb/components/modes/TimeseriesMode.jsx
rename to frontend/src/metabase/modes/components/modes/TimeseriesMode.jsx
index 8501d54927a..0fe1b039475 100644
--- a/frontend/src/metabase/qb/components/modes/TimeseriesMode.jsx
+++ b/frontend/src/metabase/modes/components/modes/TimeseriesMode.jsx
@@ -3,8 +3,8 @@
 import React from "react";
 
 // import TimeseriesGroupingWidget
-//     from "metabase/qb/components/TimeseriesGroupingWidget";
-import TimeseriesFilterWidget from "metabase/qb/components/TimeseriesFilterWidget";
+//     from "metabase/modes/components/TimeseriesGroupingWidget";
+import TimeseriesFilterWidget from "metabase/modes/components/TimeseriesFilterWidget";
 
 import { DEFAULT_ACTIONS } from "../actions";
 import { DEFAULT_DRILLS } from "../drill";
@@ -21,7 +21,7 @@ import type {
   DatasetQuery,
 } from "metabase/meta/types/Card";
 import type { TableMetadata } from "metabase/meta/types/Metadata";
-import TimeseriesGroupingWidget from "metabase/qb/components/TimeseriesGroupingWidget";
+import TimeseriesGroupingWidget from "metabase/modes/components/TimeseriesGroupingWidget";
 
 type Props = {
   lastRunCard: CardObject,
diff --git a/frontend/src/metabase/qb/lib/actions.js b/frontend/src/metabase/modes/lib/actions.js
similarity index 100%
rename from frontend/src/metabase/qb/lib/actions.js
rename to frontend/src/metabase/modes/lib/actions.js
diff --git a/frontend/src/metabase/qb/lib/drilldown.js b/frontend/src/metabase/modes/lib/drilldown.js
similarity index 100%
rename from frontend/src/metabase/qb/lib/drilldown.js
rename to frontend/src/metabase/modes/lib/drilldown.js
diff --git a/frontend/src/metabase/qb/lib/modes.js b/frontend/src/metabase/modes/lib/modes.js
similarity index 100%
rename from frontend/src/metabase/qb/lib/modes.js
rename to frontend/src/metabase/modes/lib/modes.js
diff --git a/frontend/src/metabase/query_builder/selectors.js b/frontend/src/metabase/query_builder/selectors.js
index 686a4cf675c..5ceb8286668 100644
--- a/frontend/src/metabase/query_builder/selectors.js
+++ b/frontend/src/metabase/query_builder/selectors.js
@@ -101,7 +101,7 @@ export const getDatabaseFields = createSelector(
   (databaseId, databaseFields) => databaseFields[databaseId],
 );
 
-import { getMode as getMode_ } from "metabase/qb/lib/modes";
+import { getMode as getMode_ } from "metabase/modes/lib/modes";
 import { getAlerts } from "metabase/alert/selectors";
 import {
   extractRemappings,
diff --git a/frontend/src/metabase/visualizations/components/LeafletMap.jsx b/frontend/src/metabase/visualizations/components/LeafletMap.jsx
index fbf0e019631..87c5363e643 100644
--- a/frontend/src/metabase/visualizations/components/LeafletMap.jsx
+++ b/frontend/src/metabase/visualizations/components/LeafletMap.jsx
@@ -11,7 +11,7 @@ import "leaflet-draw";
 
 import _ from "underscore";
 
-import { updateLatLonFilter } from "metabase/qb/lib/actions";
+import { updateLatLonFilter } from "metabase/modes/lib/actions";
 
 export default class LeafletMap extends Component {
   componentDidMount() {
diff --git a/frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js b/frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js
index 8524453f860..78702d30463 100644
--- a/frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js
+++ b/frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js
@@ -61,7 +61,7 @@ import { isStructured } from "metabase/meta/Card";
 import {
   updateDateTimeFilter,
   updateNumericFilter,
-} from "metabase/qb/lib/actions";
+} from "metabase/modes/lib/actions";
 
 import { lineAddons } from "./graph/addons";
 import { initBrush } from "./graph/brush";
diff --git a/frontend/test/metabase-lib/Action.unit.spec.js b/frontend/test/metabase-lib/lib/Action.unit.spec.js
similarity index 100%
rename from frontend/test/metabase-lib/Action.unit.spec.js
rename to frontend/test/metabase-lib/lib/Action.unit.spec.js
diff --git a/frontend/test/metabase-lib/Dimension.unit.spec.js b/frontend/test/metabase-lib/lib/Dimension.unit.spec.js
similarity index 100%
rename from frontend/test/metabase-lib/Dimension.unit.spec.js
rename to frontend/test/metabase-lib/lib/Dimension.unit.spec.js
diff --git a/frontend/test/metabase-lib/Mode.unit.spec.js b/frontend/test/metabase-lib/lib/Mode.unit.spec.js
similarity index 100%
rename from frontend/test/metabase-lib/Mode.unit.spec.js
rename to frontend/test/metabase-lib/lib/Mode.unit.spec.js
diff --git a/frontend/test/metabase-lib/Question.e2e.spec.js b/frontend/test/metabase-lib/lib/Question.e2e.spec.js
similarity index 100%
rename from frontend/test/metabase-lib/Question.e2e.spec.js
rename to frontend/test/metabase-lib/lib/Question.e2e.spec.js
diff --git a/frontend/test/metabase-lib/Question.unit.spec.js b/frontend/test/metabase-lib/lib/Question.unit.spec.js
similarity index 100%
rename from frontend/test/metabase-lib/Question.unit.spec.js
rename to frontend/test/metabase-lib/lib/Question.unit.spec.js
diff --git a/frontend/test/metabase-lib/metadata/Table.unit.spec.js b/frontend/test/metabase-lib/lib/metadata/Table.unit.spec.js
similarity index 100%
rename from frontend/test/metabase-lib/metadata/Table.unit.spec.js
rename to frontend/test/metabase-lib/lib/metadata/Table.unit.spec.js
diff --git a/frontend/test/metabase-lib/queries/NativeQuery.unit.spec.js b/frontend/test/metabase-lib/lib/queries/NativeQuery.unit.spec.js
similarity index 100%
rename from frontend/test/metabase-lib/queries/NativeQuery.unit.spec.js
rename to frontend/test/metabase-lib/lib/queries/NativeQuery.unit.spec.js
diff --git a/frontend/test/metabase-lib/queries/StructuredQuery.unit.spec.js b/frontend/test/metabase-lib/lib/queries/StructuredQuery.unit.spec.js
similarity index 100%
rename from frontend/test/metabase-lib/queries/StructuredQuery.unit.spec.js
rename to frontend/test/metabase-lib/lib/queries/StructuredQuery.unit.spec.js
diff --git a/frontend/test/metabase/dashboards/dashboards.e2e.spec.js b/frontend/test/metabase/dashboards/dashboards.e2e.spec.js
deleted file mode 100644
index 93d6c7d3239..00000000000
--- a/frontend/test/metabase/dashboards/dashboards.e2e.spec.js
+++ /dev/null
@@ -1,155 +0,0 @@
-import {
-  createTestStore,
-  useSharedAdminLogin,
-} from "__support__/e2e_tests";
-import { click, clickButton, setInputValue } from "__support__/enzyme_utils";
-
-import { mount } from "enzyme";
-
-import Dashboards from "metabase/entities/dashboards";
-
-import CreateDashboardModal from "metabase/components/CreateDashboardModal";
-import { FETCH_DASHBOARD } from "metabase/dashboard/dashboard";
-import { DashboardApi } from "metabase/services";
-import SearchHeader from "metabase/components/SearchHeader";
-import EmptyState from "metabase/components/EmptyState";
-import Dashboard from "metabase/dashboard/components/Dashboard";
-import ArchivedItem from "metabase/components/ArchivedItem";
-
-/*
- * disable these tests for now since they break with the new way we're doing
- * dashboard listing. the same functionality tested here should be re-tested
- * with a new set of tests that works for the new layout in collection landings
- */
-const DashboardListItem =
-  "HACK: placeholder to appease linter. this component was removed";
-xdescribe("dashboards list", () => {
-  beforeAll(async () => {
-    useSharedAdminLogin();
-  });
-
-  afterAll(async () => {
-    const dashboardIds = (await DashboardApi.list())
-      .filter(dash => !dash.archived)
-      .map(dash => dash.id);
-
-    await Promise.all(
-      dashboardIds.map(id => DashboardApi.update({ id, archived: true })),
-    );
-  });
-
-  it("should let you create a dashboard when there are no existing dashboards", async () => {
-    const store = await createTestStore();
-    store.pushPath("/dashboards");
-    const app = mount(store.getAppContainer());
-
-    await store.waitForActions([Dashboards.actionTypes.FETCH_LIST]);
-
-    // // Create a new dashboard in the empty state (EmptyState react component)
-    click(app.find(".Button.Button--primary"));
-    // click(app.find(".Icon.Icon-add"))
-
-    const modal = app.find(CreateDashboardModal);
-
-    setInputValue(
-      modal.find('input[name="name"]'),
-      "Customer Feedback Analysis",
-    );
-    setInputValue(
-      modal.find('input[name="description"]'),
-      "For seeing the usual response times, feedback topics, our response rate, how often customers are directed to our knowledge base instead of providing a customized response",
-    );
-    clickButton(modal.find(".Button--primary"));
-
-    // should navigate to dashboard page
-    await store.waitForActions(FETCH_DASHBOARD);
-    expect(app.find(Dashboard).length).toBe(1);
-  });
-
-  it("should let you create a dashboard when there are existing dashboards", async () => {
-    // Return to the dashboard list and check that we see an expected list item
-    const store = await createTestStore();
-    store.pushPath("/dashboards");
-    const app = mount(store.getAppContainer());
-
-    await store.waitForActions([Dashboards.actionTypes.FETCH_LIST]);
-    expect(app.find(DashboardListItem).length).toBe(1);
-
-    // Create another one
-    click(app.find(".Icon.Icon-add"));
-    const modal2 = app.find(CreateDashboardModal);
-    setInputValue(
-      modal2.find('input[name="name"]'),
-      "Some Excessively Long Dashboard Title Just For Fun",
-    );
-    setInputValue(modal2.find('input[name="description"]'), "");
-    clickButton(modal2.find(".Button--primary"));
-
-    await store.waitForActions(FETCH_DASHBOARD);
-  });
-
-  xit("should let you search form both title and description", async () => {
-    const store = await createTestStore();
-    store.pushPath("/dashboards");
-    const app = mount(store.getAppContainer());
-    await store.waitForActions([Dashboards.actionTypes.FETCH_LIST]);
-
-    setInputValue(
-      app.find(SearchHeader).find("input"),
-      "this should produce no results",
-    );
-    expect(app.find(EmptyState).length).toBe(1);
-
-    // Should search from both title and description
-    setInputValue(app.find(SearchHeader).find("input"), "usual response times");
-    expect(app.find(DashboardListItem).text()).toMatch(
-      /Customer Feedback Analysis/,
-    );
-  });
-
-  xit("should let you favorite and unfavorite dashboards", async () => {
-    const store = await createTestStore();
-    store.pushPath("/dashboards");
-    const app = mount(store.getAppContainer());
-    await store.waitForActions([Dashboards.actionTypes.FETCH_LIST]);
-
-    click(
-      app
-        .find(DashboardListItem)
-        .first()
-        .find(".Icon-staroutline"),
-    );
-    await store.waitForActions([Dashboards.actionTypes.UPDATE]);
-
-    click(app.find(".TestPopover").find('h4[children="Favorites"]'));
-
-    click(
-      app
-        .find(DashboardListItem)
-        .first()
-        .find(".Icon-star")
-        .first(),
-    );
-    await store.waitForActions([Dashboards.actionTypes.UPDATE]);
-    expect(app.find(EmptyState).length).toBe(1);
-  });
-
-  xit("should let you archive and unarchive dashboards", async () => {
-    const store = await createTestStore();
-    store.pushPath("/dashboards");
-    const app = mount(store.getAppContainer());
-    await store.waitForActions([Dashboards.actionTypes.FETCH_LIST]);
-
-    click(
-      app
-        .find(DashboardListItem)
-        .first()
-        .find(".Icon-archive"),
-    );
-    await store.waitForActions([Dashboards.actionTypes.UPDATE_ACTION]);
-
-    click(app.find(".Icon-viewArchive"));
-    //await store.waitForActions([FETCH_ARCHIVE]);
-    expect(app.find(ArchivedItem).length).toBeGreaterThan(0);
-  });
-});
diff --git a/frontend/test/metabase/modes/TimeseriesFilterWidget.unit.spec.jsx b/frontend/test/metabase/modes/TimeseriesFilterWidget.unit.spec.jsx
index ac1ee1f7de2..e500733986b 100644
--- a/frontend/test/metabase/modes/TimeseriesFilterWidget.unit.spec.jsx
+++ b/frontend/test/metabase/modes/TimeseriesFilterWidget.unit.spec.jsx
@@ -1,6 +1,6 @@
 /* eslint-disable flowtype/require-valid-file-annotation */
 import React from "react";
-import TimeseriesFilterWidget from "metabase/qb/components/TimeseriesFilterWidget";
+import TimeseriesFilterWidget from "metabase/modes/components/TimeseriesFilterWidget";
 import { mount } from "enzyme";
 
 import Question from "metabase-lib/lib/Question";
diff --git a/frontend/test/metabase/modes/TimeseriesMode.unit.spec.js b/frontend/test/metabase/modes/TimeseriesMode.unit.spec.js
index 16247cca68a..8bf01e52ffd 100644
--- a/frontend/test/metabase/modes/TimeseriesMode.unit.spec.js
+++ b/frontend/test/metabase/modes/TimeseriesMode.unit.spec.js
@@ -2,9 +2,9 @@
 import "metabase-lib/lib/Question";
 
 import React from "react";
-import { TimeseriesModeFooter } from "metabase/qb/components/modes/TimeseriesMode";
-import TimeseriesGroupingWidget from "metabase/qb/components/TimeseriesGroupingWidget";
-import TimeseriesFilterWidget from "metabase/qb/components/TimeseriesFilterWidget";
+import { TimeseriesModeFooter } from "metabase/modes/components/modes/TimeseriesMode";
+import TimeseriesGroupingWidget from "metabase/modes/components/TimeseriesGroupingWidget";
+import TimeseriesFilterWidget from "metabase/modes/components/TimeseriesFilterWidget";
 import { shallow } from "enzyme";
 
 describe("TimeSeriesModeFooter", () => {
diff --git a/frontend/test/metabase/modes/actions/CommonMetricsAction.e2e.spec.js b/frontend/test/metabase/modes/components/actions/CommonMetricsAction.e2e.spec.js
similarity index 100%
rename from frontend/test/metabase/modes/actions/CommonMetricsAction.e2e.spec.js
rename to frontend/test/metabase/modes/components/actions/CommonMetricsAction.e2e.spec.js
diff --git a/frontend/test/metabase/modes/actions/CommonMetricsAction.unit.spec.js b/frontend/test/metabase/modes/components/actions/CommonMetricsAction.unit.spec.js
similarity index 94%
rename from frontend/test/metabase/modes/actions/CommonMetricsAction.unit.spec.js
rename to frontend/test/metabase/modes/components/actions/CommonMetricsAction.unit.spec.js
index 74a65d5e47a..6bc35126fa0 100644
--- a/frontend/test/metabase/modes/actions/CommonMetricsAction.unit.spec.js
+++ b/frontend/test/metabase/modes/components/actions/CommonMetricsAction.unit.spec.js
@@ -6,7 +6,7 @@ import {
   MAIN_METRIC_ID,
 } from "__support__/sample_dataset_fixture";
 
-import CommonMetricsAction from "metabase/qb/components/actions/CommonMetricsAction";
+import CommonMetricsAction from "metabase/modes/components/actions/CommonMetricsAction";
 
 import { assocIn } from "icepick";
 
diff --git a/frontend/test/metabase/modes/actions/CompoundQueryAction.unit.spec.js b/frontend/test/metabase/modes/components/actions/CompoundQueryAction.unit.spec.js
similarity index 93%
rename from frontend/test/metabase/modes/actions/CompoundQueryAction.unit.spec.js
rename to frontend/test/metabase/modes/components/actions/CompoundQueryAction.unit.spec.js
index 6cf6a4f8757..ce4b9165e03 100644
--- a/frontend/test/metabase/modes/actions/CompoundQueryAction.unit.spec.js
+++ b/frontend/test/metabase/modes/components/actions/CompoundQueryAction.unit.spec.js
@@ -1,6 +1,6 @@
 /* eslint-disable flowtype/require-valid-file-annotation */
 
-import CompoundQueryAction from "metabase/qb/components/actions/CompoundQueryAction";
+import CompoundQueryAction from "metabase/modes/components/actions/CompoundQueryAction";
 
 import Question from "metabase-lib/lib/Question";
 
diff --git a/frontend/test/metabase/modes/actions/CountByTimeAction.e2e.spec.js b/frontend/test/metabase/modes/components/actions/CountByTimeAction.e2e.spec.js
similarity index 100%
rename from frontend/test/metabase/modes/actions/CountByTimeAction.e2e.spec.js
rename to frontend/test/metabase/modes/components/actions/CountByTimeAction.e2e.spec.js
diff --git a/frontend/test/metabase/modes/actions/CountByTimeAction.unit.spec.js b/frontend/test/metabase/modes/components/actions/CountByTimeAction.unit.spec.js
similarity index 91%
rename from frontend/test/metabase/modes/actions/CountByTimeAction.unit.spec.js
rename to frontend/test/metabase/modes/components/actions/CountByTimeAction.unit.spec.js
index 57bdb5fdea5..160ecebabc3 100644
--- a/frontend/test/metabase/modes/actions/CountByTimeAction.unit.spec.js
+++ b/frontend/test/metabase/modes/components/actions/CountByTimeAction.unit.spec.js
@@ -7,7 +7,7 @@ import {
   ORDERS_CREATED_DATE_FIELD_ID,
 } from "__support__/sample_dataset_fixture";
 
-import CountByTimeAction from "metabase/qb/components/actions/CountByTimeAction";
+import CountByTimeAction from "metabase/modes/components/actions/CountByTimeAction";
 
 describe("CountByTimeAction", () => {
   it("should not be valid if the table has no metrics", () => {
diff --git a/frontend/test/metabase/modes/actions/SummarizeBySegmentMetricAction.unit.spec.js b/frontend/test/metabase/modes/components/actions/SummarizeBySegmentMetricAction.unit.spec.js
similarity index 95%
rename from frontend/test/metabase/modes/actions/SummarizeBySegmentMetricAction.unit.spec.js
rename to frontend/test/metabase/modes/components/actions/SummarizeBySegmentMetricAction.unit.spec.js
index f6ac66dad84..59c746c1ddc 100644
--- a/frontend/test/metabase/modes/actions/SummarizeBySegmentMetricAction.unit.spec.js
+++ b/frontend/test/metabase/modes/components/actions/SummarizeBySegmentMetricAction.unit.spec.js
@@ -7,7 +7,7 @@ import {
 } from "__support__/sample_dataset_fixture";
 import { click } from "__support__/enzyme_utils";
 import Question from "metabase-lib/lib/Question";
-import SummarizeBySegmentMetricAction from "metabase/qb/components/actions/SummarizeBySegmentMetricAction";
+import SummarizeBySegmentMetricAction from "metabase/modes/components/actions/SummarizeBySegmentMetricAction";
 import { mount } from "enzyme";
 
 const question = Question.create({
diff --git a/frontend/test/metabase/modes/drills/ObjectDetailDrill.unit.spec.js b/frontend/test/metabase/modes/components/drill/ObjectDetailDrill.unit.spec.js
similarity index 93%
rename from frontend/test/metabase/modes/drills/ObjectDetailDrill.unit.spec.js
rename to frontend/test/metabase/modes/components/drill/ObjectDetailDrill.unit.spec.js
index 7b6ec2def55..bacddfa55c6 100644
--- a/frontend/test/metabase/modes/drills/ObjectDetailDrill.unit.spec.js
+++ b/frontend/test/metabase/modes/components/drill/ObjectDetailDrill.unit.spec.js
@@ -1,6 +1,6 @@
 /* eslint-disable flowtype/require-valid-file-annotation */
 
-import ObjectDetailDrill from "metabase/qb/components/drill/ObjectDetailDrill";
+import ObjectDetailDrill from "metabase/modes/components/drill/ObjectDetailDrill";
 
 import {
   question,
diff --git a/frontend/test/metabase/modes/drills/PivotByCategoryDrill.e2e.spec.js b/frontend/test/metabase/modes/components/drill/PivotByCategoryDrill.e2e.spec.js
similarity index 100%
rename from frontend/test/metabase/modes/drills/PivotByCategoryDrill.e2e.spec.js
rename to frontend/test/metabase/modes/components/drill/PivotByCategoryDrill.e2e.spec.js
diff --git a/frontend/test/metabase/modes/drills/QuickFilterDrill.e2e.spec.js b/frontend/test/metabase/modes/components/drill/QuickFilterDrill.e2e.spec.js
similarity index 100%
rename from frontend/test/metabase/modes/drills/QuickFilterDrill.e2e.spec.js
rename to frontend/test/metabase/modes/components/drill/QuickFilterDrill.e2e.spec.js
diff --git a/frontend/test/metabase/modes/drills/SortAction.e2e.spec.js b/frontend/test/metabase/modes/components/drill/SortAction.e2e.spec.js
similarity index 100%
rename from frontend/test/metabase/modes/drills/SortAction.e2e.spec.js
rename to frontend/test/metabase/modes/components/drill/SortAction.e2e.spec.js
diff --git a/frontend/test/metabase/modes/drills/SummarizeColumnByTimeDrill.e2e.spec.js b/frontend/test/metabase/modes/components/drill/SummarizeColumnByTimeDrill.e2e.spec.js
similarity index 100%
rename from frontend/test/metabase/modes/drills/SummarizeColumnByTimeDrill.e2e.spec.js
rename to frontend/test/metabase/modes/components/drill/SummarizeColumnByTimeDrill.e2e.spec.js
diff --git a/frontend/test/metabase/modes/drills/SummarizeColumnByTimeDrill.unit.spec.js b/frontend/test/metabase/modes/components/drill/SummarizeColumnByTimeDrill.unit.spec.js
similarity index 92%
rename from frontend/test/metabase/modes/drills/SummarizeColumnByTimeDrill.unit.spec.js
rename to frontend/test/metabase/modes/components/drill/SummarizeColumnByTimeDrill.unit.spec.js
index b4ab82fd509..cbb750d414c 100644
--- a/frontend/test/metabase/modes/drills/SummarizeColumnByTimeDrill.unit.spec.js
+++ b/frontend/test/metabase/modes/components/drill/SummarizeColumnByTimeDrill.unit.spec.js
@@ -9,7 +9,7 @@ import {
   ORDERS_CREATED_DATE_FIELD_ID,
 } from "__support__/sample_dataset_fixture";
 
-import SummarizeColumnByTimeDrill from "metabase/qb/components/drill/SummarizeColumnByTimeDrill";
+import SummarizeColumnByTimeDrill from "metabase/modes/components/drill/SummarizeColumnByTimeDrill";
 
 describe("SummarizeColumnByTimeDrill", () => {
   it("should not be valid for top level actions", () => {
diff --git a/frontend/test/metabase/modes/drills/SummarizeColumnDrill.e2e.spec.js b/frontend/test/metabase/modes/components/drill/SummarizeColumnDrill.e2e.spec.js
similarity index 100%
rename from frontend/test/metabase/modes/drills/SummarizeColumnDrill.e2e.spec.js
rename to frontend/test/metabase/modes/components/drill/SummarizeColumnDrill.e2e.spec.js
diff --git a/frontend/test/metabase/modes/drills/SummarizeColumnDrill.unit.spec.js b/frontend/test/metabase/modes/components/drill/SummarizeColumnDrill.unit.spec.js
similarity index 90%
rename from frontend/test/metabase/modes/drills/SummarizeColumnDrill.unit.spec.js
rename to frontend/test/metabase/modes/components/drill/SummarizeColumnDrill.unit.spec.js
index 149690d2c84..9e036afe786 100644
--- a/frontend/test/metabase/modes/drills/SummarizeColumnDrill.unit.spec.js
+++ b/frontend/test/metabase/modes/components/drill/SummarizeColumnDrill.unit.spec.js
@@ -1,6 +1,6 @@
 /* eslint-disable */
 
-import SummarizeColumnDrill from "metabase/qb/components/drill/SummarizeColumnDrill";
+import SummarizeColumnDrill from "metabase/modes/components/drill/SummarizeColumnDrill";
 
 import {
   question,
diff --git a/frontend/test/metabase/modes/drills/TimeseriesPivotDrill.e2e.spec.js b/frontend/test/metabase/modes/components/drill/TimeseriesPivotDrill.e2e.spec.js
similarity index 100%
rename from frontend/test/metabase/modes/drills/TimeseriesPivotDrill.e2e.spec.js
rename to frontend/test/metabase/modes/components/drill/TimeseriesPivotDrill.e2e.spec.js
diff --git a/frontend/test/metabase/modes/drills/UnderlyingRecordsDrill.unit.spec.js b/frontend/test/metabase/modes/components/drill/UnderlyingRecordsDrill.unit.spec.js
similarity index 96%
rename from frontend/test/metabase/modes/drills/UnderlyingRecordsDrill.unit.spec.js
rename to frontend/test/metabase/modes/components/drill/UnderlyingRecordsDrill.unit.spec.js
index 942ed60ec25..039dfead11e 100644
--- a/frontend/test/metabase/modes/drills/UnderlyingRecordsDrill.unit.spec.js
+++ b/frontend/test/metabase/modes/components/drill/UnderlyingRecordsDrill.unit.spec.js
@@ -11,7 +11,7 @@ import {
 import { assocIn, chain } from "icepick";
 import moment from "moment";
 
-import UnderlyingRecordsDrill from "metabase/qb/components/drill/UnderlyingRecordsDrill";
+import UnderlyingRecordsDrill from "metabase/modes/components/drill/UnderlyingRecordsDrill";
 
 function getActionPropsForTimeseriesClick(unit, value) {
   return {
diff --git a/frontend/test/metabase/modes/drills/ZoomDrill.unit.spec.js b/frontend/test/metabase/modes/components/drill/ZoomDrill.unit.spec.js
similarity index 96%
rename from frontend/test/metabase/modes/drills/ZoomDrill.unit.spec.js
rename to frontend/test/metabase/modes/components/drill/ZoomDrill.unit.spec.js
index 7c61097d287..46156d5c1dd 100644
--- a/frontend/test/metabase/modes/drills/ZoomDrill.unit.spec.js
+++ b/frontend/test/metabase/modes/components/drill/ZoomDrill.unit.spec.js
@@ -10,7 +10,7 @@ import {
 
 import { chain } from "icepick";
 
-import ZoomDrill from "metabase/qb/components/drill/ZoomDrill";
+import ZoomDrill from "metabase/modes/components/drill/ZoomDrill";
 
 describe("ZoomDrill", () => {
   it("should not be valid for top level actions", () => {
diff --git a/frontend/test/metabase/modes/lib/actions.unit.spec.js b/frontend/test/metabase/modes/lib/actions.unit.spec.js
index cbf0c0f81d5..26c7d1862de 100644
--- a/frontend/test/metabase/modes/lib/actions.unit.spec.js
+++ b/frontend/test/metabase/modes/lib/actions.unit.spec.js
@@ -1,6 +1,6 @@
 /* eslint-disable flowtype/require-valid-file-annotation */
 
-import { drillFilter } from "metabase/qb/lib/actions";
+import { drillFilter } from "metabase/modes/lib/actions";
 
 describe("actions", () => {
   describe("drillFilter", () => {
diff --git a/frontend/test/metabase/modes/lib/drilldown.unit.spec.js b/frontend/test/metabase/modes/lib/drilldown.unit.spec.js
index 8d308360c41..ec514f5b32f 100644
--- a/frontend/test/metabase/modes/lib/drilldown.unit.spec.js
+++ b/frontend/test/metabase/modes/lib/drilldown.unit.spec.js
@@ -9,7 +9,7 @@ import {
   PEOPLE_STATE_FIELD_ID,
 } from "__support__/sample_dataset_fixture";
 
-import { drillDownForDimensions } from "metabase/qb/lib/drilldown";
+import { drillDownForDimensions } from "metabase/modes/lib/drilldown";
 
 const col = (fieldId, extra = {}) => ({
   ...metadata.fields[fieldId],
-- 
GitLab