diff options
Diffstat (limited to 'spec/frontend/deploy_freeze/store/actions_spec.js')
-rw-r--r-- | spec/frontend/deploy_freeze/store/actions_spec.js | 82 |
1 files changed, 79 insertions, 3 deletions
diff --git a/spec/frontend/deploy_freeze/store/actions_spec.js b/spec/frontend/deploy_freeze/store/actions_spec.js index f4d9802e39a..9c784f3c5a2 100644 --- a/spec/frontend/deploy_freeze/store/actions_spec.js +++ b/spec/frontend/deploy_freeze/store/actions_spec.js @@ -23,12 +23,46 @@ describe('deploy freeze store actions', () => { }); Api.freezePeriods.mockResolvedValue({ data: freezePeriodsFixture }); Api.createFreezePeriod.mockResolvedValue(); + Api.updateFreezePeriod.mockResolvedValue(); }); afterEach(() => { mock.restore(); }); + describe('setSelectedFreezePeriod', () => { + it('commits SET_SELECTED_TIMEZONE mutation', () => { + testAction( + actions.setFreezePeriod, + { + id: 3, + cronTimezone: 'UTC', + freezeStart: 'start', + freezeEnd: 'end', + }, + {}, + [ + { + payload: 3, + type: types.SET_SELECTED_ID, + }, + { + payload: 'UTC', + type: types.SET_SELECTED_TIMEZONE, + }, + { + payload: 'start', + type: types.SET_FREEZE_START_CRON, + }, + { + payload: 'end', + type: types.SET_FREEZE_END_CRON, + }, + ], + ); + }); + }); + describe('setSelectedTimezone', () => { it('commits SET_SELECTED_TIMEZONE mutation', () => { testAction(actions.setSelectedTimezone, {}, {}, [ @@ -68,10 +102,16 @@ describe('deploy freeze store actions', () => { state, [{ type: 'RESET_MODAL' }], [ - { type: 'requestAddFreezePeriod' }, - { type: 'receiveAddFreezePeriodSuccess' }, + { type: 'requestFreezePeriod' }, + { type: 'receiveFreezePeriodSuccess' }, { type: 'fetchFreezePeriods' }, ], + () => + expect(Api.createFreezePeriod).toHaveBeenCalledWith(state.projectId, { + freeze_start: state.freezeStartCron, + freeze_end: state.freezeEndCron, + cron_timezone: state.selectedTimezoneIdentifier, + }), ); }); @@ -83,7 +123,43 @@ describe('deploy freeze store actions', () => { {}, state, [], - [{ type: 'requestAddFreezePeriod' }, { type: 'receiveAddFreezePeriodError' }], + [{ type: 'requestFreezePeriod' }, { type: 'receiveFreezePeriodError' }], + () => expect(createFlash).toHaveBeenCalled(), + ); + }); + }); + + describe('updateFreezePeriod', () => { + it('dispatch correct actions on updating a freeze period', () => { + testAction( + actions.updateFreezePeriod, + {}, + state, + [{ type: 'RESET_MODAL' }], + [ + { type: 'requestFreezePeriod' }, + { type: 'receiveFreezePeriodSuccess' }, + { type: 'fetchFreezePeriods' }, + ], + () => + expect(Api.updateFreezePeriod).toHaveBeenCalledWith(state.projectId, { + id: state.selectedId, + freeze_start: state.freezeStartCron, + freeze_end: state.freezeEndCron, + cron_timezone: state.selectedTimezoneIdentifier, + }), + ); + }); + + it('should show flash error and set error in state on add failure', () => { + Api.updateFreezePeriod.mockRejectedValue(); + + testAction( + actions.updateFreezePeriod, + {}, + state, + [], + [{ type: 'requestFreezePeriod' }, { type: 'receiveFreezePeriodError' }], () => expect(createFlash).toHaveBeenCalled(), ); }); |