From 5e2e4a401e2e1141acfddb09aa38dba5d824957c Mon Sep 17 00:00:00 2001
From: Alexander Polyankin <alexander.polyankin@metabase.com>
Date: Fri, 6 May 2022 17:29:20 +0300
Subject: [PATCH] Fix visualization settings for raw tables (#22422)

---
 .../src/metabase/query_builder/selectors.js   |  3 +-
 .../22359-raw-tables-vis-settings.cy.spec.js  | 47 +++++++++++++++++++
 2 files changed, 49 insertions(+), 1 deletion(-)
 create mode 100644 frontend/test/metabase/scenarios/visualizations/reproductions/22359-raw-tables-vis-settings.cy.spec.js

diff --git a/frontend/src/metabase/query_builder/selectors.js b/frontend/src/metabase/query_builder/selectors.js
index 2238e9f0c94..924d9365f12 100644
--- a/frontend/src/metabase/query_builder/selectors.js
+++ b/frontend/src/metabase/query_builder/selectors.js
@@ -565,7 +565,8 @@ export const getRawSeries = createSelector(
 
     if (isShowingRawTable) {
       display = "table";
-      settings = { "table.pivot": false };
+      settings = _.pick(settings, "column_settings");
+      settings = { "table.pivot": false, ...settings };
     }
 
     // we want to provide the visualization with a card containing the latest
diff --git a/frontend/test/metabase/scenarios/visualizations/reproductions/22359-raw-tables-vis-settings.cy.spec.js b/frontend/test/metabase/scenarios/visualizations/reproductions/22359-raw-tables-vis-settings.cy.spec.js
new file mode 100644
index 00000000000..60f629f3e05
--- /dev/null
+++ b/frontend/test/metabase/scenarios/visualizations/reproductions/22359-raw-tables-vis-settings.cy.spec.js
@@ -0,0 +1,47 @@
+import { popover, restore, visitQuestionAdhoc } from "__support__/e2e/cypress";
+
+import { SAMPLE_DATABASE } from "__support__/e2e/cypress_sample_database";
+
+const { ORDERS, ORDERS_ID } = SAMPLE_DATABASE;
+
+const questionDetails = {
+  name: "21973",
+  display: "line",
+  dataset_query: {
+    type: "query",
+    database: 1,
+    query: {
+      "source-table": ORDERS_ID,
+      aggregation: [["count"]],
+      breakout: [["field", ORDERS.CREATED_AT, { "temporal-unit": "month" }]],
+    },
+  },
+  visualization_settings: {
+    "graph.metrics": ["count"],
+    "graph.dimensions": ["CREATED_AT"],
+  },
+};
+
+describe("issue 22359", () => {
+  beforeEach(() => {
+    restore();
+    cy.signInAsAdmin();
+  });
+
+  it("should use visualization settings when viewing raw table data (metabase#22359)", () => {
+    visitQuestionAdhoc(questionDetails);
+    cy.icon("table2").click();
+    cy.findByText("Settings").click();
+
+    cy.findByTestId("sidebar-left").within(() => {
+      cy.findByText("Data").click();
+      cy.findByText("X-axis")
+        .parent()
+        .within(() => cy.icon("gear").click());
+      cy.findByText("January, 2018").click();
+    });
+
+    popover().within(() => cy.findByText("1/2018").click());
+    cy.findByText("4/2016").should("be.visible");
+  });
+});
-- 
GitLab