diff --git a/src/actions/__tests__/sponsor-forms-actions.test.js b/src/actions/__tests__/sponsor-forms-actions.test.js new file mode 100644 index 000000000..646f2483e --- /dev/null +++ b/src/actions/__tests__/sponsor-forms-actions.test.js @@ -0,0 +1,66 @@ +import * as OpenStackUiCoreActions from "openstack-uicore-foundation/lib/utils/actions"; +import { deleteSponsorFormItem } from "../sponsor-forms-actions"; +import * as UtilsMethods from "../../utils/methods"; +import * as BaseActions from "../base-actions"; + +jest.mock("openstack-uicore-foundation/lib/utils/actions", () => { + const originalModule = jest.requireActual( + "openstack-uicore-foundation/lib/utils/actions" + ); + + return { + __esModule: true, + ...originalModule, + deleteRequest: jest.fn(() => () => () => Promise.resolve()) + }; +}); + +describe("SponsorFormActions", () => { + describe("DeleteSponsorFormItem", () => { + afterEach(() => { + // restore the spy created with spyOn + jest.restoreAllMocks(); + }); + + it("execute", async () => { + const mockedDispatch = jest.fn(); + const mockedGetState = jest.fn(() => ({ + currentSummitState: { + currentSummit: "SSS" + }, + sponsorFormItemsListState: { + currentPage: 1, + perPage: 10, + order: "asc", + orderDir: 1, + hideArchived: false + } + })); + + const params = { + formId: "AAA", + itemId: "III" + }; + + const spyOnGetAccessTokenSafely = jest + .spyOn(UtilsMethods, "getAccessTokenSafely") + .mockImplementation(() => "access _token"); + const spyOnSnackbarSuccessHandler = jest.spyOn( + BaseActions, + "snackbarSuccessHandler" + ); + + await deleteSponsorFormItem(params.formId, params.itemId)( + mockedDispatch, + mockedGetState + ); + + // gets acces token safely + expect(spyOnGetAccessTokenSafely).toHaveBeenCalled(); + // calls delete request + expect(OpenStackUiCoreActions.deleteRequest).toHaveBeenCalled(); + // shows snackbar + expect(spyOnSnackbarSuccessHandler).toHaveBeenCalled(); + }); + }); +}); diff --git a/src/actions/sponsor-forms-actions.js b/src/actions/sponsor-forms-actions.js index e54fc2134..569770b3b 100644 --- a/src/actions/sponsor-forms-actions.js +++ b/src/actions/sponsor-forms-actions.js @@ -938,7 +938,6 @@ export const deleteSponsorFormItem = const params = { access_token: accessToken }; dispatch(startLoading()); - return deleteRequest( null, createAction(SPONSOR_FORM_ITEM_DELETED)({ itemId }), diff --git a/src/pages/sponsors/sponsor-form-item-list-page/index.js b/src/pages/sponsors/sponsor-form-item-list-page/index.js index 94a3bd0a7..21f7f4d77 100644 --- a/src/pages/sponsors/sponsor-form-item-list-page/index.js +++ b/src/pages/sponsors/sponsor-form-item-list-page/index.js @@ -102,7 +102,16 @@ const SponsorFormItemListPage = ({ : archiveSponsorFormItem(formId, item.id); const handleRowDelete = (itemId) => { - deleteSponsorFormItem(formId, itemId); + deleteSponsorFormItem(formId, itemId).then(() => { + getSponsorFormItems( + formId, + currentPage, + perPage, + order, + orderDir, + hideArchived + ); + }); }; const handleNewItem = () => { diff --git a/src/reducers/sponsors/__tests__/sponsor-form-items-list-reducer.test.js b/src/reducers/sponsors/__tests__/sponsor-form-items-list-reducer.test.js index ba685eea9..31e2ac275 100644 --- a/src/reducers/sponsors/__tests__/sponsor-form-items-list-reducer.test.js +++ b/src/reducers/sponsors/__tests__/sponsor-form-items-list-reducer.test.js @@ -234,7 +234,6 @@ describe("SponsorFormItemsListReducer", () => { result = SponsorFormItemsListReducer( { ...initialState, - totalCount: 2, items: [ { id: "A", @@ -267,7 +266,6 @@ describe("SponsorFormItemsListReducer", () => { ); expect(result).toStrictEqual({ ...initialState, - totalCount: 1, items: [ { id: "B", diff --git a/src/reducers/sponsors/sponsor-form-items-list-reducer.js b/src/reducers/sponsors/sponsor-form-items-list-reducer.js index 765060f96..67829092a 100644 --- a/src/reducers/sponsors/sponsor-form-items-list-reducer.js +++ b/src/reducers/sponsors/sponsor-form-items-list-reducer.js @@ -131,9 +131,8 @@ const sponsorFormItemsListReducer = (state = DEFAULT_STATE, action) => { case SPONSOR_FORM_ITEM_DELETED: { const { itemId } = payload; const items = state.items.filter((it) => it.id !== itemId); - const totalCount = items.length; - return { ...state, items, totalCount }; + return { ...state, items }; } case SPONSOR_FORM_ITEM_ARCHIVED: { const { id: itemId } = payload.response;