diff --git a/frontend/test/__support__/e2e/helpers/e2e-ui-elements-helpers.js b/frontend/test/__support__/e2e/helpers/e2e-ui-elements-helpers.js
index fc91ae026e102894e9fc73f604d1b8d7b11bb0dd..1da8687a9007c339a68b828a8491677284753245 100644
--- a/frontend/test/__support__/e2e/helpers/e2e-ui-elements-helpers.js
+++ b/frontend/test/__support__/e2e/helpers/e2e-ui-elements-helpers.js
@@ -83,3 +83,15 @@ export const questionInfoButton = () => {
 export const undo = () => {
   cy.findByTestId("toast-undo").findByText("Undo").click();
 };
+
+export const getDraggableElements = () => {
+  return cy.findAllByTestId(/draggable-item/);
+};
+
+export const moveColumnDown = (column, distance) => {
+  column
+    .trigger("mousedown", 0, 0, { force: true })
+    .trigger("mousemove", 5, 5, { force: true })
+    .trigger("mousemove", 0, distance * 50, { force: true })
+    .trigger("mouseup", 0, distance * 50, { force: true });
+};
diff --git a/frontend/test/metabase/scenarios/visualizations/bar_chart.cy.spec.js b/frontend/test/metabase/scenarios/visualizations/bar_chart.cy.spec.js
index c81a72e7ce484b5d5172e3bf02bf39cf4ea72560..6459e24ae2ab2e4600dbc4e8f28995b2d2ee263d 100644
--- a/frontend/test/metabase/scenarios/visualizations/bar_chart.cy.spec.js
+++ b/frontend/test/metabase/scenarios/visualizations/bar_chart.cy.spec.js
@@ -1,9 +1,15 @@
-import { restore, visitQuestionAdhoc } from "__support__/e2e/helpers";
+import {
+  restore,
+  visitQuestionAdhoc,
+  sidebar,
+  getDraggableElements,
+  moveColumnDown,
+} from "__support__/e2e/helpers";
 
 import { SAMPLE_DB_ID } from "__support__/e2e/cypress_data";
 import { SAMPLE_DATABASE } from "__support__/e2e/cypress_sample_database";
 
-const { ORDERS, ORDERS_ID } = SAMPLE_DATABASE;
+const { ORDERS, ORDERS_ID, PEOPLE, PRODUCTS } = SAMPLE_DATABASE;
 
 describe("scenarios > visualizations > bar chart", () => {
   beforeEach(() => {
@@ -103,4 +109,72 @@ describe("scenarios > visualizations > bar chart", () => {
       cy.get(".value-labels").should("contain", "19").and("contain", "20.0M");
     });
   });
+
+  describe("with x-axis series", () => {
+    beforeEach(() => {
+      visitQuestionAdhoc({
+        display: "bar",
+        dataset_query: {
+          type: "query",
+          query: {
+            "source-table": ORDERS_ID,
+            aggregation: [["count"]],
+            breakout: [
+              ["field", PEOPLE.SOURCE, { "source-field": ORDERS.USER_ID }],
+              [
+                "field",
+                PRODUCTS.CATEGORY,
+                { "source-field": ORDERS.PRODUCT_ID },
+              ],
+            ],
+          },
+          database: SAMPLE_DB_ID,
+        },
+      });
+
+      cy.findByText("Settings").click();
+      sidebar().findByText("Data").click();
+    });
+
+    it("should allow you to show/hide and reorder columns", () => {
+      moveColumnDown(getDraggableElements().eq(0), 2);
+
+      getDraggableElements().each((element, index) => {
+        const draggableName = element[0].innerText;
+        cy.findAllByTestId("legend-item").eq(index).contains(draggableName);
+      });
+
+      const columnIndex = 1;
+
+      getDraggableElements()
+        .eq(columnIndex)
+        .within(() => {
+          cy.icon("eye_filled").click();
+        });
+
+      getDraggableElements()
+        .eq(columnIndex)
+        .invoke("text")
+        .then(columnName => {
+          cy.get(".Visualization").findByText(columnName).should("not.exist");
+          cy.findAllByTestId("legend-item").should("have.length", 3);
+          cy.get(".enable-dots").should("have.length", 3);
+        });
+
+      getDraggableElements()
+        .eq(columnIndex)
+        .within(() => {
+          cy.icon("eye_crossed_out").click();
+        });
+
+      getDraggableElements()
+        .eq(columnIndex)
+        .invoke("text")
+        .then(columnName => {
+          cy.get(".Visualization").findByText(columnName).should("exist");
+          cy.findAllByTestId("legend-item").should("have.length", 4);
+          cy.get(".enable-dots").should("have.length", 4);
+        });
+    });
+  });
 });
diff --git a/frontend/test/metabase/scenarios/visualizations/funnel.cy.spec.js b/frontend/test/metabase/scenarios/visualizations/funnel.cy.spec.js
index d00799d0d07adbbca91eb411b7ff91d98749b19b..b7c789d3c1348350f50a063f302f34027df50044 100644
--- a/frontend/test/metabase/scenarios/visualizations/funnel.cy.spec.js
+++ b/frontend/test/metabase/scenarios/visualizations/funnel.cy.spec.js
@@ -1,4 +1,10 @@
-import { restore, visitQuestionAdhoc, sidebar } from "__support__/e2e/helpers";
+import {
+  restore,
+  visitQuestionAdhoc,
+  sidebar,
+  getDraggableElements,
+  moveColumnDown,
+} from "__support__/e2e/helpers";
 
 import { SAMPLE_DB_ID } from "__support__/e2e/cypress_data";
 import { SAMPLE_DATABASE } from "__support__/e2e/cypress_sample_database";
@@ -28,9 +34,9 @@ describe("scenarios > visualizations > funnel chart", () => {
 
   it("hould allow you to reorder and show/hide rows", () => {
     cy.log("ensure that rows are shown");
-    getDraggableRows().should("have.length", 5);
+    getDraggableElements().should("have.length", 5);
 
-    getDraggableRows()
+    getDraggableElements()
       .first()
       .invoke("text")
       .then(name => {
@@ -39,9 +45,9 @@ describe("scenarios > visualizations > funnel chart", () => {
           .first()
           .should("have.text", name);
 
-        moveColumnDown(getDraggableRows().first(), 2);
+        moveColumnDown(getDraggableElements().first(), 2);
 
-        getDraggableRows().eq(2).should("have.text", name);
+        getDraggableElements().eq(2).should("have.text", name);
 
         cy.findAllByTestId("funnel-chart-header")
           .eq(2)
@@ -49,14 +55,14 @@ describe("scenarios > visualizations > funnel chart", () => {
       });
 
     cy.log("toggle row visibility");
-    getDraggableRows()
+    getDraggableElements()
       .eq(1)
       .within(() => {
         cy.icon("eye_filled").click();
       });
     cy.findAllByTestId("funnel-chart-header").should("have.length", 4);
 
-    getDraggableRows()
+    getDraggableElements()
       .eq(1)
       .within(() => {
         cy.icon("eye_crossed_out").click();
@@ -64,15 +70,3 @@ describe("scenarios > visualizations > funnel chart", () => {
     cy.findAllByTestId("funnel-chart-header").should("have.length", 5);
   });
 });
-
-function getDraggableRows() {
-  return cy.findAllByTestId(/draggable-item/);
-}
-
-function moveColumnDown(column, distance) {
-  column
-    .trigger("mousedown", 0, 0, { force: true })
-    .trigger("mousemove", 5, 5, { force: true })
-    .trigger("mousemove", 0, distance * 50, { force: true })
-    .trigger("mouseup", 0, distance * 50, { force: true });
-}