diff --git a/frontend/test/metabase/modes/lib/actions.unit.spec.js b/frontend/src/metabase-lib/queries/utils/actions.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/modes/lib/actions.unit.spec.js
rename to frontend/src/metabase-lib/queries/utils/actions.unit.spec.js
diff --git a/frontend/test/metabase/modes/lib/drilldown.unit.spec.js b/frontend/src/metabase-lib/queries/utils/drilldown.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/modes/lib/drilldown.unit.spec.js
rename to frontend/src/metabase-lib/queries/utils/drilldown.unit.spec.js
diff --git a/frontend/test/metabase/admin/settings/utils.unit.spec.js b/frontend/src/metabase/admin/settings/utils.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/admin/settings/utils.unit.spec.js
rename to frontend/src/metabase/admin/settings/utils.unit.spec.js
diff --git a/frontend/test/metabase/admin/tasks/containers/Logs.unit.spec.js b/frontend/src/metabase/admin/tasks/containers/Logs.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/admin/tasks/containers/Logs.unit.spec.js
rename to frontend/src/metabase/admin/tasks/containers/Logs.unit.spec.js
diff --git a/frontend/test/metabase/collections/BaseItemsTable.unit.spec.js b/frontend/src/metabase/collections/components/BaseItemsTable.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/collections/BaseItemsTable.unit.spec.js
rename to frontend/src/metabase/collections/components/BaseItemsTable.unit.spec.js
diff --git a/frontend/test/metabase/collections/util.unit.spec.js b/frontend/src/metabase/collections/utils.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/collections/util.unit.spec.js
rename to frontend/src/metabase/collections/utils.unit.spec.js
diff --git a/frontend/test/metabase/components/Calendar.unit.spec.js b/frontend/src/metabase/components/Calendar/Calendar.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/components/Calendar.unit.spec.js
rename to frontend/src/metabase/components/Calendar/Calendar.unit.spec.js
diff --git a/frontend/test/metabase/components/ClampedText.unit.spec.js b/frontend/src/metabase/components/ClampedText/ClampedText.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/components/ClampedText.unit.spec.js
rename to frontend/src/metabase/components/ClampedText/ClampedText.unit.spec.js
diff --git a/frontend/test/metabase/components/DateTime.unit.spec.js b/frontend/src/metabase/components/DateTime/DateTime.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/components/DateTime.unit.spec.js
rename to frontend/src/metabase/components/DateTime/DateTime.unit.spec.js
diff --git a/frontend/test/metabase/components/EntityMenuItem.unit.spec.js b/frontend/src/metabase/components/EntityMenuItem/EntityMenuItem.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/components/EntityMenuItem.unit.spec.js
rename to frontend/src/metabase/components/EntityMenuItem/EntityMenuItem.unit.spec.js
diff --git a/frontend/test/metabase/components/EntityMenuTrigger.unit.spec.js b/frontend/src/metabase/components/EntityMenuTrigger/EntityMenuTrigger.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/components/EntityMenuTrigger.unit.spec.js
rename to frontend/src/metabase/components/EntityMenuTrigger/EntityMenuTrigger.unit.spec.js
diff --git a/frontend/test/metabase/components/FieldValuesWidget.unit.spec.js b/frontend/src/metabase/components/FieldValuesWidget/FieldValuesWidget.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/components/FieldValuesWidget.unit.spec.js
rename to frontend/src/metabase/components/FieldValuesWidget/FieldValuesWidget.unit.spec.js
diff --git a/frontend/test/metabase/components/Icon.unit.spec.js b/frontend/src/metabase/components/Icon/Icon.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/components/Icon.unit.spec.js
rename to frontend/src/metabase/components/Icon/Icon.unit.spec.js
diff --git a/frontend/src/metabase/components/LastEditInfoLabel.js b/frontend/src/metabase/components/LastEditInfoLabel/LastEditInfoLabel.jsx
similarity index 100%
rename from frontend/src/metabase/components/LastEditInfoLabel.js
rename to frontend/src/metabase/components/LastEditInfoLabel/LastEditInfoLabel.jsx
diff --git a/frontend/test/metabase/components/LastEditInfoLabel.unit.spec.js b/frontend/src/metabase/components/LastEditInfoLabel/LastEditInfoLabel.unit.spec.js
similarity index 97%
rename from frontend/test/metabase/components/LastEditInfoLabel.unit.spec.js
rename to frontend/src/metabase/components/LastEditInfoLabel/LastEditInfoLabel.unit.spec.js
index 7e4fd7b3fa32564184928d5db4791dab749d81b5..67797ff5455186f45954b5a848f563a8eb7f512f 100644
--- a/frontend/test/metabase/components/LastEditInfoLabel.unit.spec.js
+++ b/frontend/src/metabase/components/LastEditInfoLabel/LastEditInfoLabel.unit.spec.js
@@ -3,7 +3,7 @@ import mockDate from "mockdate";
 import moment from "moment-timezone";
 import { renderWithProviders, screen } from "__support__/ui";
 import { createMockUser } from "metabase-types/api/mocks";
