From b2de74960093aad3721c1c332afa82262fcb3bee Mon Sep 17 00:00:00 2001
From: Anton Kulyk <kuliks.anton@gmail.com>
Date: Tue, 10 Jan 2023 22:35:05 +0000
Subject: [PATCH] Move `loadMetadataForCard` to questions module (#27608)

---
 .../audit_app/pages/AuditQueryDetail.jsx               |  2 +-
 .../src/metabase/containers/AdHocQuestionLoader.jsx    |  2 +-
 .../src/metabase/containers/SavedQuestionLoader.jsx    |  2 +-
 .../src/metabase/query_builder/actions/core/core.js    |  2 +-
 .../src/metabase/query_builder/actions/core/index.ts   |  1 -
 .../query_builder/actions/core/initializeQB.ts         |  2 +-
 .../actions/core/initializeQB.unit.spec.ts             |  6 +++---
 .../query_builder/actions/core/updateQuestion.ts       |  4 ++--
 .../actions/core/updateQuestion.unit.spec.ts           | 10 +++++-----
 .../actions/core/metadata.ts => questions/actions.ts}  |  5 +++--
 10 files changed, 18 insertions(+), 18 deletions(-)
 rename frontend/src/metabase/{query_builder/actions/core/metadata.ts => questions/actions.ts} (85%)

