diff --git a/package.json b/package.json index 53f73d565..aacb439d2 100644 --- a/package.json +++ b/package.json @@ -95,7 +95,7 @@ "moment-duration-format": "^2.3.2", "moment-timezone": "^0.5.33", "mui-color-input": "^9.0.0", - "openstack-uicore-foundation": "5.0.73-beta.1", + "openstack-uicore-foundation": "5.0.75", "p-limit": "^6.1.0", "path-browserify": "^1.0.1", "postcss-loader": "^6.2.1", diff --git a/src/pages/sponsors/show-pages-list-page/__tests__/show-pages-list-page.test.js b/src/pages/sponsors/show-pages-list-page/__tests__/show-pages-list-page.test.js index 8f50169df..add2a8f59 100644 --- a/src/pages/sponsors/show-pages-list-page/__tests__/show-pages-list-page.test.js +++ b/src/pages/sponsors/show-pages-list-page/__tests__/show-pages-list-page.test.js @@ -141,9 +141,11 @@ describe("ShowPagesListPage", () => { } } ); - const editButton = screen.getByTestId("EditIcon").closest("button"); await act(async () => { - await userEvent.click(editButton); + await userEvent.click(screen.getByTestId("row-actions-menu-trigger")); + await userEvent.click( + screen.getByRole("menuitem", { name: "general.edit" }) + ); }); expect(getSummitSponsorshipTypes).toHaveBeenCalledWith( DEFAULT_CURRENT_PAGE, @@ -168,9 +170,11 @@ describe("ShowPagesListPage", () => { } } ); - const editButton = screen.getByTestId("EditIcon").closest("button"); await act(async () => { - await userEvent.click(editButton); + await userEvent.click(screen.getByTestId("row-actions-menu-trigger")); + await userEvent.click( + screen.getByRole("menuitem", { name: "general.edit" }) + ); }); expect(getSummitSponsorshipTypes).toHaveBeenCalledWith( DEFAULT_CURRENT_PAGE, @@ -208,10 +212,13 @@ describe("ShowPagesListPage", () => { } } ); - const deleteButtons = screen.getAllByTestId("DeleteIcon"); - const secondDeleteButton = deleteButtons[1].closest("button"); await act(async () => { - await userEvent.click(secondDeleteButton); + await userEvent.click( + screen.getAllByTestId("row-actions-menu-trigger")[1] + ); + await userEvent.click( + screen.getByRole("menuitem", { name: "general.delete" }) + ); }); expect( await screen.findByText("general.are_you_sure") @@ -244,9 +251,11 @@ describe("ShowPagesListPage", () => { } } ); - const deleteButton = screen.getByTestId("DeleteIcon").closest("button"); await act(async () => { - await userEvent.click(deleteButton); + await userEvent.click(screen.getByTestId("row-actions-menu-trigger")); + await userEvent.click( + screen.getByRole("menuitem", { name: "general.delete" }) + ); }); expect( await screen.findByText("general.are_you_sure") diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/__tests__/cart-view.test.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/__tests__/cart-view.test.js index 935bdeb53..4e84c0c3a 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/__tests__/cart-view.test.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/__tests__/cart-view.test.js @@ -177,8 +177,9 @@ describe("CartView", () => { expect( screen.queryByRole("button", { name: "edit_sponsor.cart_tab.add_form" }) ).not.toBeInTheDocument(); - expect(screen.queryByTestId("action-edit")).not.toBeInTheDocument(); - expect(screen.queryByTestId("action-delete")).not.toBeInTheDocument(); + expect( + screen.queryByTestId("row-actions-menu-trigger") + ).not.toBeInTheDocument(); expect( screen.queryByText("edit_sponsor.cart_tab.sponsor_note.title") ).not.toBeInTheDocument(); @@ -187,14 +188,19 @@ describe("CartView", () => { ).not.toBeInTheDocument(); }); - it("shows them on an Open cart", () => { + it("shows them on an Open cart", async () => { renderCartView(createCart()); expect( screen.getByRole("button", { name: "edit_sponsor.cart_tab.add_form" }) ).toBeInTheDocument(); - expect(screen.getByTestId("action-edit")).toBeInTheDocument(); - expect(screen.getByTestId("action-delete")).toBeInTheDocument(); + await userEvent.click(screen.getByTestId("row-actions-menu-trigger")); + expect( + screen.getByRole("menuitem", { name: "general.edit" }) + ).toBeInTheDocument(); + expect( + screen.getByRole("menuitem", { name: "general.delete" }) + ).toBeInTheDocument(); expect( screen.getByText("edit_sponsor.cart_tab.sponsor_note.title") ).toBeInTheDocument(); diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/cart-view.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/cart-view.js index 15b52a06b..1251bb1c8 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/cart-view.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/cart-view.js @@ -190,6 +190,8 @@ const CartView = ({ } ]; + const amountIndex = tableColumns.findIndex((c) => c.columnKey === "amount"); + return ( <> @@ -231,11 +232,13 @@ const CartView = ({ } confirmButtonColor="error" > - {/* gap skips manage items when hidden, trailing covers lock (+ edit, delete) */} - {cartIsEditable ? ( - - ) : ( - + {/* aligns the total under amount; MuiTable passes its column count */} + {(colCount) => ( + )} {isCardPaymentCart && ( diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/__tests__/sponsor-forms-tab.test.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/__tests__/sponsor-forms-tab.test.js index 2ddd2ffc2..bb210e06b 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/__tests__/sponsor-forms-tab.test.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/__tests__/sponsor-forms-tab.test.js @@ -202,9 +202,11 @@ describe("SponsorFormsTab", () => { const explicitRow = screen.getByText("Managed Form 1").closest("tr"); const implicitRow = screen.getByText("Managed Form 2").closest("tr"); - expect(within(explicitRow).getByTestId("DeleteIcon")).toBeInTheDocument(); expect( - within(implicitRow).queryByTestId("DeleteIcon") + within(explicitRow).getByTestId("row-actions-menu-trigger") + ).toBeInTheDocument(); + expect( + within(implicitRow).queryByTestId("row-actions-menu-trigger") ).not.toBeInTheDocument(); }); @@ -232,10 +234,13 @@ describe("SponsorFormsTab", () => { expect(screen.getByText("Managed Form 1")).toBeInTheDocument(); expect(screen.getByText("Managed Form 2")).toBeInTheDocument(); - const deleteButtons = screen.getAllByTestId("DeleteIcon"); - const secondDeleteButton = deleteButtons[1].closest("button"); await act(async () => { - await userEvent.click(secondDeleteButton); + await userEvent.click( + screen.getAllByTestId("row-actions-menu-trigger")[1] + ); + await userEvent.click( + screen.getByRole("menuitem", { name: "general.delete" }) + ); }); expect( @@ -289,9 +294,11 @@ describe("SponsorFormsTab", () => { } }); - const deleteButton = screen.getByTestId("DeleteIcon").closest("button"); await act(async () => { - await userEvent.click(deleteButton); + await userEvent.click(screen.getByTestId("row-actions-menu-trigger")); + await userEvent.click( + screen.getByRole("menuitem", { name: "general.delete" }) + ); }); expect( @@ -322,9 +329,11 @@ describe("SponsorFormsTab", () => { store }); - const deleteButton = screen.getByTestId("DeleteIcon").closest("button"); await act(async () => { - await userEvent.click(deleteButton); + await userEvent.click(screen.getByTestId("row-actions-menu-trigger")); + await userEvent.click( + screen.getByRole("menuitem", { name: "general.delete" }) + ); }); expect( @@ -371,9 +380,11 @@ describe("SponsorFormsTab", () => { } }); - const deleteButton = screen.getByTestId("DeleteIcon").closest("button"); await act(async () => { - await userEvent.click(deleteButton); + await userEvent.click(screen.getByTestId("row-actions-menu-trigger")); + await userEvent.click( + screen.getByRole("menuitem", { name: "general.delete" }) + ); }); expect( diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-pages-tab/__tests__/sponsor-pages-tab.test.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-pages-tab/__tests__/sponsor-pages-tab.test.js index b3e2a6cf3..f6cbe200d 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-pages-tab/__tests__/sponsor-pages-tab.test.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-pages-tab/__tests__/sponsor-pages-tab.test.js @@ -205,9 +205,11 @@ describe("SponsorPagesTab", () => { } ); - const editButton = screen.getByTestId("EditIcon").closest("button"); await act(async () => { - await userEvent.click(editButton); + await userEvent.click(screen.getByTestId("row-actions-menu-trigger")); + await userEvent.click( + screen.getByRole("menuitem", { name: "general.edit" }) + ); }); expect(getSponsorCustomizedPage).toHaveBeenCalledWith(1); @@ -355,9 +357,11 @@ describe("SponsorPagesTab", () => { } ); - const editButton = screen.getByTestId("EditIcon").closest("button"); await act(async () => { - await userEvent.click(editButton); + await userEvent.click(screen.getByTestId("row-actions-menu-trigger")); + await userEvent.click( + screen.getByRole("menuitem", { name: "general.edit" }) + ); }); await waitFor(() => { diff --git a/yarn.lock b/yarn.lock index 6cc854497..f440225f5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9076,10 +9076,10 @@ open@^10.0.3: is-inside-container "^1.0.0" wsl-utils "^0.1.0" -openstack-uicore-foundation@5.0.73-beta.1: - version "5.0.73-beta.1" - resolved "https://registry.yarnpkg.com/openstack-uicore-foundation/-/openstack-uicore-foundation-5.0.73-beta.1.tgz#95274f8a31004e38d3c201d778f5d7f05928c8e5" - integrity sha512-+UTWgAy7DTZB3bToiASYo1ggtnEsG1MDNTc6Jr43l+HXUbB8NBStHrjR+xwuMKs4YnmSIpCfi8U26yjG029Ggw== +openstack-uicore-foundation@5.0.75: + version "5.0.75" + resolved "https://registry.yarnpkg.com/openstack-uicore-foundation/-/openstack-uicore-foundation-5.0.75.tgz#fa9d9c0bd6d4ee3e55c4a3dd17ed86096a25a21c" + integrity sha512-4zkRwoCPdguBX9W+aj4tWgpivwIltBL3l/U5yaDdAYPMEIiXfWod34vRfqJKryTPgbb1XCJtIDs2T4GgsNAlTQ== dependencies: use-sync-external-store "^1.6.0"