From 6dfdb4485b9c2643c8e667693471ba544a0173b1 Mon Sep 17 00:00:00 2001
From: Jessica DeWitt <58329466+Opalevanescence@users.noreply.github.com>
Date: Fri, 24 Jul 2020 14:58:10 -0500
Subject: [PATCH] Repro/filter dropdown (#12994)

* Repro/universal search (#12957)

* repro complete

* Added issue #

* prettier

* Deleted change of table permissions

* repro of issue

* improvement to test
---
 .../metabase/scenarios/auth/search.cy.spec.js | 33 +++++++++
 .../scenarios/question/filter.cy.spec.js      | 71 +++++++++++++++++++
 2 files changed, 104 insertions(+)
 create mode 100644 frontend/test/metabase/scenarios/auth/search.cy.spec.js
 create mode 100644 frontend/test/metabase/scenarios/question/filter.cy.spec.js

diff --git a/frontend/test/metabase/scenarios/auth/search.cy.spec.js b/frontend/test/metabase/scenarios/auth/search.cy.spec.js
new file mode 100644
index 00000000000..c19df331d27
--- /dev/null
+++ b/frontend/test/metabase/scenarios/auth/search.cy.spec.js
@@ -0,0 +1,33 @@
+import {
+  restore,
+  signInAsAdmin,
+  signInAsNormalUser,
+  signIn,
+} from "__support__/cypress";
+
+describe("scenarios > auth > search", () => {
+  before(restore);
+
+  describe("universal search", () => {
+    it("should work for admin", () => {
+      signInAsAdmin();
+      cy.visit("/");
+      cy.findByPlaceholderText("Search…").type("product{enter}");
+      cy.findByText("PRODUCTS");
+    });
+
+    it.skip("should work for user with permissions (Issue #12332)", () => {
+      signInAsNormalUser();
+      cy.visit("/");
+      cy.findByPlaceholderText("Search…").type("product{enter}");
+      cy.findByText("PRODUCTS");
+    });
+
+    it("should not work for user without permissions", () => {
+      signIn("nodata");
+      cy.visit("/");
+      cy.findByPlaceholderText("Search…").type("product{enter}");
+      cy.findByText("PRODUCTS").should("not.exist");
+    });
+  });
+});
diff --git a/frontend/test/metabase/scenarios/question/filter.cy.spec.js b/frontend/test/metabase/scenarios/question/filter.cy.spec.js
new file mode 100644
index 00000000000..6ba5ff2f502
--- /dev/null
+++ b/frontend/test/metabase/scenarios/question/filter.cy.spec.js
@@ -0,0 +1,71 @@
+import {
+  signInAsAdmin,
+  restore,
+  openProductsTable,
+  popover,
+} from "__support__/cypress";
+
+describe("scenarios > question > filter", () => {
+  before(restore);
+  beforeEach(signInAsAdmin);
+
+  it.skip("should load needed data (Issue #12985)", () => {
+    // Save a Question
+    openProductsTable();
+    cy.findByText("Save").click();
+    cy.findByPlaceholderText("What is the name of your card?")
+      .clear()
+      .type("Q1");
+    cy.findAllByText("Save")
+      .last()
+      .click();
+    cy.findByText("Not now").click();
+
+    // From Q1, save Q2
+    cy.visit("/question/new");
+    cy.findByText("Simple question").click();
+    cy.findByText("Saved Questions").click();
+    cy.findByText("Q1").click();
+    cy.findByText("Save").click();
+    cy.findByPlaceholderText("What is the name of your card?")
+      .clear()
+      .type("Q2");
+    cy.findAllByText("Save")
+      .last()
+      .click();
+
+    // Add Q2 to a dashboard
+    cy.findByText("Yes please!").click();
+    cy.get(".Icon-dashboard").click();
+
+    // Add two dashboard filters
+    cy.get(".Icon-funnel_add").click();
+    cy.findByText("Time").click();
+    cy.findByText("All Options").click();
+    cy.findAllByText("Select…")
+      .last()
+      .click();
+    cy.findByText("Created At").click();
+
+    cy.get(".Icon-funnel_add").click();
+    cy.findByText("Other Categories").click();
+    cy.findAllByText("Select…")
+      .last()
+      .click();
+    popover().within(() => {
+      cy.findByText("Category").click();
+    });
+
+    // Save dashboard and refresh page
+    cy.findByText("Done").click();
+    cy.findByText("You are editing a dashboard");
+    cy.findByText("Save").click();
+    cy.findByText("Save").should("not.exist");
+
+    // Check category search
+    cy.get(".Icon-empty").should("not.exist");
+    cy.findByText("Category").click();
+    cy.findByText("Gadget").click();
+    cy.findByText("Add filter").click();
+  });
+});
-- 
GitLab