From 0ff90d1a041d9fdd6da997a86d2c268a251a9bec Mon Sep 17 00:00:00 2001
From: Nemanja Glumac <31325167+nemanjaglumac@users.noreply.github.com>
Date: Sun, 8 Aug 2021 02:58:12 +0200
Subject: [PATCH] #17060 Repro: Duplication of the displayed table columns
 (#17361)

---
 .../native/reproductions/17060.cy.spec.js     | 59 +++++++++++++++++++
 1 file changed, 59 insertions(+)
 create mode 100644 frontend/test/metabase/scenarios/native/reproductions/17060.cy.spec.js

diff --git a/frontend/test/metabase/scenarios/native/reproductions/17060.cy.spec.js b/frontend/test/metabase/scenarios/native/reproductions/17060.cy.spec.js
new file mode 100644
index 00000000000..7ac4ea5297f
--- /dev/null
+++ b/frontend/test/metabase/scenarios/native/reproductions/17060.cy.spec.js
@@ -0,0 +1,59 @@
+import { restore, openNativeEditor } from "__support__/e2e/cypress";
+
+import { runQuery } from "../../native-filters/helpers/e2e-sql-filter-helpers";
+
+const ORIGINAL_QUERY = `select ID as "num", CATEGORY as "text" from PRODUCTS limit 1`;
+const SECTION = "select ";
+const SELECTED_TEXT = "ID";
+
+const moveCursorToBeginning = "{selectall}{leftarrow}";
+
+const highlightSelectedText = "{shift}{rightarrow}".repeat(
+  SELECTED_TEXT.length,
+);
+
+const moveCursorAfterSection = "{rightarrow}".repeat(SECTION.length);
+
+describe("issue 17060", () => {
+  beforeEach(() => {
+    cy.intercept("POST", "/api/dataset").as("dataset");
+
+    restore();
+    cy.signInAsAdmin();
+
+    openNativeEditor().type(ORIGINAL_QUERY);
+
+    runQuery();
+
+    cy.findByTestId("viz-settings-button").click();
+
+    cy.findByTestId("sidebar-left").within(() => {
+      rearrangeColumns();
+    });
+  });
+
+  it("should not render duplicated columns (metabase#17060)", () => {
+    cy.get("@editor").type(
+      moveCursorToBeginning +
+        moveCursorAfterSection +
+        highlightSelectedText +
+        "RATING",
+      { delay: 50 },
+    );
+
+    runQuery();
+
+    cy.get(".Visualization").within(() => {
+      cy.findByText("num");
+    });
+  });
+});
+
+function rearrangeColumns() {
+  cy.get(".cursor-grab")
+    .first()
+    .trigger("mousedown", 0, 0, { force: true })
+    .trigger("mousemove", 5, 5, { force: true })
+    .trigger("mousemove", 0, 100, { force: true })
+    .trigger("mouseup", 0, 100, { force: true });
+}
-- 
GitLab