From 4b6233873a832e3c5f38996d3b32e11c68d459b6 Mon Sep 17 00:00:00 2001 From: Anton Kulyk <kuliks.anton@gmail.com> Date: Wed, 9 Jun 2021 13:07:24 +0300 Subject: [PATCH] Fix bulk archive broken (#16500) * Add repro for #16496 (bulk archive broken) * Add E2E test for bulk move * Fix bulk archive * Remove reduntant checks * Use `cy.button()` Co-authored-by: Nemanja <31325167+nemanjaglumac@users.noreply.github.com> --- .../containers/CollectionContent.jsx | 4 +- .../collections/collections.cy.spec.js | 39 +++++++++++++++++++ 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/frontend/src/metabase/collections/containers/CollectionContent.jsx b/frontend/src/metabase/collections/containers/CollectionContent.jsx index 3252fd47463..4be39821c1a 100644 --- a/frontend/src/metabase/collections/containers/CollectionContent.jsx +++ b/frontend/src/metabase/collections/containers/CollectionContent.jsx @@ -66,11 +66,11 @@ function CollectionContent({ const handleBulkArchive = useCallback(async () => { try { - await Promise.all(selectedItems.map(item => item.setArchived(true))); + await Promise.all(selected.map(item => item.setArchived(true))); } finally { clear(); } - }, [selectedItems, clear]); + }, [selected, clear]); const handleBulkMoveStart = () => { setSelectedItems(selected); diff --git a/frontend/test/metabase/scenarios/collections/collections.cy.spec.js b/frontend/test/metabase/scenarios/collections/collections.cy.spec.js index 9581f062c6c..d642f3ad476 100644 --- a/frontend/test/metabase/scenarios/collections/collections.cy.spec.js +++ b/frontend/test/metabase/scenarios/collections/collections.cy.spec.js @@ -622,6 +622,45 @@ describe("scenarios > collection_defaults", () => { cy.findByTestId("bulk-action-bar").should("not.be.visible"); } }); + + describe("archive", () => { + it("should be possible to bulk archive items (metabase#16496)", () => { + cy.visit("/collection/root"); + selectItemUsingCheckbox("Orders"); + + cy.findByTestId("bulk-action-bar") + .button("Archive") + .click(); + + cy.findByText("Orders").should("not.exist"); + cy.findByTestId("bulk-action-bar").should("not.be.visible"); + }); + }); + + describe("move", () => { + it("should be possible to bulk move items", () => { + cy.visit("/collection/root"); + selectItemUsingCheckbox("Orders"); + + cy.findByTestId("bulk-action-bar") + .button("Move") + .click(); + + modal().within(() => { + cy.findByText("First collection").click(); + cy.button("Move").click(); + }); + + cy.findByText("Orders").should("not.exist"); + cy.findByTestId("bulk-action-bar").should("not.be.visible"); + + // Check that items were actually moved + sidebar() + .findByText("First collection") + .click(); + cy.findByText("Orders"); + }); + }); }); }); }); -- GitLab