From ed89f0e271ebe08d1b7985ce3bce97db98a9b812 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Castillo?= Date: Tue, 4 Aug 2026 16:02:50 -0300 Subject: [PATCH 1/4] fix: replace item popup with shared item popup, adjust props, change in actions, add tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tomás Castillo --- src/actions/sponsor-forms-actions.js | 24 +++ .../__tests__/sponsor-inventory-popup.test.js | 189 ++++++++++++++++++ .../form-templates/sponsor-inventory-popup.js | 13 +- .../sponsor-form-item-list-page.test.js | 6 +- .../components/sponsor-form-item-form.js | 176 ---------------- .../components/sponsor-form-item-popup.js | 79 -------- .../sponsor-form-item-list-page/index.js | 9 +- 7 files changed, 231 insertions(+), 265 deletions(-) create mode 100644 src/pages/sponsors-global/form-templates/__tests__/sponsor-inventory-popup.test.js delete mode 100644 src/pages/sponsors/sponsor-form-item-list-page/components/sponsor-form-item-form.js delete mode 100644 src/pages/sponsors/sponsor-form-item-list-page/components/sponsor-form-item-popup.js diff --git a/src/actions/sponsor-forms-actions.js b/src/actions/sponsor-forms-actions.js index f524f2c6a..85e5df34f 100644 --- a/src/actions/sponsor-forms-actions.js +++ b/src/actions/sponsor-forms-actions.js @@ -1266,6 +1266,30 @@ export const saveSponsorFormItem = const normalizedEntity = normalizeItem(entity); + if (entity.id) { + return putRequest( + null, + createAction(SPONSOR_FORM_ITEM_UPDATED), + `${window.PURCHASES_API_URL}/api/v1/summits/${currentSummit.id}/show-forms/${formId}/items/${entity.id}`, + normalizedEntity, + snackbarErrorHandler + )(params)(dispatch) + .then(() => { + dispatch( + snackbarSuccessHandler({ + title: T.translate("general.success"), + html: T.translate("sponsor_form_item_list.edit_item.updated") + }) + ); + }) + .catch((err) => { + throw err; + }) + .finally(() => { + dispatch(stopLoading()); + }); + } + return postRequest( null, createAction(SPONSOR_FORM_ITEM_UPDATED), diff --git a/src/pages/sponsors-global/form-templates/__tests__/sponsor-inventory-popup.test.js b/src/pages/sponsors-global/form-templates/__tests__/sponsor-inventory-popup.test.js new file mode 100644 index 000000000..fc472c9a9 --- /dev/null +++ b/src/pages/sponsors-global/form-templates/__tests__/sponsor-inventory-popup.test.js @@ -0,0 +1,189 @@ +import React from "react"; +import { render, screen, waitFor } from "@testing-library/react"; +import userEvent from "@testing-library/user-event"; +import "@testing-library/jest-dom"; +import SponsorItemDialog from "../sponsor-inventory-popup"; + +jest.mock("i18n-react/dist/i18n-react", () => ({ + translate: jest.fn((key) => key) +})); + +jest.mock("../../../../hooks/useScrollToError", () => jest.fn()); + +jest.mock( + "openstack-uicore-foundation/lib/components/mui/formik-inputs/upload", + () => + function MockMuiFormikUpload({ name }) { + return
; + } +); + +jest.mock( + "openstack-uicore-foundation/lib/components/mui/formik-inputs/additional-input-list", + () => + function MockAdditionalInputList({ name }) { + return
; + } +); + +jest.mock( + "../../../../components/mui/formik-inputs/item-price-tiers", + () => + function MockItemPriceTiers() { + return
; + } +); + +jest.mock( + "../../../../components/inputs/formik-text-editor", + () => + function MockFormikTextEditor({ name }) { + return