import { defaultVesselDetailsState, vesselDetailsReducer } from './vesselDetails.reducer'; import { createVesselFinancialKeyFigures, createVesselGeneralInfo, createVesselPaymentsCollection, createVesselPoolPoints, } from 'app/testUtils/mocks/VesselDetails.mock'; import { vesselDetailsCloseEditPoolPointsParamModal, vesselDetailsOpenEditPoolPointsParamModal, vesselDetailsSetFinancialKeyFigures, vesselDetailsSetGeneralInfo, vesselDetailsSetMorePayments, vesselDetailsSetPaymentCollection, vesselDetailsSetPoolPoints, vesselDetailsSetPoolPointsParamId, } from './vesselDetails.actions'; const initialState = defaultVesselDetailsState; describe('VesselEarnings details reducer tests', () => { it('returns the initial state', () => { expect(vesselDetailsReducer(undefined)).toEqual(initialState); }); it('sets only generalInfo state when vesselDetailsSetGeneralInfo is fired', () => { const vesselGeneralInfoMock = createVesselGeneralInfo()[1]; const expectedState = { ...initialState, generalInfo: vesselGeneralInfoMock, }; const action = vesselDetailsSetGeneralInfo(vesselGeneralInfoMock); expect(vesselDetailsReducer(initialState, action)).toEqual(expectedState); }); it('sets only poolPoints state when vesselDetailsSetPoolPoints is fired', () => { const vesselPoolPointsMock = createVesselPoolPoints(); const expectedState = { ...initialState, poolPoints: { ...initialState.poolPoints, ...vesselPoolPointsMock, }, }; const action = vesselDetailsSetPoolPoints(vesselPoolPointsMock); expect(vesselDetailsReducer(initialState, action)).toEqual(expectedState); }); it('sets only financial key figures state when vesselDetailsSetFinancialKeyFigures is fired', () => { const vesselFinancialKeyFiguresMock = createVesselFinancialKeyFigures(); const expectedState = { ...initialState, financials: { ...initialState.financials, keyFigures: vesselFinancialKeyFiguresMock, }, }; const action = vesselDetailsSetFinancialKeyFigures(vesselFinancialKeyFiguresMock); expect(vesselDetailsReducer(initialState, action)).toEqual(expectedState); }); it('sets only payments collection state when setPaymentsCollection is fired', () => { const vesselPaymentsMock = createVesselPaymentsCollection(); const expectedState = { ...initialState, financials: { ...initialState.financials, payments: { ...initialState.financials.payments, collection: vesselPaymentsMock, }, }, }; const action = vesselDetailsSetPaymentCollection(vesselPaymentsMock); expect(vesselDetailsReducer(initialState, action)).toEqual(expectedState); }); it('sets isMore and moreEndpoint states when setMorePayments is fired', () => { const isMore = false; const moreEndpoint = 'next'; const expectedState = { ...initialState, financials: { ...initialState.financials, payments: { ...initialState.financials.payments, isMore: isMore, moreEndpoint: moreEndpoint, }, }, }; const action = vesselDetailsSetMorePayments({ isMore, moreEndpoint }); expect(vesselDetailsReducer(initialState, action)).toEqual(expectedState); }); it('sets only editParam.opened to true when openEditPoolPointsParamModal is fired', () => { const isOpened = true; const expectedState = { ...initialState, poolPoints: { ...initialState.poolPoints, editParam: { ...initialState.poolPoints.editParam, opened: isOpened, }, }, }; const action = vesselDetailsOpenEditPoolPointsParamModal(); expect(vesselDetailsReducer(initialState, action)).toEqual(expectedState); }); it('sets only editParam.opened to false when closeEditPoolPointsParamModal is fired', () => { const isOpened = false; const expectedState = { ...initialState, poolPoints: { ...initialState.poolPoints, editParam: { ...initialState.poolPoints.editParam, opened: isOpened, }, }, }; const action = vesselDetailsCloseEditPoolPointsParamModal(); expect(vesselDetailsReducer(initialState, action)).toEqual(expectedState); }); it('sets only editParam.id state when closeEditPoolPointsParamModal is fired', () => { const paramId = 1; const expectedState = { ...initialState, poolPoints: { ...initialState.poolPoints, editParam: { ...initialState.poolPoints.editParam, id: paramId, }, }, }; const action = vesselDetailsSetPoolPointsParamId(paramId); expect(vesselDetailsReducer(initialState, action)).toEqual(expectedState); }); });