diff --git a/enterprise/frontend/src/metabase-enterprise/audit_app/pages/AuditQueryDetail.jsx b/enterprise/frontend/src/metabase-enterprise/audit_app/pages/AuditQueryDetail.jsx
index 979a8df3cb8..8013db2f4e2 100644
--- a/enterprise/frontend/src/metabase-enterprise/audit_app/pages/AuditQueryDetail.jsx
+++ b/enterprise/frontend/src/metabase-enterprise/audit_app/pages/AuditQueryDetail.jsx
@@ -54,7 +54,7 @@ const AuditQueryDetail = ({ params: { queryHash } }) => (
 import { getMetadata } from "metabase/selectors/metadata";
 
 import ExplicitSize from "metabase/components/ExplicitSize";
-import { loadMetadataForCard } from "metabase/query_builder/actions";
+import { loadMetadataForCard } from "metabase/questions/actions";
 import NativeQuery from "metabase-lib/queries/NativeQuery";
 import Question from "metabase-lib/Question";
 import * as QueryDetailCards from "../lib/cards/query_detail";
diff --git a/frontend/src/metabase/containers/AdHocQuestionLoader.jsx b/frontend/src/metabase/containers/AdHocQuestionLoader.jsx
index 2e03925ce9e..feb72fc05e1 100644
--- a/frontend/src/metabase/containers/AdHocQuestionLoader.jsx
+++ b/frontend/src/metabase/containers/AdHocQuestionLoader.jsx
@@ -4,7 +4,7 @@ import { connect } from "react-redux";
 
 // things that will eventually load the quetsion
 import { deserializeCardFromUrl } from "metabase/lib/card";
-import { loadMetadataForCard } from "metabase/query_builder/actions";
+import { loadMetadataForCard } from "metabase/questions/actions";
 import { getMetadata } from "metabase/selectors/metadata";
 
 import Question from "metabase-lib/Question";
diff --git a/frontend/src/metabase/containers/SavedQuestionLoader.jsx b/frontend/src/metabase/containers/SavedQuestionLoader.jsx
index 60202eb7c15..1dc0b04c6c1 100644
--- a/frontend/src/metabase/containers/SavedQuestionLoader.jsx
+++ b/frontend/src/metabase/containers/SavedQuestionLoader.jsx
@@ -2,7 +2,7 @@
 import React from "react";
 import { connect } from "react-redux";
 
-import { loadMetadataForCard } from "metabase/query_builder/actions";
+import { loadMetadataForCard } from "metabase/questions/actions";
 import { getMetadata } from "metabase/selectors/metadata";
 
 import Questions from "metabase/entities/questions";
diff --git a/frontend/src/metabase/query_builder/actions/core/core.js b/frontend/src/metabase/query_builder/actions/core/core.js
index cd4d8351fd8..3e4617dc4f8 100644
--- a/frontend/src/metabase/query_builder/actions/core/core.js
+++ b/frontend/src/metabase/query_builder/actions/core/core.js
@@ -8,6 +8,7 @@ import * as Urls from "metabase/lib/urls";
 import Utils from "metabase/lib/utils";
 import { createThunkAction } from "metabase/lib/redux";
 
+import { loadMetadataForCard } from "metabase/questions/actions";
 import { getCardAfterVisualizationClick } from "metabase/visualizations/lib/utils";
 
 import { openUrl } from "metabase/redux/app";
@@ -39,7 +40,6 @@ import { clearQueryResult, runQuestionQuery } from "../querying";
 import { onCloseSidebars } from "../ui";
 
 import { updateQuestion } from "./updateQuestion";
-import { loadMetadataForCard } from "./metadata";
 import { getQuestionWithDefaultVisualizationSettings } from "./utils";
 
 export const RESET_QB = "metabase/qb/RESET_QB";
diff --git a/frontend/src/metabase/query_builder/actions/core/index.ts b/frontend/src/metabase/query_builder/actions/core/index.ts
index 2c5127fdd6a..b10207d44dc 100644
--- a/frontend/src/metabase/query_builder/actions/core/index.ts
+++ b/frontend/src/metabase/query_builder/actions/core/index.ts
@@ -1,4 +1,3 @@
 export * from "./core";
 export * from "./initializeQB";
-export * from "./metadata";
 export * from "./updateQuestion";
diff --git a/frontend/src/metabase/query_builder/actions/core/initializeQB.ts b/frontend/src/metabase/query_builder/actions/core/initializeQB.ts
index 41c7271d2c8..e973a5df784 100644
--- a/frontend/src/metabase/query_builder/actions/core/initializeQB.ts
+++ b/frontend/src/metabase/query_builder/actions/core/initializeQB.ts
@@ -11,6 +11,7 @@ import { getUser } from "metabase/selectors/user";
 
 import Snippets from "metabase/entities/snippets";
 import Questions from "metabase/entities/questions";
+import { loadMetadataForCard } from "metabase/questions/actions";
 import { fetchAlertsForQuestion } from "metabase/alert/alert";
 
 import {
@@ -34,7 +35,6 @@ import { updateUrl } from "../navigation";
 import { cancelQuery, runQuestionQuery } from "../querying";
 
 import { resetQB } from "./core";
-import { loadMetadataForCard } from "./metadata";
 import {
   propagateDashboardParameters,
   getParameterValuesForQuestion,
diff --git a/frontend/src/metabase/query_builder/actions/core/initializeQB.unit.spec.ts b/frontend/src/metabase/query_builder/actions/core/initializeQB.unit.spec.ts
index f3509fa7682..2361404e1d2 100644
--- a/frontend/src/metabase/query_builder/actions/core/initializeQB.unit.spec.ts
+++ b/frontend/src/metabase/query_builder/actions/core/initializeQB.unit.spec.ts
@@ -5,6 +5,7 @@ import * as CardLib from "metabase/lib/card";
 import * as Urls from "metabase/lib/urls";
 
 import * as alert from "metabase/alert/alert";
+import * as questionActions from "metabase/questions/actions";
 import Databases from "metabase/entities/databases";
 import Snippets from "metabase/entities/snippets";
 import { setErrorPage } from "metabase/redux/app";
@@ -36,7 +37,6 @@ import Question from "metabase-lib/Question";
 import * as querying from "../querying";
 
 import * as core from "./core";
-import * as metadataActions from "./metadata";
 import { initializeQB } from "./initializeQB";
 
 type BaseSetupOpts = {
@@ -228,7 +228,7 @@ describe("QB Actions > initializeQB", () => {
 
         it("fetches question metadata", async () => {
           const loadMetadataForCardSpy = jest.spyOn(
-            metadataActions,
+            questionActions,
             "loadMetadataForCard",
           );
 
@@ -772,7 +772,7 @@ describe("QB Actions > initializeQB", () => {
 
     it("fetches question metadata", async () => {
       const loadMetadataForCardSpy = jest.spyOn(
-        metadataActions,
+        questionActions,
         "loadMetadataForCard",
       );
 
diff --git a/frontend/src/metabase/query_builder/actions/core/updateQuestion.ts b/frontend/src/metabase/query_builder/actions/core/updateQuestion.ts
index d866798de6c..e4da1bf91c1 100644
--- a/frontend/src/metabase/query_builder/actions/core/updateQuestion.ts
+++ b/frontend/src/metabase/query_builder/actions/core/updateQuestion.ts
@@ -1,6 +1,8 @@
 import _ from "underscore";
 import { assocIn } from "icepick";
 
+import { loadMetadataForCard } from "metabase/questions/actions";
+
 import { Dataset } from "metabase-types/api";
 import { Series } from "metabase-types/types/Visualization";
 import { Dispatch, GetState, QueryBuilderMode } from "metabase-types/store";
@@ -12,7 +14,6 @@ import Question from "metabase-lib/Question";
 import NativeQuery from "metabase-lib/queries/NativeQuery";
 import StructuredQuery from "metabase-lib/queries/StructuredQuery";
 
-import { isSupportedTemplateTagForModel } from "metabase-lib/metadata/utils/models";
 import {
   getFirstQueryResult,
   getIsShowingTemplateTagsEditor,
@@ -26,7 +27,6 @@ import { setIsShowingTemplateTagsEditor } from "../native";
 import { runQuestionQuery } from "../querying";
 import { onCloseQuestionInfo, setQueryBuilderMode } from "../ui";
 
-import { loadMetadataForCard } from "./metadata";
 import { getQuestionWithDefaultVisualizationSettings } from "./utils";
 
 function hasNewColumns(question: Question, queryResult: Dataset) {
diff --git a/frontend/src/metabase/query_builder/actions/core/updateQuestion.unit.spec.ts b/frontend/src/metabase/query_builder/actions/core/updateQuestion.unit.spec.ts
index b2ca09e52d8..76c30c72d41 100644
--- a/frontend/src/metabase/query_builder/actions/core/updateQuestion.unit.spec.ts
+++ b/frontend/src/metabase/query_builder/actions/core/updateQuestion.unit.spec.ts
@@ -1,3 +1,4 @@
+import * as questionActions from "metabase/questions/actions";
 import { createMockDataset } from "metabase-types/api/mocks";
 import { Card, StructuredDatasetQuery } from "metabase-types/types/Card";
 import { ConcreteField, TemplateTag } from "metabase-types/types/Query";
@@ -34,7 +35,6 @@ import * as native from "../native";
 import * as querying from "../querying";
 import * as ui from "../ui";
 
-import * as metadataActions from "./metadata";
 import { updateQuestion, UPDATE_QUESTION } from "./updateQuestion";
 
 type SetupOpts = {
@@ -451,7 +451,7 @@ describe("QB Actions > updateQuestion", () => {
       describe(questionType, () => {
         it("loads metadata for the model", async () => {
           const loadMetadataSpy = jest.spyOn(
-            metadataActions,
+            questionActions,
             "loadMetadataForCard",
           );
 
@@ -461,7 +461,7 @@ describe("QB Actions > updateQuestion", () => {
 
         it("refreshes question metadata if there's difference in dependent metadata", async () => {
           const loadMetadataSpy = jest.spyOn(
-            metadataActions,
+            questionActions,
             "loadMetadataForCard",
           );
           const join = new Join(PRODUCTS_JOIN_CLAUSE);
@@ -488,7 +488,7 @@ describe("QB Actions > updateQuestion", () => {
       describe(questionType, () => {
         it("doesn't refresh question metadata if dependent metadata doesn't change", async () => {
           const loadMetadataSpy = jest.spyOn(
-            metadataActions,
+            questionActions,
             "loadMetadataForCard",
           );
 
@@ -498,7 +498,7 @@ describe("QB Actions > updateQuestion", () => {
 
         it("refreshes question metadata if there's difference in dependent metadata", async () => {
           const loadMetadataSpy = jest.spyOn(
-            metadataActions,
+            questionActions,
             "loadMetadataForCard",
           );
           const join = new Join(PRODUCTS_JOIN_CLAUSE);
diff --git a/frontend/src/metabase/query_builder/actions/core/metadata.ts b/frontend/src/metabase/questions/actions.ts
similarity index 85%
rename from frontend/src/metabase/query_builder/actions/core/metadata.ts
rename to frontend/src/metabase/questions/actions.ts
index bccee807beb..65f916e6e7b 100644
--- a/frontend/src/metabase/query_builder/actions/core/metadata.ts
+++ b/frontend/src/metabase/questions/actions.ts
@@ -3,8 +3,9 @@ import _ from "underscore";
 import { loadMetadataForQueries } from "metabase/redux/metadata";
 import { getMetadata } from "metabase/selectors/metadata";
 
-import { Card } from "metabase-types/types/Card";
-import { Dispatch, GetState } from "metabase-types/store";
+import type { Card } from "metabase-types/types/Card";
+import type { Dispatch, GetState } from "metabase-types/store";
+
 import Question from "metabase-lib/Question";
 
 export interface LoadMetadataOptions {
-- 
GitLab