diff --git a/frontend/src/metabase/visualizations/lib/utils.js b/frontend/src/metabase/visualizations/lib/utils.js index 371dd47a69c070143b150b9e5e771f1ece09e37e..537cb868f8f6f11d823d9d981c406d9f3ea88c54 100644 --- a/frontend/src/metabase/visualizations/lib/utils.js +++ b/frontend/src/metabase/visualizations/lib/utils.js @@ -234,6 +234,7 @@ export function getCardAfterVisualizationClick(nextCard, previousCard) { isMultiseriesQuestion ? previousCard.id : nextCard.id, + id: null, }; } else { // Even though the card is currently clean, we might still apply dashboard parameters to it, diff --git a/frontend/test/metabase/scenarios/question/saved.cy.spec.js b/frontend/test/metabase/scenarios/question/saved.cy.spec.js new file mode 100644 index 0000000000000000000000000000000000000000..4e9bdccc8a21024f03c6b6dbfdc5d5f92451bc04 --- /dev/null +++ b/frontend/test/metabase/scenarios/question/saved.cy.spec.js @@ -0,0 +1,40 @@ +import { + restore, + signInAsNormalUser, + popover, + modal, +} from "__support__/cypress"; + +describe("scenarios > question > saved", () => { + before(restore); + beforeEach(signInAsNormalUser); + + it("view and filter saved question", () => { + cy.visit("/question/1"); + cy.findAllByText("Orders"); // question and table name appears + + // filter to only orders with quantity=100 + cy.findByText("Quantity").click(); + popover().within(() => cy.findByText("Filter").click()); + popover().within(() => { + cy.findByPlaceholderText("Search the list").type("100"); + cy.findByText("Update filter").click(); + }); + cy.findByText("Quantity is equal to 100"); + cy.findByText("Showing 2 rows"); // query updated + + // check that save will give option to replace + cy.findByText("Save").click(); + modal().within(() => { + cy.findByText('Replace original question, "Orders"'); + cy.findByText("Save as new question"); + cy.findByText("Cancel").click(); + }); + + // click "Started from Orders" and check that the original question is restored + cy.findByText("Started from").within(() => cy.findByText("Orders").click()); + cy.findByText("Showing first 2,000 rows"); // query updated + cy.findByText("Started from").should("not.exist"); + cy.findByText("Quantity is equal to 100").should("not.exist"); + }); +});