From 0297a50cc8aed410369d1990fff77c76c509ebb5 Mon Sep 17 00:00:00 2001
From: Alexander Lesnenko <alxnddr@users.noreply.github.com>
Date: Thu, 2 Jun 2022 14:48:28 +0400
Subject: [PATCH] fix column settings ignored (#23068)

* fix column settings ignored

* better fix
---
 .../lib/queries/StructuredQuery.ts            |  2 +-
 .../components/TableInteractive.jsx           |  1 +
 ...23-preview-shows-hidden-columns.cy.spec.js | 58 +++++++++++++++++++
 3 files changed, 60 insertions(+), 1 deletion(-)
 create mode 100644 frontend/test/metabase/scenarios/question/reproductions/23023-preview-shows-hidden-columns.cy.spec.js

diff --git a/frontend/src/metabase-lib/lib/queries/StructuredQuery.ts b/frontend/src/metabase-lib/lib/queries/StructuredQuery.ts
index 3b8d9e2a8f7..75d4da6f0af 100644
--- a/frontend/src/metabase-lib/lib/queries/StructuredQuery.ts
+++ b/frontend/src/metabase-lib/lib/queries/StructuredQuery.ts
@@ -1162,7 +1162,7 @@ class StructuredQueryInner extends AtomicQuery {
       }
     }
 
-    if (this.isRaw()) {
+    if (this.isRaw() && this.sourceQuery()) {
       query = query.clearFields();
     }
 
diff --git a/frontend/src/metabase/visualizations/components/TableInteractive.jsx b/frontend/src/metabase/visualizations/components/TableInteractive.jsx
index 15fcbd72d29..e2ed11ac0e7 100644
--- a/frontend/src/metabase/visualizations/components/TableInteractive.jsx
+++ b/frontend/src/metabase/visualizations/components/TableInteractive.jsx
@@ -709,6 +709,7 @@ class TableInteractive extends Component {
         }}
       >
         <div
+          data-testid="header-cell"
           ref={e => (this.headerRefs[columnIndex] = e)}
           style={{
             ...style,
diff --git a/frontend/test/metabase/scenarios/question/reproductions/23023-preview-shows-hidden-columns.cy.spec.js b/frontend/test/metabase/scenarios/question/reproductions/23023-preview-shows-hidden-columns.cy.spec.js
new file mode 100644
index 00000000000..43e82a0279e
--- /dev/null
+++ b/frontend/test/metabase/scenarios/question/reproductions/23023-preview-shows-hidden-columns.cy.spec.js
@@ -0,0 +1,58 @@
+import {
+  restore,
+  visitQuestionAdhoc,
+  openNotebook,
+} from "__support__/e2e/cypress";
+import { SAMPLE_DB_ID } from "__support__/e2e/cypress_data";
+import { SAMPLE_DATABASE } from "__support__/e2e/cypress_sample_database";
+
+const { ORDERS, ORDERS_ID, PRODUCTS, PRODUCTS_ID } = SAMPLE_DATABASE;
+
+const questionDetails = {
+  display: "table",
+  dataset_query: {
+    database: SAMPLE_DB_ID,
+    query: {
+      "source-table": ORDERS_ID,
+      joins: [
+        {
+          fields: [["field", PRODUCTS.CATEGORY, { "join-alias": "Products" }]],
+          "source-table": PRODUCTS_ID,
+          condition: [
+            "=",
+            ["field", ORDERS.PRODUCT_ID, null],
+            ["field", PRODUCTS.ID, { "join-alias": "Products" }],
+          ],
+          alias: "Products",
+        },
+      ],
+      fields: [
+        ["field", ORDERS.ID, null],
+        ["field", ORDERS.PRODUCT_ID, null],
+      ],
+    },
+    type: "query",
+  },
+};
+
+describe("issue 23023", () => {
+  beforeEach(() => {
+    restore();
+    cy.signInAsAdmin();
+  });
+
+  it("should show only selected columns in a step preview (metabase#23023)", () => {
+    visitQuestionAdhoc(questionDetails);
+
+    openNotebook();
+
+    cy.icon("play")
+      .eq(1)
+      .click();
+
+    cy.findAllByTestId("header-cell").contains("Products → Category");
+    cy.findAllByTestId("header-cell")
+      .contains("Tax")
+      .should("not.exist");
+  });
+});
-- 
GitLab