From de40e5155737f5e4f7dca0dd404900450eb7ee79 Mon Sep 17 00:00:00 2001
From: Alexander Polyankin <alexander.polyankin@metabase.com>
Date: Mon, 6 Feb 2023 11:35:18 +0200
Subject: [PATCH] Fix zoom in drilldown for FKs (#28022)

---
 frontend/src/metabase-lib/queries/utils/drilldown.js        | 4 +++-
 ...7380-dashboard-drops-joined-fields-on-zoom-in.cy.spec.js | 6 +++---
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/frontend/src/metabase-lib/queries/utils/drilldown.js b/frontend/src/metabase-lib/queries/utils/drilldown.js
index 3c7fff1af20..643f8440a78 100644
--- a/frontend/src/metabase-lib/queries/utils/drilldown.js
+++ b/frontend/src/metabase-lib/queries/utils/drilldown.js
@@ -449,7 +449,9 @@ function columnToFieldDimension(column, metadata) {
     return;
   }
 
-  const dimension = new FieldDimension(column.id, null, metadata);
+  const dimension = column.field_ref
+    ? FieldDimension.parseMBQL(column.field_ref, metadata)
+    : new FieldDimension(column.id, null, metadata);
 
   if (column.unit) {
     return dimension.withTemporalUnit(column.unit);
diff --git a/frontend/test/metabase/scenarios/joins/reproductions/27380-dashboard-drops-joined-fields-on-zoom-in.cy.spec.js b/frontend/test/metabase/scenarios/joins/reproductions/27380-dashboard-drops-joined-fields-on-zoom-in.cy.spec.js
index 983ee78c6f7..2d409a1fcd5 100644
--- a/frontend/test/metabase/scenarios/joins/reproductions/27380-dashboard-drops-joined-fields-on-zoom-in.cy.spec.js
+++ b/frontend/test/metabase/scenarios/joins/reproductions/27380-dashboard-drops-joined-fields-on-zoom-in.cy.spec.js
@@ -18,7 +18,7 @@ const questionDetails = {
   display: "line",
 };
 
-describe.skip("issue 27380", () => {
+describe("issue 27380", () => {
   beforeEach(() => {
     cy.intercept("POST", "/api/dataset").as("dataset");
 
@@ -40,10 +40,10 @@ describe.skip("issue 27380", () => {
 
     // Graph should still exist
     // Let's check only the y-axis label
-    cy.get("y-axis-label").invoke("text").should("eq", "Count");
+    cy.get(".y-axis-label").invoke("text").should("eq", "Count");
 
     cy.icon("notebook").click();
     cy.findByText("Pick a column to group by").should("not.exist");
-    cy.findByText(/Products? → Created At: Month/);
+    cy.findByText("Count by Product → Created At: Week");
   });
 });
-- 
GitLab