summaryrefslogtreecommitdiff
path: root/spec/frontend/deploy_freeze/store/actions_spec.js
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/deploy_freeze/store/actions_spec.js')
-rw-r--r--spec/frontend/deploy_freeze/store/actions_spec.js82
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(),
);
});