-import LastEditInfoLabel from "metabase/components/LastEditInfoLabel";
+import LastEditInfoLabel from "./LastEditInfoLabel";
 
 describe("LastEditInfoLabel", () => {
   afterEach(() => {
diff --git a/frontend/src/metabase/components/LastEditInfoLabel/index.jsx b/frontend/src/metabase/components/LastEditInfoLabel/index.jsx
new file mode 100644
index 0000000000000000000000000000000000000000..399ce666e08b0397d171a69e0186abde1b9d9e54
--- /dev/null
+++ b/frontend/src/metabase/components/LastEditInfoLabel/index.jsx
@@ -0,0 +1 @@
+export { default } from "./LastEditInfoLabel";
diff --git a/frontend/test/metabase/components/LoadingAndErrorWrapper.unit.spec.js b/frontend/src/metabase/components/LoadingAndErrorWrapper/LoadingAndErrorWrapper.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/components/LoadingAndErrorWrapper.unit.spec.js
rename to frontend/src/metabase/components/LoadingAndErrorWrapper/LoadingAndErrorWrapper.unit.spec.js
diff --git a/frontend/test/metabase/components/PaginationControls.unit.spec.js b/frontend/src/metabase/components/PaginationControls/PaginationControls.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/components/PaginationControls.unit.spec.js
rename to frontend/src/metabase/components/PaginationControls/PaginationControls.unit.spec.js
diff --git a/frontend/test/metabase/components/PasswordReveal.unit.spec.js b/frontend/src/metabase/components/PasswordReveal/PasswordReveal.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/components/PasswordReveal.unit.spec.js
rename to frontend/src/metabase/components/PasswordReveal/PasswordReveal.unit.spec.js
diff --git a/frontend/test/metabase/containers/AdHocQuestionLoader.unit.spec.js b/frontend/src/metabase/containers/AdHocQuestionLoader.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/containers/AdHocQuestionLoader.unit.spec.js
rename to frontend/src/metabase/containers/AdHocQuestionLoader.unit.spec.js
diff --git a/frontend/test/metabase/containers/QuestionResultLoader.unit.spec.js b/frontend/src/metabase/containers/QuestionResultLoader.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/containers/QuestionResultLoader.unit.spec.js
rename to frontend/src/metabase/containers/QuestionResultLoader.unit.spec.js
diff --git a/frontend/test/metabase/containers/SaveQuestionModal.unit.spec.js b/frontend/src/metabase/containers/SaveQuestionModal.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/containers/SaveQuestionModal.unit.spec.js
rename to frontend/src/metabase/containers/SaveQuestionModal.unit.spec.js
diff --git a/frontend/test/metabase/containers/SavedQuestionLoader.unit.spec.js b/frontend/src/metabase/containers/SavedQuestionLoader.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/containers/SavedQuestionLoader.unit.spec.js
rename to frontend/src/metabase/containers/SavedQuestionLoader.unit.spec.js
diff --git a/frontend/test/metabase/components/Select.unit.spec.js b/frontend/src/metabase/core/components/Select/Select.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/components/Select.unit.spec.js
rename to frontend/src/metabase/core/components/Select/Select.unit.spec.js
diff --git a/frontend/test/metabase/entities/containers/EntityListLoader.unit.spec.js b/frontend/src/metabase/entities/containers/EntityListLoader.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/entities/containers/EntityListLoader.unit.spec.js
rename to frontend/src/metabase/entities/containers/EntityListLoader.unit.spec.js
diff --git a/frontend/test/metabase/entities/databases.unit.spec.js b/frontend/src/metabase/entities/databases.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/entities/databases.unit.spec.js
rename to frontend/src/metabase/entities/databases.unit.spec.js
diff --git a/frontend/test/metabase/entities/schemas.unit.spec.js b/frontend/src/metabase/entities/schemas.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/entities/schemas.unit.spec.js
rename to frontend/src/metabase/entities/schemas.unit.spec.js
diff --git a/frontend/test/metabase/entities/tables.unit.spec.js b/frontend/src/metabase/entities/tables.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/entities/tables.unit.spec.js
rename to frontend/src/metabase/entities/tables.unit.spec.js
diff --git a/frontend/test/metabase/hoc/Background.unit.spec.js b/frontend/src/metabase/hoc/Background.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/hoc/Background.unit.spec.js
rename to frontend/src/metabase/hoc/Background.unit.spec.js
diff --git a/frontend/test/metabase/entities/entities.unit.spec.js b/frontend/src/metabase/lib/entities.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/entities/entities.unit.spec.js
rename to frontend/src/metabase/lib/entities.unit.spec.js
diff --git a/frontend/test/metabase/modes/TimeseriesFilterWidget.unit.spec.js b/frontend/src/metabase/modes/components/TimeseriesFilterWidget.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/modes/TimeseriesFilterWidget.unit.spec.js
rename to frontend/src/metabase/modes/components/TimeseriesFilterWidget.unit.spec.js
diff --git a/frontend/test/metabase/modes/components/drill/ObjectDetailDrill.unit.spec.js b/frontend/src/metabase/modes/components/drill/ObjectDetailDrill.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/modes/components/drill/ObjectDetailDrill.unit.spec.js
rename to frontend/src/metabase/modes/components/drill/ObjectDetailDrill.unit.spec.js
diff --git a/frontend/test/metabase/modes/components/drill/QuickFilterDrill.unit.spec.js b/frontend/src/metabase/modes/components/drill/QuickFilterDrill.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/modes/components/drill/QuickFilterDrill.unit.spec.js
rename to frontend/src/metabase/modes/components/drill/QuickFilterDrill.unit.spec.js
diff --git a/frontend/test/metabase/modes/components/drill/SummarizeColumnByTimeDrill.unit.spec.js b/frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/modes/components/drill/SummarizeColumnByTimeDrill.unit.spec.js
rename to frontend/src/metabase/modes/components/drill/SummarizeColumnByTimeDrill.unit.spec.js
diff --git a/frontend/test/metabase/modes/components/drill/SummarizeColumnDrill.unit.spec.js b/frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/modes/components/drill/SummarizeColumnDrill.unit.spec.js
rename to frontend/src/metabase/modes/components/drill/SummarizeColumnDrill.unit.spec.js
diff --git a/frontend/test/metabase/modes/components/drill/UnderlyingRecordsDrill.unit.spec.js b/frontend/src/metabase/modes/components/drill/UnderlyingRecordsDrill.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/modes/components/drill/UnderlyingRecordsDrill.unit.spec.js
rename to frontend/src/metabase/modes/components/drill/UnderlyingRecordsDrill.unit.spec.js
diff --git a/frontend/test/metabase/modes/components/drill/ZoomDrill.unit.spec.js b/frontend/src/metabase/modes/components/drill/ZoomDrill.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/modes/components/drill/ZoomDrill.unit.spec.js
rename to frontend/src/metabase/modes/components/drill/ZoomDrill.unit.spec.js
diff --git a/frontend/test/metabase/modes/lib/modes.unit.spec.js b/frontend/src/metabase/modes/components/modes/SegmentMode.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/modes/lib/modes.unit.spec.js
rename to frontend/src/metabase/modes/components/modes/SegmentMode.unit.spec.js
diff --git a/frontend/test/metabase/nav/ProfileLink.unit.spec.js b/frontend/src/metabase/nav/components/ProfileLink.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/nav/ProfileLink.unit.spec.js
rename to frontend/src/metabase/nav/components/ProfileLink.unit.spec.js
diff --git a/frontend/test/metabase/pulse/pulse.unit.spec.js b/frontend/src/metabase/pulse/components/RecipientPicker.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/pulse/pulse.unit.spec.js
rename to frontend/src/metabase/pulse/components/RecipientPicker.unit.spec.js
diff --git a/frontend/test/metabase/query_builder/components/DataSelector.unit.spec.js b/frontend/src/metabase/query_builder/components/DataSelector/DataSelector.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/query_builder/components/DataSelector.unit.spec.js
rename to frontend/src/metabase/query_builder/components/DataSelector/DataSelector.unit.spec.js
diff --git a/frontend/test/metabase/query_builder/components/GuiQueryEditor.unit.spec.js b/frontend/src/metabase/query_builder/components/GuiQueryEditor.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/query_builder/components/GuiQueryEditor.unit.spec.js
rename to frontend/src/metabase/query_builder/components/GuiQueryEditor.unit.spec.js
diff --git a/frontend/test/metabase/query_builder/components/VisibilityToggler.unit.spec.js b/frontend/src/metabase/query_builder/components/NativeQueryEditor/VisibilityToggler/VisibilityToggler.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/query_builder/components/VisibilityToggler.unit.spec.js
rename to frontend/src/metabase/query_builder/components/NativeQueryEditor/VisibilityToggler/VisibilityToggler.unit.spec.js
diff --git a/frontend/test/metabase/query_builder/components/QuestionActivityTimeline.unit.spec.js b/frontend/src/metabase/query_builder/components/QuestionActivityTimeline.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/query_builder/components/QuestionActivityTimeline.unit.spec.js
rename to frontend/src/metabase/query_builder/components/QuestionActivityTimeline.unit.spec.js
diff --git a/frontend/test/metabase/query_builder/components/VisualizationError.unit.spec.js b/frontend/src/metabase/query_builder/components/VisualizationError.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/query_builder/components/VisualizationError.unit.spec.js
rename to frontend/src/metabase/query_builder/components/VisualizationError.unit.spec.js
diff --git a/frontend/test/metabase/components/Warnings.unit.spec.js b/frontend/src/metabase/query_builder/components/Warnings.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/components/Warnings.unit.spec.js
rename to frontend/src/metabase/query_builder/components/Warnings.unit.spec.js
diff --git a/frontend/test/metabase/query_builder/components/filters/pickers/DatePicker.unit.spec.js b/frontend/src/metabase/query_builder/components/filters/pickers/DatePicker/DatePicker.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/query_builder/components/filters/pickers/DatePicker.unit.spec.js
rename to frontend/src/metabase/query_builder/components/filters/pickers/DatePicker/DatePicker.unit.spec.js
diff --git a/frontend/test/metabase/query_builder/components/filters/DateOperatorHeader.unit.spec.js b/frontend/src/metabase/query_builder/components/filters/pickers/DatePicker/DatePickerHeader.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/query_builder/components/filters/DateOperatorHeader.unit.spec.js
rename to frontend/src/metabase/query_builder/components/filters/pickers/DatePicker/DatePickerHeader.unit.spec.js
diff --git a/frontend/test/metabase/query_builder/components/filters/pickers/NumberPicker.unit.spec.js b/frontend/src/metabase/query_builder/components/filters/pickers/NumberPicker.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/query_builder/components/filters/pickers/NumberPicker.unit.spec.js
rename to frontend/src/metabase/query_builder/components/filters/pickers/NumberPicker.unit.spec.js
diff --git a/frontend/test/metabase/query_builder/components/filters/pickers/TextPicker.unit.spec.js b/frontend/src/metabase/query_builder/components/filters/pickers/TextPicker.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/query_builder/components/filters/pickers/TextPicker.unit.spec.js
rename to frontend/src/metabase/query_builder/components/filters/pickers/TextPicker.unit.spec.js
diff --git a/frontend/test/metabase/query_builder/components/notebook/lib/steps.unit.spec.js b/frontend/src/metabase/query_builder/components/notebook/lib/steps.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/query_builder/components/notebook/lib/steps.unit.spec.js
rename to frontend/src/metabase/query_builder/components/notebook/lib/steps.unit.spec.js
diff --git a/frontend/test/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.unit.spec.js b/frontend/src/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.unit.spec.js
rename to frontend/src/metabase/query_builder/components/view/sidebars/ChartSettingsSidebar.unit.spec.js
diff --git a/frontend/test/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.unit.spec.js b/frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.unit.spec.js
rename to frontend/src/metabase/query_builder/components/view/sidebars/ChartTypeSidebar.unit.spec.js
diff --git a/frontend/test/metabase/query_builder/selectors.unit.spec.js b/frontend/src/metabase/query_builder/selectors.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/query_builder/selectors.unit.spec.js
rename to frontend/src/metabase/query_builder/selectors.unit.spec.js
diff --git a/frontend/test/metabase/reference/utils.unit.spec.js b/frontend/src/metabase/reference/utils.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/reference/utils.unit.spec.js
rename to frontend/src/metabase/reference/utils.unit.spec.js
diff --git a/frontend/test/metabase/selectors/metadata.unit.spec.js b/frontend/src/metabase/selectors/metadata.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/selectors/metadata.unit.spec.js
rename to frontend/src/metabase/selectors/metadata.unit.spec.js
diff --git a/frontend/test/metabase/visualizations/components/ChartSettings.unit.spec.js b/frontend/src/metabase/visualizations/components/ChartSettings.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/visualizations/components/ChartSettings.unit.spec.js
rename to frontend/src/metabase/visualizations/components/ChartSettings.unit.spec.js
diff --git a/frontend/test/metabase/visualizations/components/ChartSettingsWidgetPopover.unit.spec.jsx b/frontend/src/metabase/visualizations/components/ChartSettingsWidgetPopover.unit.spec.jsx
similarity index 100%
rename from frontend/test/metabase/visualizations/components/ChartSettingsWidgetPopover.unit.spec.jsx
rename to frontend/src/metabase/visualizations/components/ChartSettingsWidgetPopover.unit.spec.jsx
diff --git a/frontend/test/metabase/visualizations/components/ChoroplethMap.unit.spec.js b/frontend/src/metabase/visualizations/components/ChoroplethMap.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/visualizations/components/ChoroplethMap.unit.spec.js
rename to frontend/src/metabase/visualizations/components/ChoroplethMap.unit.spec.js
diff --git a/frontend/test/metabase/visualizations/components/LegendVertical.unit.spec.js b/frontend/src/metabase/visualizations/components/LegendVertical.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/visualizations/components/LegendVertical.unit.spec.js
rename to frontend/src/metabase/visualizations/components/LegendVertical.unit.spec.js
diff --git a/frontend/test/metabase/visualizations/components/LineAreaBarChart.unit.spec.js b/frontend/src/metabase/visualizations/components/LineAreaBarChart.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/visualizations/components/LineAreaBarChart.unit.spec.js
rename to frontend/src/metabase/visualizations/components/LineAreaBarChart.unit.spec.js
diff --git a/frontend/test/metabase/visualizations/components/PinMap.unit.spec.js b/frontend/src/metabase/visualizations/components/PinMap.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/visualizations/components/PinMap.unit.spec.js
rename to frontend/src/metabase/visualizations/components/PinMap.unit.spec.js
diff --git a/frontend/test/metabase/visualizations/components/Visualization-pie.unit.spec.js b/frontend/src/metabase/visualizations/components/Visualization/Visualization-pie.unit.spec.js
similarity index 98%
rename from frontend/test/metabase/visualizations/components/Visualization-pie.unit.spec.js
rename to frontend/src/metabase/visualizations/components/Visualization/Visualization-pie.unit.spec.js
index 4cb739e99a7173ec3edd1c03d91de1ea524802c2..5d0a94bb1001a8576cc548ff81611515a7b48d75 100644
--- a/frontend/test/metabase/visualizations/components/Visualization-pie.unit.spec.js
+++ b/frontend/src/metabase/visualizations/components/Visualization/Visualization-pie.unit.spec.js
@@ -2,7 +2,7 @@ import React from "react";
 import { fireEvent, renderWithProviders, screen } from "__support__/ui";
 
 import Visualization from "metabase/visualizations/components/Visualization";
-import { NumberColumn, StringColumn } from "../__support__/visualizations";
+import { NumberColumn, StringColumn } from "__support__/visualizations";
 
 const series = rows => {
   const cols = [
diff --git a/frontend/test/metabase/visualizations/components/Visualization-table.unit.spec.js b/frontend/src/metabase/visualizations/components/Visualization/Visualization-table.unit.spec.js
similarity index 95%
rename from frontend/test/metabase/visualizations/components/Visualization-table.unit.spec.js
rename to frontend/src/metabase/visualizations/components/Visualization/Visualization-table.unit.spec.js
index dd0170c6c65c910c402ddaf2e9a67b40c9ecef8a..a3e53254a74babe4cc32ea74d18c63be706bea75 100644
--- a/frontend/test/metabase/visualizations/components/Visualization-table.unit.spec.js
+++ b/frontend/src/metabase/visualizations/components/Visualization/Visualization-table.unit.spec.js
@@ -2,7 +2,7 @@ import React from "react";
 import { renderWithProviders, screen } from "__support__/ui";
 
 import Visualization from "metabase/visualizations/components/Visualization";
-import { NumberColumn } from "../__support__/visualizations";
+import { NumberColumn } from "__support__/visualizations";
 
 const series = (rows, settings = {}) => {
   const cols = [NumberColumn({ name: "Foo" })];
diff --git a/frontend/test/metabase/visualizations/components/Visualization.unit.spec.js b/frontend/src/metabase/visualizations/components/Visualization/Visualization.unit.spec.js
similarity index 98%
rename from frontend/test/metabase/visualizations/components/Visualization.unit.spec.js
rename to frontend/src/metabase/visualizations/components/Visualization/Visualization.unit.spec.js
index 7e9fdb9c8129093632b4ae7eaddb6d3159b21430..eefe4c8c313f038cf43124fc67c5a96c60d09338 100644
--- a/frontend/test/metabase/visualizations/components/Visualization.unit.spec.js
+++ b/frontend/src/metabase/visualizations/components/Visualization/Visualization.unit.spec.js
@@ -5,7 +5,7 @@ import { delay } from "metabase/lib/promise";
 
 import { color } from "metabase/lib/colors";
 import Visualization from "metabase/visualizations/components/Visualization";
-import { NumberColumn, StringColumn } from "../__support__/visualizations";
+import { NumberColumn, StringColumn } from "__support__/visualizations";
 
 describe("Visualization", () => {
   const renderViz = async series => {
diff --git a/frontend/test/metabase/visualizations/components/settings/ChartNestedSettingsSeriesMultiple.unit.spec.js b/frontend/src/metabase/visualizations/components/settings/ChartNestedSettingsSeriesMultiple.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/visualizations/components/settings/ChartNestedSettingsSeriesMultiple.unit.spec.js
rename to frontend/src/metabase/visualizations/components/settings/ChartNestedSettingsSeriesMultiple.unit.spec.js
diff --git a/frontend/test/metabase/visualizations/components/settings/ChartSettingFieldPicker.unit.spec.js b/frontend/src/metabase/visualizations/components/settings/ChartSettingFieldPicker.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/visualizations/components/settings/ChartSettingFieldPicker.unit.spec.js
rename to frontend/src/metabase/visualizations/components/settings/ChartSettingFieldPicker.unit.spec.js
diff --git a/frontend/test/metabase/visualizations/components/settings/ChartSettingFieldsPicker.unit.spec.js b/frontend/src/metabase/visualizations/components/settings/ChartSettingFieldsPicker.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/visualizations/components/settings/ChartSettingFieldsPicker.unit.spec.js
rename to frontend/src/metabase/visualizations/components/settings/ChartSettingFieldsPicker.unit.spec.js
diff --git a/frontend/test/metabase/visualizations/components/settings/ChartSettingOrderedColumns.unit.spec.js b/frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/visualizations/components/settings/ChartSettingOrderedColumns.unit.spec.js
rename to frontend/src/metabase/visualizations/components/settings/ChartSettingOrderedColumns.unit.spec.js
diff --git a/frontend/test/metabase/visualizations/components/settings/ChartSettingStacked.unit.spec.js b/frontend/src/metabase/visualizations/components/settings/ChartSettingStacked.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/visualizations/components/settings/ChartSettingStacked.unit.spec.js
rename to frontend/src/metabase/visualizations/components/settings/ChartSettingStacked.unit.spec.js
diff --git a/frontend/test/metabase/visualizations/components/LineAreaBarRenderer-bar.unit.spec.js b/frontend/src/metabase/visualizations/lib/LineAreaBarRenderer-bar.unit.spec.js
similarity index 99%
rename from frontend/test/metabase/visualizations/components/LineAreaBarRenderer-bar.unit.spec.js
rename to frontend/src/metabase/visualizations/lib/LineAreaBarRenderer-bar.unit.spec.js
index fa3dbb2126ce4ecfa7e67a19efd29c747d15a739..aeeb07d7ad33ec20dbd54e8842f3a4cda0220b75 100644
--- a/frontend/test/metabase/visualizations/components/LineAreaBarRenderer-bar.unit.spec.js
+++ b/frontend/src/metabase/visualizations/lib/LineAreaBarRenderer-bar.unit.spec.js
@@ -7,7 +7,7 @@ import {
   renderLineAreaBar,
   createFixture,
   cleanupFixture,
-} from "../__support__/visualizations";
+} from "__support__/visualizations";
 
 const DEFAULT_SETTINGS = {
   "graph.x_axis.scale": "ordinal",
diff --git a/frontend/test/metabase/visualizations/components/LineAreaBarRenderer-scatter.unit.spec.js b/frontend/src/metabase/visualizations/lib/LineAreaBarRenderer-scatter.unit.spec.js
similarity index 98%
rename from frontend/test/metabase/visualizations/components/LineAreaBarRenderer-scatter.unit.spec.js
rename to frontend/src/metabase/visualizations/lib/LineAreaBarRenderer-scatter.unit.spec.js
index 1c9ea09c99e8f4b83240d1e87f6c6094f07202dd..49601911747c7e6c2981bf5c1382a13e6f412582 100644
--- a/frontend/test/metabase/visualizations/components/LineAreaBarRenderer-scatter.unit.spec.js
+++ b/frontend/src/metabase/visualizations/lib/LineAreaBarRenderer-scatter.unit.spec.js
@@ -7,7 +7,7 @@ import {
   getFormattedTooltips,
   createFixture,
   cleanupFixture,
-} from "../__support__/visualizations";
+} from "__support__/visualizations";
 
 const DEFAULT_SETTINGS = {
   "graph.x_axis.scale": "linear",
diff --git a/frontend/test/metabase/visualizations/components/LineAreaBarRenderer-waterfall.unit.spec.js b/frontend/src/metabase/visualizations/lib/LineAreaBarRenderer-waterfall.unit.spec.js
similarity index 99%
rename from frontend/test/metabase/visualizations/components/LineAreaBarRenderer-waterfall.unit.spec.js
rename to frontend/src/metabase/visualizations/lib/LineAreaBarRenderer-waterfall.unit.spec.js
index d6575749796e642d8b9af24af17fe4f982b88840..c519e69b0ea97ac11558631a012b2b089cba0f94 100644
--- a/frontend/test/metabase/visualizations/components/LineAreaBarRenderer-waterfall.unit.spec.js
+++ b/frontend/src/metabase/visualizations/lib/LineAreaBarRenderer-waterfall.unit.spec.js
@@ -7,7 +7,7 @@ import {
   renderLineAreaBar,
   createFixture,
   cleanupFixture,
-} from "../__support__/visualizations";
+} from "__support__/visualizations";
 
 const DEFAULT_SETTINGS = {
   "graph.x_axis.scale": "ordinal",
diff --git a/frontend/test/metabase/visualizations/components/LineAreaBarRenderer.tz.unit.spec.js b/frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.tz.unit.spec.js
similarity index 99%
rename from frontend/test/metabase/visualizations/components/LineAreaBarRenderer.tz.unit.spec.js
rename to frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.tz.unit.spec.js
index 08029118a816b5360ca2596c25b156170fcac3f6..d007fa19338ecdbbf72002dc877b6e886e64352b 100644
--- a/frontend/test/metabase/visualizations/components/LineAreaBarRenderer.tz.unit.spec.js
+++ b/frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.tz.unit.spec.js
@@ -10,7 +10,7 @@ import {
   dispatchUIEvent,
   renderLineAreaBar,
   getFormattedTooltips,
-} from "../__support__/visualizations";
+} from "__support__/visualizations";
 
 // make WIDTH big enough that ticks aren't skipped
 const WIDTH = 4000;
diff --git a/frontend/test/metabase/visualizations/components/LineAreaBarRenderer.unit.spec.js b/frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.unit.spec.js
similarity index 99%
rename from frontend/test/metabase/visualizations/components/LineAreaBarRenderer.unit.spec.js
rename to frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.unit.spec.js
index f0c93bece4b4d51a9becc9c4c62e100b999250ac..e9ee9f86ddb75e526f2f1297db9ec89ebebcd9ad 100644
--- a/frontend/test/metabase/visualizations/components/LineAreaBarRenderer.unit.spec.js
+++ b/frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.unit.spec.js
@@ -11,7 +11,7 @@ import {
   dispatchUIEvent,
   renderLineAreaBar,
   getFormattedTooltips,
-} from "../__support__/visualizations";
+} from "__support__/visualizations";
 
 // jsdom doesn't support layout methods like getBBox, so we need to mock it.
 window.SVGElement.prototype.getBBox = () => ({
diff --git a/frontend/test/metabase/visualizations/lib/apply_axis.unit.spec.js b/frontend/src/metabase/visualizations/lib/apply_axis.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/visualizations/lib/apply_axis.unit.spec.js
rename to frontend/src/metabase/visualizations/lib/apply_axis.unit.spec.js
diff --git a/frontend/test/metabase/visualizations/lib/apply_tooltips.unit.spec.js b/frontend/src/metabase/visualizations/lib/apply_tooltips.unit.spec.js
similarity index 99%
rename from frontend/test/metabase/visualizations/lib/apply_tooltips.unit.spec.js
rename to frontend/src/metabase/visualizations/lib/apply_tooltips.unit.spec.js
index 09dc3247515a0b96e97b1144660f65231d468043..13fd04163d62856e1a6b84576c41ac3ddbfce4a7 100644
--- a/frontend/test/metabase/visualizations/lib/apply_tooltips.unit.spec.js
+++ b/frontend/src/metabase/visualizations/lib/apply_tooltips.unit.spec.js
@@ -12,7 +12,7 @@ import {
   DateTimeColumn,
   StringColumn,
   NumberColumn,
-} from "../__support__/visualizations";
+} from "__support__/visualizations";
 
 describe("getClickHoverObject", () => {
   it("should return data for tooltip", () => {
diff --git a/frontend/test/metabase/visualizations/lib/errors.unit.spec.js b/frontend/src/metabase/visualizations/lib/errors.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/visualizations/lib/errors.unit.spec.js
rename to frontend/src/metabase/visualizations/lib/errors.unit.spec.js
diff --git a/frontend/test/metabase/visualizations/lib/fill_data.tz.unit.spec.js b/frontend/src/metabase/visualizations/lib/fill_data.tz.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/visualizations/lib/fill_data.tz.unit.spec.js
rename to frontend/src/metabase/visualizations/lib/fill_data.tz.unit.spec.js
diff --git a/frontend/test/metabase/visualizations/lib/fill_data.unit.spec.js b/frontend/src/metabase/visualizations/lib/fill_data.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/visualizations/lib/fill_data.unit.spec.js
rename to frontend/src/metabase/visualizations/lib/fill_data.unit.spec.js
diff --git a/frontend/test/metabase/visualizations/lib/numeric.unit.spec.js b/frontend/src/metabase/visualizations/lib/numeric.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/visualizations/lib/numeric.unit.spec.js
rename to frontend/src/metabase/visualizations/lib/numeric.unit.spec.js
diff --git a/frontend/test/metabase/visualizations/lib/renderer_utils.unit.spec.js b/frontend/src/metabase/visualizations/lib/renderer_utils.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/visualizations/lib/renderer_utils.unit.spec.js
rename to frontend/src/metabase/visualizations/lib/renderer_utils.unit.spec.js
diff --git a/frontend/test/metabase/visualizations/lib/settings.unit.spec.js b/frontend/src/metabase/visualizations/lib/settings.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/visualizations/lib/settings.unit.spec.js
rename to frontend/src/metabase/visualizations/lib/settings.unit.spec.js
diff --git a/frontend/test/metabase/visualizations/lib/settings/column.unit.spec.js b/frontend/src/metabase/visualizations/lib/settings/column.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/visualizations/lib/settings/column.unit.spec.js
rename to frontend/src/metabase/visualizations/lib/settings/column.unit.spec.js
diff --git a/frontend/test/metabase/visualizations/lib/settings/nested.unit.spec.js b/frontend/src/metabase/visualizations/lib/settings/nested.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/visualizations/lib/settings/nested.unit.spec.js
rename to frontend/src/metabase/visualizations/lib/settings/nested.unit.spec.js
diff --git a/frontend/test/metabase/visualizations/lib/settings/visualization.unit.spec.js b/frontend/src/metabase/visualizations/lib/settings/visualization.unit.spec.js
similarity index 98%
rename from frontend/test/metabase/visualizations/lib/settings/visualization.unit.spec.js
rename to frontend/src/metabase/visualizations/lib/settings/visualization.unit.spec.js
index e801b7d1438eeeb5f774a3affee5ccd418f093a7..4ceb03d7600c497786983350d4f5b98223e37114 100644
--- a/frontend/test/metabase/visualizations/lib/settings/visualization.unit.spec.js
+++ b/frontend/src/metabase/visualizations/lib/settings/visualization.unit.spec.js
@@ -6,7 +6,7 @@ import {
   getStoredSettingsForSeries,
 } from "metabase/visualizations/lib/settings/visualization";
 
-import { DateTimeColumn, NumberColumn } from "../../__support__/visualizations";
+import { DateTimeColumn, NumberColumn } from "__support__/visualizations";
 
 describe("visualization_settings", () => {
   describe("getComputedSettingsForSeries", () => {
diff --git a/frontend/test/metabase/visualizations/lib/table.unit.spec.js b/frontend/src/metabase/visualizations/lib/table.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/visualizations/lib/table.unit.spec.js
rename to frontend/src/metabase/visualizations/lib/table.unit.spec.js
diff --git a/frontend/test/metabase/visualizations/lib/table_format.unit.spec.js b/frontend/src/metabase/visualizations/lib/table_format.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/visualizations/lib/table_format.unit.spec.js
rename to frontend/src/metabase/visualizations/lib/table_format.unit.spec.js
diff --git a/frontend/test/metabase/visualizations/lib/timeseries.tz.unit.spec.js b/frontend/src/metabase/visualizations/lib/timeseries.tz.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/visualizations/lib/timeseries.tz.unit.spec.js
rename to frontend/src/metabase/visualizations/lib/timeseries.tz.unit.spec.js
diff --git a/frontend/test/metabase/visualizations/lib/timeseries.unit.spec.js b/frontend/src/metabase/visualizations/lib/timeseries.unit.spec.js
similarity index 99%
rename from frontend/test/metabase/visualizations/lib/timeseries.unit.spec.js
rename to frontend/src/metabase/visualizations/lib/timeseries.unit.spec.js
index 52b59ae10306094e48a86509b45268e834c3e5b0..2dd14a9b54c6905fc9d217a4ae1ff3259842a842 100644
--- a/frontend/test/metabase/visualizations/lib/timeseries.unit.spec.js
+++ b/frontend/src/metabase/visualizations/lib/timeseries.unit.spec.js
@@ -6,8 +6,8 @@ import {
 } from "metabase/visualizations/lib/timeseries";
 import { getVisualizationTransformed } from "metabase/visualizations";
 
+import { StringColumn, NumberColumn } from "__support__/visualizations";
 import { TYPE } from "metabase-lib/types/constants";
-import { StringColumn, NumberColumn } from "../__support__/visualizations";
 
 describe("visualization.lib.timeseries", () => {
   describe("dimensionIsTimeseries", () => {
diff --git a/frontend/test/metabase/visualizations/lib/timeseriesScale.unit.spec.js b/frontend/src/metabase/visualizations/lib/timeseriesScale.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/visualizations/lib/timeseriesScale.unit.spec.js
rename to frontend/src/metabase/visualizations/lib/timeseriesScale.unit.spec.js
diff --git a/frontend/test/metabase/visualizations/lib/utils.unit.spec.js b/frontend/src/metabase/visualizations/lib/utils.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/visualizations/lib/utils.unit.spec.js
rename to frontend/src/metabase/visualizations/lib/utils.unit.spec.js
diff --git a/frontend/test/metabase/visualizations/visualizations/PieChart.unit.spec.js b/frontend/src/metabase/visualizations/visualizations/PieChart.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/visualizations/visualizations/PieChart.unit.spec.js
rename to frontend/src/metabase/visualizations/visualizations/PieChart.unit.spec.js
diff --git a/frontend/test/metabase/visualizations/visualizations/PivotTable.unit.spec.js b/frontend/src/metabase/visualizations/visualizations/PivotTable/PivotTable.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/visualizations/visualizations/PivotTable.unit.spec.js
rename to frontend/src/metabase/visualizations/visualizations/PivotTable/PivotTable.unit.spec.js
diff --git a/frontend/test/metabase/visualizations/visualizations/Scalar.unit.spec.js b/frontend/src/metabase/visualizations/visualizations/Scalar.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/visualizations/visualizations/Scalar.unit.spec.js
rename to frontend/src/metabase/visualizations/visualizations/Scalar.unit.spec.js
diff --git a/frontend/test/metabase/visualizations/components/SmartScalar.unit.spec.js b/frontend/src/metabase/visualizations/visualizations/SmartScalar.unit.spec.js
similarity index 97%
rename from frontend/test/metabase/visualizations/components/SmartScalar.unit.spec.js
rename to frontend/src/metabase/visualizations/visualizations/SmartScalar.unit.spec.js
index ad0ab216f49846126113a8c917dc6083ee23ebe5..2c5744a9cfb3458fe00a5f512fbf06e909152540 100644
--- a/frontend/test/metabase/visualizations/components/SmartScalar.unit.spec.js
+++ b/frontend/src/metabase/visualizations/visualizations/SmartScalar.unit.spec.js
@@ -3,7 +3,7 @@ import { renderWithProviders, screen } from "__support__/ui";
 
 import Visualization from "metabase/visualizations/components/Visualization";
 import { getSettingsWidgetsForSeries } from "metabase/visualizations/lib/settings/visualization";
-import { NumberColumn, DateTimeColumn } from "../__support__/visualizations";
+import { NumberColumn, DateTimeColumn } from "__support__/visualizations";
 
 const setup = series =>
   renderWithProviders(<Visualization rawSeries={series} />);
diff --git a/frontend/test/metabase/visualizations/visualizations/Table.unit.spec.js b/frontend/src/metabase/visualizations/visualizations/Table.unit.spec.js
similarity index 100%
rename from frontend/test/metabase/visualizations/visualizations/Table.unit.spec.js
rename to frontend/src/metabase/visualizations/visualizations/Table.unit.spec.js
diff --git a/frontend/test/metabase/visualizations/__support__/visualizations.js b/frontend/test/__support__/visualizations.js
similarity index 100%
rename from frontend/test/metabase/visualizations/__support__/visualizations.js
rename to frontend/test/__support__/visualizations.js
diff --git a/jest.tz.unit.conf.json b/jest.tz.unit.conf.json
index 033f2e9a685b94b4a9b1f7be53f02cb8a1ce8632..e9c32d2a184e6534e7b1ae194b1ba9a29b957065 100644
--- a/jest.tz.unit.conf.json
+++ b/jest.tz.unit.conf.json
@@ -9,7 +9,7 @@
   "transformIgnorePatterns": [
     "<rootDir>/node_modules/(?!rehype-external-links/)"
   ],
-  "testMatch": ["<rootDir>/frontend/test/**/*.tz.unit.spec.{js,ts,jsx,tsx}"],
+  "testMatch": ["<rootDir>/frontend/**/*.tz.unit.spec.{js,ts,jsx,tsx}"],
   "modulePaths": ["<rootDir>/frontend/test", "<rootDir>/frontend/src"],
   "setupFiles": [
     "<rootDir>/frontend/test/jest-setup.js",
diff --git a/jest.unit.conf.json b/jest.unit.conf.json
index 73b1f24cc2477bbfebc18e1b61022db1cd93162a..c09d825d7d56aa6dff11510eeaded888cc7dc3a5 100644
--- a/jest.unit.conf.json
+++ b/jest.unit.conf.json
@@ -11,7 +11,7 @@
     "<rootDir>/node_modules/(?!rehype-external-links/)"
   ],
   "testPathIgnorePatterns": [
-    "<rootDir>/frontend/test/.*/.*.tz.unit.spec.{js,jsx,ts,tsx}"
+    "<rootDir>/frontend/.*/.*.tz.unit.spec.{js,jsx,ts,tsx}"
   ],
   "testMatch": [
     "<rootDir>/**/*.unit.spec.js",