Commit 03ce0e54 authored by Nathan Friend's avatar Nathan Friend

Merge branch 'frontend-replace-deploy-freeze-mock_data-with-frontend-fixture' into 'master'

Replace deploy freeze mock_data usage with frontend fixture

See merge request gitlab-org/gitlab!38532
parents 10c47da3 42d8e421
...@@ -4,7 +4,6 @@ import { GlButton, GlModal } from '@gitlab/ui'; ...@@ -4,7 +4,6 @@ import { GlButton, GlModal } from '@gitlab/ui';
import DeployFreezeModal from '~/deploy_freeze/components/deploy_freeze_modal.vue'; import DeployFreezeModal from '~/deploy_freeze/components/deploy_freeze_modal.vue';
import TimezoneDropdown from '~/vue_shared/components/timezone_dropdown.vue'; import TimezoneDropdown from '~/vue_shared/components/timezone_dropdown.vue';
import createStore from '~/deploy_freeze/store'; import createStore from '~/deploy_freeze/store';
import { mockDeployFreezePayload, mockTimezoneData } from '../mock_data';
const localVue = createLocalVue(); const localVue = createLocalVue();
localVue.use(Vuex); localVue.use(Vuex);
...@@ -12,11 +11,13 @@ localVue.use(Vuex); ...@@ -12,11 +11,13 @@ localVue.use(Vuex);
describe('Deploy freeze modal', () => { describe('Deploy freeze modal', () => {
let wrapper; let wrapper;
let store; let store;
const freezePeriodsFixture = getJSONFixture('/api/freeze-periods/freeze_periods.json');
const timezoneDataFixture = getJSONFixture('/api/freeze-periods/timezone_data.json');
beforeEach(() => { beforeEach(() => {
store = createStore({ store = createStore({
projectId: '8', projectId: '8',
timezoneData: mockTimezoneData, timezoneData: timezoneDataFixture,
}); });
wrapper = shallowMount(DeployFreezeModal, { wrapper = shallowMount(DeployFreezeModal, {
attachToDocument: true, attachToDocument: true,
...@@ -57,7 +58,7 @@ describe('Deploy freeze modal', () => { ...@@ -57,7 +58,7 @@ describe('Deploy freeze modal', () => {
describe('Adding a new deploy freeze', () => { describe('Adding a new deploy freeze', () => {
beforeEach(() => { beforeEach(() => {
const { freeze_start, freeze_end, cron_timezone } = mockDeployFreezePayload; const { freeze_start, freeze_end, cron_timezone } = freezePeriodsFixture[0];
setInput(freeze_start, freeze_end, cron_timezone); setInput(freeze_start, freeze_end, cron_timezone);
}); });
...@@ -79,7 +80,7 @@ describe('Deploy freeze modal', () => { ...@@ -79,7 +80,7 @@ describe('Deploy freeze modal', () => {
describe('when the cron state is valid', () => { describe('when the cron state is valid', () => {
beforeEach(() => { beforeEach(() => {
const { freeze_start, freeze_end, cron_timezone } = mockDeployFreezePayload; const { freeze_start, freeze_end, cron_timezone } = freezePeriodsFixture[0];
setInput(freeze_start, freeze_end, cron_timezone); setInput(freeze_start, freeze_end, cron_timezone);
}); });
......
...@@ -3,9 +3,7 @@ import { createLocalVue, shallowMount } from '@vue/test-utils'; ...@@ -3,9 +3,7 @@ import { createLocalVue, shallowMount } from '@vue/test-utils';
import DeployFreezeSettings from '~/deploy_freeze/components/deploy_freeze_settings.vue'; import DeployFreezeSettings from '~/deploy_freeze/components/deploy_freeze_settings.vue';
import DeployFreezeTable from '~/deploy_freeze/components/deploy_freeze_table.vue'; import DeployFreezeTable from '~/deploy_freeze/components/deploy_freeze_table.vue';
import DeployFreezeModal from '~/deploy_freeze/components/deploy_freeze_modal.vue'; import DeployFreezeModal from '~/deploy_freeze/components/deploy_freeze_modal.vue';
import createStore from '~/deploy_freeze/store'; import createStore from '~/deploy_freeze/store';
import { mockTimezoneData } from '../mock_data';
const localVue = createLocalVue(); const localVue = createLocalVue();
localVue.use(Vuex); localVue.use(Vuex);
...@@ -13,11 +11,12 @@ localVue.use(Vuex); ...@@ -13,11 +11,12 @@ localVue.use(Vuex);
describe('Deploy freeze settings', () => { describe('Deploy freeze settings', () => {
let wrapper; let wrapper;
let store; let store;
const timezoneDataFixture = getJSONFixture('/api/freeze-periods/timezone_data.json');
beforeEach(() => { beforeEach(() => {
store = createStore({ store = createStore({
projectId: '8', projectId: '8',
timezoneData: mockTimezoneData, timezoneData: timezoneDataFixture,
}); });
jest.spyOn(store, 'dispatch').mockImplementation(); jest.spyOn(store, 'dispatch').mockImplementation();
wrapper = shallowMount(DeployFreezeSettings, { wrapper = shallowMount(DeployFreezeSettings, {
......
...@@ -2,7 +2,6 @@ import Vuex from 'vuex'; ...@@ -2,7 +2,6 @@ import Vuex from 'vuex';
import { createLocalVue, mount } from '@vue/test-utils'; import { createLocalVue, mount } from '@vue/test-utils';
import DeployFreezeTable from '~/deploy_freeze/components/deploy_freeze_table.vue'; import DeployFreezeTable from '~/deploy_freeze/components/deploy_freeze_table.vue';
import createStore from '~/deploy_freeze/store'; import createStore from '~/deploy_freeze/store';
import { mockFreezePeriods, mockTimezoneData } from '../mock_data';
const localVue = createLocalVue(); const localVue = createLocalVue();
localVue.use(Vuex); localVue.use(Vuex);
...@@ -10,11 +9,12 @@ localVue.use(Vuex); ...@@ -10,11 +9,12 @@ localVue.use(Vuex);
describe('Deploy freeze table', () => { describe('Deploy freeze table', () => {
let wrapper; let wrapper;
let store; let store;
const timezoneDataFixture = getJSONFixture('/api/freeze-periods/timezone_data.json');
const createComponent = () => { const createComponent = () => {
store = createStore({ store = createStore({
projectId: '8', projectId: '8',
timezoneData: mockTimezoneData, timezoneData: timezoneDataFixture,
}); });
jest.spyOn(store, 'dispatch').mockImplementation(); jest.spyOn(store, 'dispatch').mockImplementation();
wrapper = mount(DeployFreezeTable, { wrapper = mount(DeployFreezeTable, {
...@@ -50,11 +50,12 @@ describe('Deploy freeze table', () => { ...@@ -50,11 +50,12 @@ describe('Deploy freeze table', () => {
}); });
it('displays data', () => { it('displays data', () => {
store.state.freezePeriods = mockFreezePeriods; const freezePeriodsFixture = getJSONFixture('/api/freeze-periods/freeze_periods.json');
store.state.freezePeriods = freezePeriodsFixture;
return wrapper.vm.$nextTick(() => { return wrapper.vm.$nextTick(() => {
const tableRows = findDeployFreezeTable().findAll('tbody tr'); const tableRows = findDeployFreezeTable().findAll('tbody tr');
expect(tableRows.length).toBe(mockFreezePeriods.length); expect(tableRows.length).toBe(freezePeriodsFixture.length);
expect(findEmptyFreezePeriods().exists()).toBe(false); expect(findEmptyFreezePeriods().exists()).toBe(false);
}); });
}); });
......
...@@ -2,7 +2,6 @@ import Vuex from 'vuex'; ...@@ -2,7 +2,6 @@ import Vuex from 'vuex';
import TimezoneDropdown from '~/vue_shared/components/timezone_dropdown.vue'; import TimezoneDropdown from '~/vue_shared/components/timezone_dropdown.vue';
import { shallowMount, createLocalVue } from '@vue/test-utils'; import { shallowMount, createLocalVue } from '@vue/test-utils';
import createStore from '~/deploy_freeze/store'; import createStore from '~/deploy_freeze/store';
import { mockTimezoneData } from '../mock_data';
import { GlDeprecatedDropdownItem, GlNewDropdown } from '@gitlab/ui'; import { GlDeprecatedDropdownItem, GlNewDropdown } from '@gitlab/ui';
...@@ -12,18 +11,19 @@ localVue.use(Vuex); ...@@ -12,18 +11,19 @@ localVue.use(Vuex);
describe('Deploy freeze timezone dropdown', () => { describe('Deploy freeze timezone dropdown', () => {
let wrapper; let wrapper;
let store; let store;
const timezoneDataFixture = getJSONFixture('/api/freeze-periods/timezone_data.json');
const createComponent = (searchTerm, selectedTimezone) => { const createComponent = (searchTerm, selectedTimezone) => {
store = createStore({ store = createStore({
projectId: '8', projectId: '8',
timezoneData: mockTimezoneData, timezoneData: timezoneDataFixture,
}); });
wrapper = shallowMount(TimezoneDropdown, { wrapper = shallowMount(TimezoneDropdown, {
store, store,
localVue, localVue,
propsData: { propsData: {
value: selectedTimezone, value: selectedTimezone,
timezoneData: mockTimezoneData, timezoneData: timezoneDataFixture,
}, },
}); });
...@@ -54,7 +54,7 @@ describe('Deploy freeze timezone dropdown', () => { ...@@ -54,7 +54,7 @@ describe('Deploy freeze timezone dropdown', () => {
}); });
it('renders all timezones when search term is empty', () => { it('renders all timezones when search term is empty', () => {
expect(findAllDropdownItems()).toHaveLength(mockTimezoneData.length); expect(findAllDropdownItems()).toHaveLength(timezoneDataFixture.length);
}); });
}); });
......
export const mockDeployFreezePayload = {
freeze_start: '0 12 * * 1-5',
freeze_end: '0 12 * * 6',
cron_timezone: 'Etc/UTC',
};
export const mockFreezePeriods = [
{
id: 3,
freeze_start: '5 4 * * *',
freeze_end: '5 9 * 8 *',
cron_timezone: 'America/New_York',
created_at: '2020-07-10T05:10:35.122Z',
updated_at: '2020-07-10T05:10:35.122Z',
},
{
id: 8,
freeze_start: '0 12 * * 1-5',
freeze_end: '0 1 5 * *',
cron_timezone: 'Etc/UTC',
created_at: '2020-07-10T19:27:57.378Z',
updated_at: '2020-07-10T19:27:57.378Z',
},
{
id: 9,
freeze_start: '0 12 * * 1-5',
freeze_end: '0 16 * * 6',
cron_timezone: 'Europe/Berlin',
created_at: '2020-07-10T19:29:15.240Z',
updated_at: '2020-07-10T19:29:15.240Z',
},
];
export const mockTimezoneData = [
{ name: 'International Date Line West', offset: -43200, identifier: 'Etc/GMT+12' },
{ name: 'American Samoa', offset: -39600, identifier: 'Pacific/Pago_Pago' },
{ name: 'Midway Island', offset: -39600, identifier: 'Pacific/Midway' },
{ name: 'Hawaii', offset: -36000, identifier: 'Pacific/Honolulu' },
{ name: 'Alaska', offset: -28800, identifier: 'America/Juneau' },
{ name: 'Pacific Time (US & Canada)', offset: -25200, identifier: 'America/Los_Angeles' },
{ name: 'Tijuana', offset: -25200, identifier: 'America/Tijuana' },
{ name: 'Arizona', offset: -25200, identifier: 'America/Phoenix' },
{ name: 'Chihuahua', offset: -21600, identifier: 'America/Chihuahua' },
{ name: 'Mazatlan', offset: -21600, identifier: 'America/Mazatlan' },
{ name: 'Mountain Time (US & Canada)', offset: -21600, identifier: 'America/Denver' },
{ name: 'Central America', offset: -21600, identifier: 'America/Guatemala' },
{ name: 'Central Time (US & Canada)', offset: -18000, identifier: 'America/Chicago' },
{ name: 'Guadalajara', offset: -18000, identifier: 'America/Mexico_City' },
{ name: 'Mexico City', offset: -18000, identifier: 'America/Mexico_City' },
{ name: 'Monterrey', offset: -18000, identifier: 'America/Monterrey' },
{ name: 'Saskatchewan', offset: -21600, identifier: 'America/Regina' },
{ name: 'Bogota', offset: -18000, identifier: 'America/Bogota' },
{ name: 'Eastern Time (US & Canada)', offset: -14400, identifier: 'America/New_York' },
{ name: 'Indiana (East)', offset: -14400, identifier: 'America/Indiana/Indianapolis' },
{ name: 'Lima', offset: -18000, identifier: 'America/Lima' },
{ name: 'Quito', offset: -18000, identifier: 'America/Lima' },
{ name: 'Atlantic Time (Canada)', offset: -10800, identifier: 'America/Halifax' },
{ name: 'Caracas', offset: -14400, identifier: 'America/Caracas' },
{ name: 'Georgetown', offset: -14400, identifier: 'America/Guyana' },
{ name: 'La Paz', offset: -14400, identifier: 'America/La_Paz' },
{ name: 'Puerto Rico', offset: -14400, identifier: 'America/Puerto_Rico' },
{ name: 'Santiago', offset: -14400, identifier: 'America/Santiago' },
{ name: 'Newfoundland', offset: -9000, identifier: 'America/St_Johns' },
{ name: 'Brasilia', offset: -10800, identifier: 'America/Sao_Paulo' },
{ name: 'Buenos Aires', offset: -10800, identifier: 'America/Argentina/Buenos_Aires' },
{ name: 'Greenland', offset: -7200, identifier: 'America/Godthab' },
{ name: 'Montevideo', offset: -10800, identifier: 'America/Montevideo' },
{ name: 'Mid-Atlantic', offset: -7200, identifier: 'Atlantic/South_Georgia' },
{ name: 'Azores', offset: 0, identifier: 'Atlantic/Azores' },
{ name: 'Cape Verde Is.', offset: -3600, identifier: 'Atlantic/Cape_Verde' },
{ name: 'Casablanca', offset: 3600, identifier: 'Africa/Casablanca' },
{ name: 'Dublin', offset: 3600, identifier: 'Europe/Dublin' },
{ name: 'Edinburgh', offset: 3600, identifier: 'Europe/London' },
{ name: 'Lisbon', offset: 3600, identifier: 'Europe/Lisbon' },
{ name: 'London', offset: 3600, identifier: 'Europe/London' },
{ name: 'Monrovia', offset: 0, identifier: 'Africa/Monrovia' },
{ name: 'UTC', offset: 0, identifier: 'Etc/UTC' },
{ name: 'Amsterdam', offset: 7200, identifier: 'Europe/Amsterdam' },
{ name: 'Belgrade', offset: 7200, identifier: 'Europe/Belgrade' },
{ name: 'Berlin', offset: 7200, identifier: 'Europe/Berlin' },
{ name: 'Bern', offset: 7200, identifier: 'Europe/Zurich' },
{ name: 'Bratislava', offset: 7200, identifier: 'Europe/Bratislava' },
{ name: 'Brussels', offset: 7200, identifier: 'Europe/Brussels' },
{ name: 'Budapest', offset: 7200, identifier: 'Europe/Budapest' },
{ name: 'Copenhagen', offset: 7200, identifier: 'Europe/Copenhagen' },
{ name: 'Ljubljana', offset: 7200, identifier: 'Europe/Ljubljana' },
{ name: 'Madrid', offset: 7200, identifier: 'Europe/Madrid' },
{ name: 'Paris', offset: 7200, identifier: 'Europe/Paris' },
{ name: 'Prague', offset: 7200, identifier: 'Europe/Prague' },
{ name: 'Rome', offset: 7200, identifier: 'Europe/Rome' },
{ name: 'Sarajevo', offset: 7200, identifier: 'Europe/Sarajevo' },
{ name: 'Skopje', offset: 7200, identifier: 'Europe/Skopje' },
{ name: 'Stockholm', offset: 7200, identifier: 'Europe/Stockholm' },
{ name: 'Vienna', offset: 7200, identifier: 'Europe/Vienna' },
{ name: 'Warsaw', offset: 7200, identifier: 'Europe/Warsaw' },
{ name: 'West Central Africa', offset: 3600, identifier: 'Africa/Algiers' },
{ name: 'Zagreb', offset: 7200, identifier: 'Europe/Zagreb' },
{ name: 'Zurich', offset: 7200, identifier: 'Europe/Zurich' },
{ name: 'Athens', offset: 10800, identifier: 'Europe/Athens' },
{ name: 'Bucharest', offset: 10800, identifier: 'Europe/Bucharest' },
{ name: 'Cairo', offset: 7200, identifier: 'Africa/Cairo' },
{ name: 'Harare', offset: 7200, identifier: 'Africa/Harare' },
{ name: 'Helsinki', offset: 10800, identifier: 'Europe/Helsinki' },
{ name: 'Jerusalem', offset: 10800, identifier: 'Asia/Jerusalem' },
{ name: 'Kaliningrad', offset: 7200, identifier: 'Europe/Kaliningrad' },
{ name: 'Kyiv', offset: 10800, identifier: 'Europe/Kiev' },
{ name: 'Pretoria', offset: 7200, identifier: 'Africa/Johannesburg' },
{ name: 'Riga', offset: 10800, identifier: 'Europe/Riga' },
{ name: 'Sofia', offset: 10800, identifier: 'Europe/Sofia' },
{ name: 'Tallinn', offset: 10800, identifier: 'Europe/Tallinn' },
{ name: 'Vilnius', offset: 10800, identifier: 'Europe/Vilnius' },
{ name: 'Baghdad', offset: 10800, identifier: 'Asia/Baghdad' },
{ name: 'Istanbul', offset: 10800, identifier: 'Europe/Istanbul' },
{ name: 'Kuwait', offset: 10800, identifier: 'Asia/Kuwait' },
{ name: 'Minsk', offset: 10800, identifier: 'Europe/Minsk' },
{ name: 'Moscow', offset: 10800, identifier: 'Europe/Moscow' },
{ name: 'Nairobi', offset: 10800, identifier: 'Africa/Nairobi' },
{ name: 'Riyadh', offset: 10800, identifier: 'Asia/Riyadh' },
{ name: 'St. Petersburg', offset: 10800, identifier: 'Europe/Moscow' },
{ name: 'Tehran', offset: 16200, identifier: 'Asia/Tehran' },
{ name: 'Abu Dhabi', offset: 14400, identifier: 'Asia/Muscat' },
{ name: 'Baku', offset: 14400, identifier: 'Asia/Baku' },
{ name: 'Muscat', offset: 14400, identifier: 'Asia/Muscat' },
{ name: 'Samara', offset: 14400, identifier: 'Europe/Samara' },
{ name: 'Tbilisi', offset: 14400, identifier: 'Asia/Tbilisi' },
{ name: 'Volgograd', offset: 14400, identifier: 'Europe/Volgograd' },
{ name: 'Yerevan', offset: 14400, identifier: 'Asia/Yerevan' },
{ name: 'Kabul', offset: 16200, identifier: 'Asia/Kabul' },
{ name: 'Ekaterinburg', offset: 18000, identifier: 'Asia/Yekaterinburg' },
{ name: 'Islamabad', offset: 18000, identifier: 'Asia/Karachi' },
{ name: 'Karachi', offset: 18000, identifier: 'Asia/Karachi' },
{ name: 'Tashkent', offset: 18000, identifier: 'Asia/Tashkent' },
{ name: 'Chennai', offset: 19800, identifier: 'Asia/Kolkata' },
{ name: 'Kolkata', offset: 19800, identifier: 'Asia/Kolkata' },
{ name: 'Mumbai', offset: 19800, identifier: 'Asia/Kolkata' },
{ name: 'New Delhi', offset: 19800, identifier: 'Asia/Kolkata' },
{ name: 'Sri Jayawardenepura', offset: 19800, identifier: 'Asia/Colombo' },
{ name: 'Kathmandu', offset: 20700, identifier: 'Asia/Kathmandu' },
{ name: 'Almaty', offset: 21600, identifier: 'Asia/Almaty' },
{ name: 'Astana', offset: 21600, identifier: 'Asia/Dhaka' },
{ name: 'Dhaka', offset: 21600, identifier: 'Asia/Dhaka' },
{ name: 'Urumqi', offset: 21600, identifier: 'Asia/Urumqi' },
{ name: 'Rangoon', offset: 23400, identifier: 'Asia/Rangoon' },
{ name: 'Bangkok', offset: 25200, identifier: 'Asia/Bangkok' },
{ name: 'Hanoi', offset: 25200, identifier: 'Asia/Bangkok' },
{ name: 'Jakarta', offset: 25200, identifier: 'Asia/Jakarta' },
{ name: 'Krasnoyarsk', offset: 25200, identifier: 'Asia/Krasnoyarsk' },
{ name: 'Novosibirsk', offset: 25200, identifier: 'Asia/Novosibirsk' },
{ name: 'Beijing', offset: 28800, identifier: 'Asia/Shanghai' },
{ name: 'Chongqing', offset: 28800, identifier: 'Asia/Chongqing' },
{ name: 'Hong Kong', offset: 28800, identifier: 'Asia/Hong_Kong' },
{ name: 'Irkutsk', offset: 28800, identifier: 'Asia/Irkutsk' },
{ name: 'Kuala Lumpur', offset: 28800, identifier: 'Asia/Kuala_Lumpur' },
{ name: 'Perth', offset: 28800, identifier: 'Australia/Perth' },
{ name: 'Singapore', offset: 28800, identifier: 'Asia/Singapore' },
{ name: 'Taipei', offset: 28800, identifier: 'Asia/Taipei' },
{ name: 'Ulaanbaatar', offset: 28800, identifier: 'Asia/Ulaanbaatar' },
{ name: 'Osaka', offset: 32400, identifier: 'Asia/Tokyo' },
{ name: 'Sapporo', offset: 32400, identifier: 'Asia/Tokyo' },
{ name: 'Seoul', offset: 32400, identifier: 'Asia/Seoul' },
{ name: 'Tokyo', offset: 32400, identifier: 'Asia/Tokyo' },
{ name: 'Yakutsk', offset: 32400, identifier: 'Asia/Yakutsk' },
{ name: 'Adelaide', offset: 34200, identifier: 'Australia/Adelaide' },
{ name: 'Darwin', offset: 34200, identifier: 'Australia/Darwin' },
{ name: 'Brisbane', offset: 36000, identifier: 'Australia/Brisbane' },
{ name: 'Canberra', offset: 36000, identifier: 'Australia/Melbourne' },
{ name: 'Guam', offset: 36000, identifier: 'Pacific/Guam' },
{ name: 'Hobart', offset: 36000, identifier: 'Australia/Hobart' },
{ name: 'Melbourne', offset: 36000, identifier: 'Australia/Melbourne' },
{ name: 'Port Moresby', offset: 36000, identifier: 'Pacific/Port_Moresby' },
{ name: 'Sydney', offset: 36000, identifier: 'Australia/Sydney' },
{ name: 'Vladivostok', offset: 36000, identifier: 'Asia/Vladivostok' },
{ name: 'Magadan', offset: 39600, identifier: 'Asia/Magadan' },
{ name: 'New Caledonia', offset: 39600, identifier: 'Pacific/Noumea' },
{ name: 'Solomon Is.', offset: 39600, identifier: 'Pacific/Guadalcanal' },
{ name: 'Srednekolymsk', offset: 39600, identifier: 'Asia/Srednekolymsk' },
{ name: 'Auckland', offset: 43200, identifier: 'Pacific/Auckland' },
{ name: 'Fiji', offset: 43200, identifier: 'Pacific/Fiji' },
{ name: 'Kamchatka', offset: 43200, identifier: 'Asia/Kamchatka' },
{ name: 'Marshall Is.', offset: 43200, identifier: 'Pacific/Majuro' },
{ name: 'Wellington', offset: 43200, identifier: 'Pacific/Auckland' },
{ name: 'Chatham Is.', offset: 45900, identifier: 'Pacific/Chatham' },
{ name: "Nuku'alofa", offset: 46800, identifier: 'Pacific/Tongatapu' },
{ name: 'Samoa', offset: 46800, identifier: 'Pacific/Apia' },
{ name: 'Tokelau Is.', offset: 46800, identifier: 'Pacific/Fakaofo' },
];
...@@ -6,7 +6,6 @@ import createFlash from '~/flash'; ...@@ -6,7 +6,6 @@ import createFlash from '~/flash';
import getInitialState from '~/deploy_freeze/store/state'; import getInitialState from '~/deploy_freeze/store/state';
import * as actions from '~/deploy_freeze/store/actions'; import * as actions from '~/deploy_freeze/store/actions';
import * as types from '~/deploy_freeze/store/mutation_types'; import * as types from '~/deploy_freeze/store/mutation_types';
import { mockTimezoneData, mockFreezePeriods } from '../mock_data';
jest.mock('~/api.js'); jest.mock('~/api.js');
jest.mock('~/flash.js'); jest.mock('~/flash.js');
...@@ -14,14 +13,16 @@ jest.mock('~/flash.js'); ...@@ -14,14 +13,16 @@ jest.mock('~/flash.js');
describe('deploy freeze store actions', () => { describe('deploy freeze store actions', () => {
let mock; let mock;
let state; let state;
const freezePeriodsFixture = getJSONFixture('/api/freeze-periods/freeze_periods.json');
const timezoneDataFixture = getJSONFixture('/api/freeze-periods/timezone_data.json');
beforeEach(() => { beforeEach(() => {
mock = new MockAdapter(axios); mock = new MockAdapter(axios);
state = getInitialState({ state = getInitialState({
projectId: '8', projectId: '8',
timezoneData: mockTimezoneData, timezoneData: timezoneDataFixture,
}); });
Api.freezePeriods.mockResolvedValue({ data: mockFreezePeriods }); Api.freezePeriods.mockResolvedValue({ data: freezePeriodsFixture });
Api.createFreezePeriod.mockResolvedValue(); Api.createFreezePeriod.mockResolvedValue();
}); });
...@@ -97,7 +98,7 @@ describe('deploy freeze store actions', () => { ...@@ -97,7 +98,7 @@ describe('deploy freeze store actions', () => {
state, state,
[ [
{ type: types.REQUEST_FREEZE_PERIODS }, { type: types.REQUEST_FREEZE_PERIODS },
{ type: types.RECEIVE_FREEZE_PERIODS_SUCCESS, payload: mockFreezePeriods }, { type: types.RECEIVE_FREEZE_PERIODS_SUCCESS, payload: freezePeriodsFixture },
], ],
[], [],
); );
......
import state from '~/deploy_freeze/store/state'; import state from '~/deploy_freeze/store/state';
import mutations from '~/deploy_freeze/store/mutations'; import mutations from '~/deploy_freeze/store/mutations';
import * as types from '~/deploy_freeze/store/mutation_types'; import * as types from '~/deploy_freeze/store/mutation_types';
import { mockFreezePeriods, mockTimezoneData } from '../mock_data';
import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils'; import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils';
describe('Deploy freeze mutations', () => { describe('Deploy freeze mutations', () => {
let stateCopy; let stateCopy;
const timezoneDataFixture = getJSONFixture('/api/freeze-periods/timezone_data.json');
beforeEach(() => { beforeEach(() => {
stateCopy = state({ stateCopy = state({
projectId: '8', projectId: '8',
timezoneData: mockTimezoneData, timezoneData: timezoneDataFixture,
}); });
}); });
...@@ -26,11 +27,12 @@ describe('Deploy freeze mutations', () => { ...@@ -26,11 +27,12 @@ describe('Deploy freeze mutations', () => {
describe('RECEIVE_FREEZE_PERIODS_SUCCESS', () => { describe('RECEIVE_FREEZE_PERIODS_SUCCESS', () => {
it('should set freeze periods and format timezones from identifiers to names', () => { it('should set freeze periods and format timezones from identifiers to names', () => {
const timezoneNames = ['Eastern Time (US & Canada)', 'UTC', 'Berlin']; const timezoneNames = ['Berlin', 'UTC', 'Eastern Time (US & Canada)'];
const freezePeriodsFixture = getJSONFixture('/api/freeze-periods/freeze_periods.json');
mutations[types.RECEIVE_FREEZE_PERIODS_SUCCESS](stateCopy, mockFreezePeriods); mutations[types.RECEIVE_FREEZE_PERIODS_SUCCESS](stateCopy, freezePeriodsFixture);
const expectedFreezePeriods = mockFreezePeriods.map((freezePeriod, index) => ({ const expectedFreezePeriods = freezePeriodsFixture.map((freezePeriod, index) => ({
...convertObjectPropsToCamelCase(freezePeriod), ...convertObjectPropsToCamelCase(freezePeriod),
cronTimezone: timezoneNames[index], cronTimezone: timezoneNames[index],
})); }));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment