diff --git a/frontend/test/metabase-visual/notebook/notebook.cy.spec.js b/frontend/test/metabase-visual/notebook/notebook.cy.spec.js index cd74b5b790a92b1b10c17b0cc660095cbf7261b0..29eacf3bcc6d572eeecf6aef1bf9808d4ee85f49 100644 --- a/frontend/test/metabase-visual/notebook/notebook.cy.spec.js +++ b/frontend/test/metabase-visual/notebook/notebook.cy.spec.js @@ -12,8 +12,7 @@ describe("visual tests > notebook > major UI elements", () => { }); it("renders correctly", () => { - cy.visit("/question/new"); - cy.findByText("Custom question").click(); + startNewQuestion(); cy.findByTextEnsureVisible("Sample Database").click(); cy.findByTextEnsureVisible("Orders").click(); @@ -67,8 +66,7 @@ describe("visual tests > notebook > Run buttons", () => { // This tests that the run buttons are the correct size on the Custom question page it("in Custom Question render correctly", () => { - cy.visit("/question/new"); - cy.findByText("Custom question").click(); + startNewQuestion(); cy.findByTextEnsureVisible("Sample Database").click(); cy.findByTextEnsureVisible("Orders").click(); // Waiting for notebook icon to load diff --git a/frontend/test/metabase/scenarios/admin/datamodel/hide_tables.cy.spec.js b/frontend/test/metabase/scenarios/admin/datamodel/hide_tables.cy.spec.js index e8bc561865744279ce34d3ad52f8ddd829ea42f7..a419396decc315680348ff375189120da449731f 100644 --- a/frontend/test/metabase/scenarios/admin/datamodel/hide_tables.cy.spec.js +++ b/frontend/test/metabase/scenarios/admin/datamodel/hide_tables.cy.spec.js @@ -1,4 +1,4 @@ -import { restore } from "__support__/e2e/cypress"; +import { restore, startNewQuestion } from "__support__/e2e/cypress"; const ORDERS_URL = "/admin/datamodel/database/1/table/2"; @@ -39,8 +39,7 @@ describe("scenarios > admin > datamodel > hidden tables (metabase#9759)", () => // It shouldn't show up as a normal user either cy.signInAsNormalUser(); - cy.visit("/question/new"); - cy.contains("Simple question").click(); + startNewQuestion(); cy.contains("Sample Database").click(); cy.contains("Products"); cy.contains("Orders").should("not.exist"); diff --git a/frontend/test/metabase/scenarios/binning/binning-reproductions.cy.spec.js b/frontend/test/metabase/scenarios/binning/binning-reproductions.cy.spec.js index 2694382d71ac61822f4dbd64ba35c1f0043d47ad..0bd9bbe1b2f112fccdcb1353deb3fa66f0d06517 100644 --- a/frontend/test/metabase/scenarios/binning/binning-reproductions.cy.spec.js +++ b/frontend/test/metabase/scenarios/binning/binning-reproductions.cy.spec.js @@ -7,6 +7,7 @@ import { getBinningButtonForDimension, startNewQuestion, summarize, + openOrdersTable, } from "__support__/e2e/cypress"; import { SAMPLE_DB_ID } from "__support__/e2e/cypress_data"; @@ -26,8 +27,7 @@ describe("binning related reproductions", () => { native: { query: "select * from products limit 5" }, }); - cy.visit("/question/new"); - cy.findByText("Custom question").click(); + startNewQuestion(); cy.findByText("Saved Questions").click(); cy.findByText("16327").click(); @@ -89,8 +89,7 @@ describe("binning related reproductions", () => { { loadMetadata: true }, ); - cy.visit("/question/new"); - cy.findByText("Custom question").click(); + startNewQuestion(); cy.findByText("Saved Questions").click(); cy.findByText("17975").click(); @@ -119,10 +118,7 @@ describe("binning related reproductions", () => { { loadMetadata: true }, ); - cy.visit("/question/new"); - cy.findByText("Custom question").click(); - cy.findByTextEnsureVisible("Sample Database").click(); - cy.findByTextEnsureVisible("Orders").click(); + openOrdersTable({ mode: "notebook" }); cy.icon("join_left_outer").click(); diff --git a/frontend/test/metabase/scenarios/binning/qb-explicit-joins.cy.spec.js b/frontend/test/metabase/scenarios/binning/qb-explicit-joins.cy.spec.js index 1db8a8889ea9b74e722dd12c577dbced827a6de4..6acb9f26a42e7b72d43d567feea061fc890b1ead 100644 --- a/frontend/test/metabase/scenarios/binning/qb-explicit-joins.cy.spec.js +++ b/frontend/test/metabase/scenarios/binning/qb-explicit-joins.cy.spec.js @@ -3,6 +3,7 @@ import { visualize, changeBinningForDimension, summarize, + startNewQuestion, } from "__support__/e2e/cypress"; import { SAMPLE_DATABASE } from "__support__/e2e/cypress_sample_database"; @@ -129,8 +130,7 @@ describe("scenarios > binning > from a saved QB question with explicit joins", ( context("via custom question", () => { beforeEach(() => { - cy.visit("/question/new"); - cy.findByText("Custom question").click(); + startNewQuestion(); cy.findByText("Saved Questions").click(); cy.findByText("QB Binning").click(); diff --git a/frontend/test/metabase/scenarios/binning/sql.cy.spec.js b/frontend/test/metabase/scenarios/binning/sql.cy.spec.js index 3125afb123e331fa22abcb720405cc14bb9be41d..c067b1e6ff4306578a205522cda81c8c06c8bb24 100644 --- a/frontend/test/metabase/scenarios/binning/sql.cy.spec.js +++ b/frontend/test/metabase/scenarios/binning/sql.cy.spec.js @@ -4,6 +4,7 @@ import { visualize, changeBinningForDimension, summarize, + startNewQuestion, } from "__support__/e2e/cypress"; const questionDetails = { @@ -95,8 +96,7 @@ describe("scenarios > binning > from a saved sql question", () => { context("via custom question", () => { beforeEach(() => { - cy.visit("/question/new"); - cy.findByText("Custom question").click(); + startNewQuestion(); cy.findByText("Saved Questions").click(); cy.findByText("SQL Binning").click(); diff --git a/frontend/test/metabase/scenarios/custom-column/reproductions/13751-cc-allow-strings-in-filter.cy.spec.js b/frontend/test/metabase/scenarios/custom-column/reproductions/13751-cc-allow-strings-in-filter.cy.spec.js index 2a31b53f438a3be2ab135021fcb61a0e0188b3f2..0b96abd842c3a1a4377f7b448962832841bf0868 100644 --- a/frontend/test/metabase/scenarios/custom-column/reproductions/13751-cc-allow-strings-in-filter.cy.spec.js +++ b/frontend/test/metabase/scenarios/custom-column/reproductions/13751-cc-allow-strings-in-filter.cy.spec.js @@ -3,6 +3,7 @@ import { popover, visualize, restore, + startNewQuestion, } from "__support__/e2e/cypress"; const CC_NAME = "C-States"; @@ -13,8 +14,7 @@ describe("issue 13751", () => { restore("postgres-12"); cy.signInAsAdmin(); - cy.visit("/question/new"); - cy.findByText("Custom question").click(); + startNewQuestion(); cy.findByText(PG_DB_NAME) .should("be.visible") .click(); diff --git a/frontend/test/metabase/scenarios/custom-column/reproductions/14517-cc-do-not-remove-regex-escape-chars.cy.spec.js b/frontend/test/metabase/scenarios/custom-column/reproductions/14517-cc-do-not-remove-regex-escape-chars.cy.spec.js index cbc6d3d6b821c57687df4d72357d0ebec6d3ec7c..c027b72cfed3b9a9a2ca8c6d51acd1215cfc5c50 100644 --- a/frontend/test/metabase/scenarios/custom-column/reproductions/14517-cc-do-not-remove-regex-escape-chars.cy.spec.js +++ b/frontend/test/metabase/scenarios/custom-column/reproductions/14517-cc-do-not-remove-regex-escape-chars.cy.spec.js @@ -1,4 +1,4 @@ -import { restore, popover } from "__support__/e2e/cypress"; +import { restore, popover, startNewQuestion } from "__support__/e2e/cypress"; const PG_DB_NAME = "QA Postgres12"; @@ -11,8 +11,7 @@ describe.skip("postgres > question > custom columns", () => { restore("postgres-12"); cy.signInAsAdmin(); - cy.visit("/question/new"); - cy.findByText("Custom question").click(); + startNewQuestion(); cy.findByText(PG_DB_NAME) .should("be.visible") .click(); diff --git a/frontend/test/metabase/scenarios/joins/joins-2.cy.spec.js b/frontend/test/metabase/scenarios/joins/joins-2.cy.spec.js index bf254726a9317a03683e7130c98579d095946f1f..f371823f46c2456f71e1d69b0046c410c9c67275 100644 --- a/frontend/test/metabase/scenarios/joins/joins-2.cy.spec.js +++ b/frontend/test/metabase/scenarios/joins/joins-2.cy.spec.js @@ -36,8 +36,7 @@ describe("scenarios > question > joined questions", () => { cy.intercept("/api/database/1/schema/PUBLIC").as("schema"); // start a custom question with orders - cy.visit("/question/new"); - cy.contains("Custom question").click(); + startNewQuestion(); cy.contains("Sample Database").click(); cy.contains("Orders").click(); @@ -81,8 +80,7 @@ describe("scenarios > question > joined questions", () => { cy.intercept("/api/database/1/schema/PUBLIC").as("schema"); cy.log("Start a custom question with Orders"); - cy.visit("/question/new"); - cy.findByText("Custom question").click(); + startNewQuestion(); cy.findByTextEnsureVisible("Sample Database").click(); cy.findByTextEnsureVisible("Orders").click(); @@ -133,8 +131,7 @@ describe("scenarios > question > joined questions", () => { }); // start a custom question with question a - cy.visit("/question/new"); - cy.findByText("Custom question").click(); + startNewQuestion(); cy.findByText("Saved Questions").click(); cy.findByText("question a").click(); @@ -548,8 +545,7 @@ function joinTwoSavedQuestions() { }, }).then(() => { cy.intercept("/api/database/1/schema/PUBLIC").as("schema"); - cy.visit(`/question/new`); - cy.findByText("Custom question").click(); + startNewQuestion(); popover().within(() => { cy.findByText("Saved Questions").click(); diff --git a/frontend/test/metabase/scenarios/joins/joins.cy.spec.js b/frontend/test/metabase/scenarios/joins/joins.cy.spec.js index 14a55cf9f02c358ea103af35ebdaaac644277afe..db10b7df03a412dfc9cbd855eb280ecb6c3b345d 100644 --- a/frontend/test/metabase/scenarios/joins/joins.cy.spec.js +++ b/frontend/test/metabase/scenarios/joins/joins.cy.spec.js @@ -4,6 +4,7 @@ import { popover, visualize, summarize, + startNewQuestion, } from "__support__/e2e/cypress"; import { SAMPLE_DATABASE } from "__support__/e2e/cypress_sample_database"; @@ -29,8 +30,7 @@ describe("scenarios > question > joined questions", () => { query: { "source-table": ORDERS_ID }, }); - cy.visit("/question/new"); - cy.findByText("Custom question").click(); + startNewQuestion(); cy.findByTextEnsureVisible("Sample Database").click(); cy.findByTextEnsureVisible("Products").click(); diff --git a/frontend/test/metabase/scenarios/joins/reproductions/15342-mysql-correct-joins-order.cy.spec.js b/frontend/test/metabase/scenarios/joins/reproductions/15342-mysql-correct-joins-order.cy.spec.js index 6802a5a5a268fe8f4ef9ba567bf86c857df011f6..b56a03ca8308712b82887f4d83ac1baf16199fc3 100644 --- a/frontend/test/metabase/scenarios/joins/reproductions/15342-mysql-correct-joins-order.cy.spec.js +++ b/frontend/test/metabase/scenarios/joins/reproductions/15342-mysql-correct-joins-order.cy.spec.js @@ -1,4 +1,9 @@ -import { restore, popover, visualize } from "__support__/e2e/cypress"; +import { + restore, + popover, + visualize, + startNewQuestion, +} from "__support__/e2e/cypress"; const MYSQL_DB_NAME = "QA MySQL8"; @@ -11,8 +16,7 @@ describe.skip("issue 15342", () => { }); it("should correctly order joins for MySQL queries (metabase#15342)", () => { - cy.visit("/question/new"); - cy.findByText("Custom question").click(); + startNewQuestion(); cy.findByText(MYSQL_DB_NAME).click(); cy.findByText("People").click(); diff --git a/frontend/test/metabase/scenarios/joins/reproductions/18502-cannot-join-two-saved-questions-same-table.cy.spec.js b/frontend/test/metabase/scenarios/joins/reproductions/18502-cannot-join-two-saved-questions-same-table.cy.spec.js index 2f79f8aaf20fad993812c802dae4b0f5b042c0fc..160f432182fb723fabd5fda160622ba11ad96dcf 100644 --- a/frontend/test/metabase/scenarios/joins/reproductions/18502-cannot-join-two-saved-questions-same-table.cy.spec.js +++ b/frontend/test/metabase/scenarios/joins/reproductions/18502-cannot-join-two-saved-questions-same-table.cy.spec.js @@ -1,4 +1,9 @@ -import { restore, popover, visualize } from "__support__/e2e/cypress"; +import { + restore, + popover, + visualize, + startNewQuestion, +} from "__support__/e2e/cypress"; import { SAMPLE_DATABASE } from "__support__/e2e/cypress_sample_database"; const { PEOPLE, PEOPLE_ID } = SAMPLE_DATABASE; @@ -19,8 +24,7 @@ describe("issue 18502", () => { cy.createQuestion(question1); cy.createQuestion(question2); - cy.visit("/question/new"); - cy.findByText("Custom question").click(); + startNewQuestion(); cy.findByText("Saved Questions").click(); cy.findByText("18502#1").click(); diff --git a/frontend/test/metabase/scenarios/joins/reproductions/18512-cannot-join-two-saved-questions-with-same-implicit-explicit-grouped-field.cy.spec.js b/frontend/test/metabase/scenarios/joins/reproductions/18512-cannot-join-two-saved-questions-with-same-implicit-explicit-grouped-field.cy.spec.js index a6e3de9b0e016341f24a6a0ce8fe7ce1af8a2998..f5b8d6b3e563718853d01f2412db7491de191583 100644 --- a/frontend/test/metabase/scenarios/joins/reproductions/18512-cannot-join-two-saved-questions-with-same-implicit-explicit-grouped-field.cy.spec.js +++ b/frontend/test/metabase/scenarios/joins/reproductions/18512-cannot-join-two-saved-questions-with-same-implicit-explicit-grouped-field.cy.spec.js @@ -1,4 +1,9 @@ -import { restore, popover, visualize } from "__support__/e2e/cypress"; +import { + restore, + popover, + visualize, + startNewQuestion, +} from "__support__/e2e/cypress"; import { SAMPLE_DATABASE } from "__support__/e2e/cypress_sample_database"; const { PRODUCTS, PRODUCTS_ID, REVIEWS, REVIEWS_ID } = SAMPLE_DATABASE; @@ -20,8 +25,7 @@ describe("issue 18512", () => { cy.createQuestion(question1); cy.createQuestion(question2); - cy.visit("/question/new"); - cy.findByText("Custom question").click(); + startNewQuestion(); cy.findByText("Saved Questions").click(); cy.findByText("18512#1").click(); diff --git a/frontend/test/metabase/scenarios/models/models.cy.spec.js b/frontend/test/metabase/scenarios/models/models.cy.spec.js index ef8e408faa9fc4c7cd0054b614493a6a4ba6ea4e..02fc0a4b83097407214549126e91e1a912f42f8e 100644 --- a/frontend/test/metabase/scenarios/models/models.cy.spec.js +++ b/frontend/test/metabase/scenarios/models/models.cy.spec.js @@ -12,8 +12,11 @@ import { filter, visitQuestion, visitDashboard, + startNewQuestion, } from "__support__/e2e/cypress"; + import { SAMPLE_DATABASE } from "__support__/e2e/cypress_sample_database"; + import { turnIntoModel, assertIsModel, @@ -189,8 +192,7 @@ describe("scenarios > models", () => { }); it("transforms the data picker", () => { - cy.visit("/question/new"); - cy.findByText("Custom question").click(); + startNewQuestion(); popover().within(() => { testDataPickerSearch({ @@ -238,8 +240,7 @@ describe("scenarios > models", () => { it("allows to create a question based on a model", () => { cy.intercept("/api/database/1/schema/PUBLIC").as("schema"); - cy.visit("/question/new"); - cy.findByText("Custom question").click(); + startNewQuestion(); popover().within(() => { cy.findByText("Models").click(); @@ -278,8 +279,7 @@ describe("scenarios > models", () => { it("should not display models if nested queries are disabled", () => { mockSessionProperty("enable-nested-queries", false); - cy.visit("/question/new"); - cy.findByText("Custom question").click(); + startNewQuestion(); popover().within(() => { cy.findByText("Models").should("not.exist"); cy.findByText("Saved Questions").should("not.exist"); diff --git a/frontend/test/metabase/scenarios/native/reproductions/15946-mongo-pre-select-table.cy.spec.js b/frontend/test/metabase/scenarios/native/reproductions/15946-mongo-pre-select-table.cy.spec.js index c054e6cf4f4def9527ee910efc707cd0279747dc..0c68866bc93720648af1a1c5ce13ffed56af52f9 100644 --- a/frontend/test/metabase/scenarios/native/reproductions/15946-mongo-pre-select-table.cy.spec.js +++ b/frontend/test/metabase/scenarios/native/reproductions/15946-mongo-pre-select-table.cy.spec.js @@ -1,4 +1,4 @@ -import { restore, modal } from "__support__/e2e/cypress"; +import { restore, modal, startNewQuestion } from "__support__/e2e/cypress"; const MONGO_DB_NAME = "QA Mongo4"; @@ -7,8 +7,7 @@ describe.skip("issue 15946", () => { restore("mongo-4"); cy.signInAsAdmin(); - cy.visit("/question/new"); - cy.findByText("Custom question").click(); + startNewQuestion(); cy.findByText(MONGO_DB_NAME).click(); cy.findByText("Orders").click(); }); diff --git a/frontend/test/metabase/scenarios/permissions/sandboxes.cy.spec.js b/frontend/test/metabase/scenarios/permissions/sandboxes.cy.spec.js index e2c2a81f635b4d452158b930df0c65cc833fbfd6..7edc0e96491e5638a778121e51b41b40f5c7a208 100644 --- a/frontend/test/metabase/scenarios/permissions/sandboxes.cy.spec.js +++ b/frontend/test/metabase/scenarios/permissions/sandboxes.cy.spec.js @@ -13,7 +13,9 @@ import { filter, visitQuestion, visitDashboard, + startNewQuestion, } from "__support__/e2e/cypress"; + import { USER_GROUPS, SAMPLE_DB_ID } from "__support__/e2e/cypress_data"; import { SAMPLE_DATABASE } from "__support__/e2e/cypress_sample_database"; @@ -763,8 +765,7 @@ describeEE("formatting > sandboxes", () => { it("should be able to use summarize columns from joined table based on a saved question (metabase#14766)", () => { createJoinedQuestion("14766_joined"); - cy.visit("/question/new"); - cy.findByText("Custom question").click(); + startNewQuestion(); cy.findByText("Saved Questions").click(); cy.findByText("14766_joined").click(); cy.findByText("Pick the metric you want to see").click(); diff --git a/frontend/test/metabase/scenarios/question/nested.cy.spec.js b/frontend/test/metabase/scenarios/question/nested.cy.spec.js index 2f3fb5070fd674afedfff6d6d9dfa610a9772cdd..fbfb99ef1e41c7ba4b9cb864bcedd2d661769cab 100644 --- a/frontend/test/metabase/scenarios/question/nested.cy.spec.js +++ b/frontend/test/metabase/scenarios/question/nested.cy.spec.js @@ -545,12 +545,15 @@ describe("scenarios > question > nested", () => { }); // Window object gets recreated for every `cy.visit` // See: https://stackoverflow.com/a/65218352/8815185 - cy.visit("/question/new", { + cy.visit("/", { onBeforeLoad(win) { cy.spy(win.console, "warn").as("consoleWarn"); }, }); - cy.findByText("Custom question").click(); + cy.findByText("New").click(); + cy.findByText("Question") + .should("be.visible") + .click(); cy.findByText("Saved Questions").click(); cy.findByText("15725").click(); cy.findByText("Pick the metric you want to see").click(); diff --git a/frontend/test/metabase/scenarios/question/new.cy.spec.js b/frontend/test/metabase/scenarios/question/new.cy.spec.js index 97cc371a40e3d21655bc8cfa3f0778ddb2004527..5a1521d5abe367e52f47cbb4bfc1b05647ee5ef2 100644 --- a/frontend/test/metabase/scenarios/question/new.cy.spec.js +++ b/frontend/test/metabase/scenarios/question/new.cy.spec.js @@ -46,8 +46,7 @@ describe("scenarios > question > new", () => { cy.findByText("Sample3").isVisibleInPopover(); // Then move to the Custom question UI - cy.visit("/question/new"); - cy.findByText("Custom question").click(); + startNewQuestion(); cy.findByText("Sample3").isVisibleInPopover(); }); @@ -72,12 +71,9 @@ describe("scenarios > question > new", () => { }); describe("data picker search", () => { - beforeEach(() => { - cy.visit("/question/new"); - }); - describe("on a (simple) question page", () => { beforeEach(() => { + cy.visit("/question/new"); cy.findByText("Simple question").click(); cy.findByPlaceholderText("Search for a table…").type("Ord"); }); @@ -102,7 +98,7 @@ describe("scenarios > question > new", () => { describe("on a (custom) question page", () => { beforeEach(() => { - cy.findByText("Custom question").click(); + startNewQuestion(); cy.findByPlaceholderText("Search for a table…").type("Ord"); }); @@ -133,18 +129,15 @@ describe("scenarios > question > new", () => { cy.intercept("/api/search", req => { expect("Unexpected call to /api/search").to.be.false; }); - cy.findByText("Custom question").click(); + startNewQuestion(); cy.findByPlaceholderText("Search for a table…").type(" "); }); }); describe("saved question picker", () => { - beforeEach(() => { - cy.visit("/question/new"); - }); - describe("on a (simple) question page", () => { beforeEach(() => { + cy.visit("/question/new"); cy.findByText("Simple question").click(); cy.findByText("Saved Questions").click(); }); @@ -169,7 +162,7 @@ describe("scenarios > question > new", () => { describe("on a (custom) question page", () => { beforeEach(() => { - cy.findByText("Custom question").click(); + startNewQuestion(); cy.findByText("Saved Questions").click(); }); diff --git a/frontend/test/metabase/scenarios/question/notebook.cy.spec.js b/frontend/test/metabase/scenarios/question/notebook.cy.spec.js index bc3b905bd37844d3b32da9cede8ab7bb95bb3c55..3916e83bed7f917e98cd823d5dd27fb9f6c67e03 100644 --- a/frontend/test/metabase/scenarios/question/notebook.cy.spec.js +++ b/frontend/test/metabase/scenarios/question/notebook.cy.spec.js @@ -10,6 +10,7 @@ import { visualize, summarize, filter, + startNewQuestion, } from "__support__/e2e/cypress"; import { SAMPLE_DB_ID } from "__support__/e2e/cypress_data"; @@ -42,8 +43,7 @@ describe("scenarios > question > notebook", () => { it("should allow post-aggregation filters", () => { // start a custom question with orders - cy.visit("/question/new"); - cy.contains("Custom question").click(); + startNewQuestion(); cy.contains("Sample Database").click(); cy.contains("Orders").click(); @@ -195,8 +195,7 @@ describe("scenarios > question > notebook", () => { // flaky test (#19454) it.skip("should show an info popover for dimensions listened by the custom expression editor", () => { // start a custom question with orders - cy.visit("/question/new"); - cy.contains("Custom question").click(); + startNewQuestion(); cy.contains("Sample Database").click(); cy.contains("Orders").click(); @@ -220,8 +219,7 @@ describe("scenarios > question > notebook", () => { restore(); cy.signInAsAdmin(); cy.viewport(1280, 720); - cy.visit("/question/new"); - cy.findByText("Custom question").click(); + startNewQuestion(); cy.findByTextEnsureVisible("Sample Database").click(); cy.findByTextEnsureVisible("Orders").click(); }); @@ -375,8 +373,7 @@ describe("scenarios > question > notebook", () => { // intentional simplification of "Select none" to quickly // fix users' pain caused by the inability to unselect all columns it("select no columns select the first one", () => { - cy.visit("/question/new"); - cy.contains("Custom question").click(); + startNewQuestion(); cy.contains("Sample Database").click(); cy.contains("Orders").click(); cy.findByTestId("fields-picker").click(); @@ -398,8 +395,7 @@ describe("scenarios > question > notebook", () => { // flaky test it.skip("should show an info popover when hovering over a field picker option for a table", () => { - cy.visit("/question/new"); - cy.contains("Custom question").click(); + startNewQuestion(); cy.contains("Sample Database").click(); cy.contains("Orders").click(); @@ -419,8 +415,7 @@ describe("scenarios > question > notebook", () => { }); // start a custom question with question a - cy.visit("/question/new"); - cy.findByText("Custom question").click(); + startNewQuestion(); cy.findByText("Saved Questions").click(); cy.findByText("question a").click(); diff --git a/frontend/test/metabase/scenarios/question/reproductions/15714-cc-postgres-percentile-accepts-two-params.js b/frontend/test/metabase/scenarios/question/reproductions/15714-cc-postgres-percentile-accepts-two-params.js index 06217c2ba29ebac955056585463c8730766e395b..9ca4049a9bc9c690146e1d34631cff9293b5c09a 100644 --- a/frontend/test/metabase/scenarios/question/reproductions/15714-cc-postgres-percentile-accepts-two-params.js +++ b/frontend/test/metabase/scenarios/question/reproductions/15714-cc-postgres-percentile-accepts-two-params.js @@ -1,4 +1,8 @@ -import { enterCustomColumnDetails, restore } from "__support__/e2e/cypress"; +import { + enterCustomColumnDetails, + restore, + startNewQuestion, +} from "__support__/e2e/cypress"; const PG_DB_NAME = "QA Postgres12"; @@ -8,8 +12,7 @@ export function issue15714() { restore("postgres-12"); cy.signInAsAdmin(); - cy.visit("/question/new"); - cy.findByText("Custom question").click(); + startNewQuestion(); cy.findByText(PG_DB_NAME) .should("be.visible") .click(); diff --git a/frontend/test/metabase/scenarios/question/reproductions/17963-mongo-filter-expression-compare-two-fields.js b/frontend/test/metabase/scenarios/question/reproductions/17963-mongo-filter-expression-compare-two-fields.js index 90fe67be9562674ad1cbad1e4724542e292f533d..1a9d2cae1208269b752397680e1c8de63a241f33 100644 --- a/frontend/test/metabase/scenarios/question/reproductions/17963-mongo-filter-expression-compare-two-fields.js +++ b/frontend/test/metabase/scenarios/question/reproductions/17963-mongo-filter-expression-compare-two-fields.js @@ -1,4 +1,9 @@ -import { restore, popover, visualize } from "__support__/e2e/cypress"; +import { + restore, + popover, + visualize, + startNewQuestion, +} from "__support__/e2e/cypress"; export function issue17963() { describe("issue 17963", () => { @@ -6,8 +11,7 @@ export function issue17963() { restore("mongo-4"); cy.signInAsAdmin(); - cy.visit("/question/new"); - cy.findByText("Custom question").click(); + startNewQuestion(); cy.findByText("QA Mongo4").click(); cy.findByText("Orders").click(); }); diff --git a/frontend/test/metabase/scenarios/question/reproductions/18207-string-min-max.js b/frontend/test/metabase/scenarios/question/reproductions/18207-string-min-max.js index 5760630808e153f625f7c6301d140e5e1433ab9a..18e577dc6c1b1593e520d23a0f905bb666014f5b 100644 --- a/frontend/test/metabase/scenarios/question/reproductions/18207-string-min-max.js +++ b/frontend/test/metabase/scenarios/question/reproductions/18207-string-min-max.js @@ -3,6 +3,8 @@ import { popover, restore, visualize, + openProductsTable, + summarize, } from "__support__/e2e/cypress"; export function issue18207() { @@ -12,16 +14,12 @@ export function issue18207() { restore(); cy.signInAsAdmin(); + + openProductsTable({ mode: "notebook" }); + summarize({ mode: "notebook" }); }); it("should be possible to use MIN on a string column (metabase#18207)", () => { - cy.visit("/question/new"); - cy.contains("Custom question").click(); - cy.contains("Sample Database").click(); - cy.contains("Products").click(); - - cy.contains("Pick the metric").click(); - cy.contains("Minimum of").click(); cy.findByText("Price"); cy.findByText("Rating"); @@ -33,13 +31,6 @@ export function issue18207() { }); it("should be possible to use MAX on a string column (metabase#18207)", () => { - cy.visit("/question/new"); - cy.contains("Custom question").click(); - cy.contains("Sample Database").click(); - cy.contains("Products").click(); - - cy.contains("Pick the metric").click(); - cy.contains("Maximum of").click(); cy.findByText("Price"); cy.findByText("Rating"); @@ -51,13 +42,6 @@ export function issue18207() { }); it("should be not possible to use AVERAGE on a string column (metabase#18207)", () => { - cy.visit("/question/new"); - cy.contains("Custom question").click(); - cy.contains("Sample Database").click(); - cy.contains("Products").click(); - - cy.contains("Pick the metric").click(); - cy.contains("Average of").click(); cy.findByText("Price"); cy.findByText("Rating"); @@ -65,12 +49,6 @@ export function issue18207() { }); it("should be possible to group by a string expression (metabase#18207)", () => { - cy.visit("/question/new"); - cy.contains("Custom question").click(); - cy.contains("Sample Database").click(); - cy.contains("Products").click(); - - cy.contains("Pick the metric").click(); popover() .contains("Custom Expression") .click(); diff --git a/frontend/test/metabase/scenarios/question/reproductions/19341-disabled-nested-queries.js b/frontend/test/metabase/scenarios/question/reproductions/19341-disabled-nested-queries.js index 7583c4226a54c243e29c1441a0f083430c2daaad..3e1aacb27971a3e953f110a84af2b65a17a8b9bb 100644 --- a/frontend/test/metabase/scenarios/question/reproductions/19341-disabled-nested-queries.js +++ b/frontend/test/metabase/scenarios/question/reproductions/19341-disabled-nested-queries.js @@ -1,4 +1,9 @@ -import { restore, mockSessionProperty, popover } from "__support__/e2e/cypress"; +import { + restore, + mockSessionProperty, + popover, + startNewQuestion, +} from "__support__/e2e/cypress"; export function issue19341() { describe("issue 19341", () => { @@ -19,8 +24,7 @@ export function issue19341() { it("should correctly disable nested queries (metabase#19341)", () => { // Test "Saved Questions" table is hidden in QB data selector - cy.visit("/question/new"); - cy.findByText("Custom question").click(); + startNewQuestion(); popover().within(() => { // Wait until picker init // When working as expected, the test environment only has "Sample Database" DB diff --git a/frontend/test/metabase/scenarios/question/reproductions/9027-new-questions-not-in-saved-questions-immediately.js b/frontend/test/metabase/scenarios/question/reproductions/9027-new-questions-not-in-saved-questions-immediately.js index 64e0d91b1f9fd39c6c30c2f7c22ec1c84140400c..fb871a63b6a182e48588819c21ecc4aa563d4477 100644 --- a/frontend/test/metabase/scenarios/question/reproductions/9027-new-questions-not-in-saved-questions-immediately.js +++ b/frontend/test/metabase/scenarios/question/reproductions/9027-new-questions-not-in-saved-questions-immediately.js @@ -15,8 +15,7 @@ export function issue9027() { restore(); cy.signInAsAdmin(); - cy.visit("/question/new"); - cy.findByText("Custom question").click(); + startNewQuestion(); cy.findByText("Saved Questions").click(); // Wait for the existing questions to load