diff options
Diffstat (limited to 'spec/frontend/deploy_freeze/components')
4 files changed, 9 insertions, 109 deletions
diff --git a/spec/frontend/deploy_freeze/components/deploy_freeze_modal_spec.js b/spec/frontend/deploy_freeze/components/deploy_freeze_modal_spec.js index bbafdc000db..113e0d8f60d 100644 --- a/spec/frontend/deploy_freeze/components/deploy_freeze_modal_spec.js +++ b/spec/frontend/deploy_freeze/components/deploy_freeze_modal_spec.js @@ -5,8 +5,9 @@ import Vuex from 'vuex'; import Api from '~/api'; import DeployFreezeModal from '~/deploy_freeze/components/deploy_freeze_modal.vue'; import createStore from '~/deploy_freeze/store'; -import TimezoneDropdown from '~/vue_shared/components/timezone_dropdown.vue'; -import { freezePeriodsFixture, timezoneDataFixture } from '../helpers'; +import TimezoneDropdown from '~/vue_shared/components/timezone_dropdown/timezone_dropdown.vue'; +import { freezePeriodsFixture } from '../helpers'; +import { timezoneDataFixture } from '../../vue_shared/components/timezone_dropdown/helpers'; jest.mock('~/api'); @@ -52,7 +53,7 @@ describe('Deploy freeze modal', () => { describe('Basic interactions', () => { it('button is disabled when freeze period is invalid', () => { - expect(submitDeployFreezeButton().attributes('disabled')).toBeTruthy(); + expect(submitDeployFreezeButton().attributes('disabled')).toBe('true'); }); }); @@ -92,7 +93,7 @@ describe('Deploy freeze modal', () => { }); it('disables the add deploy freeze button', () => { - expect(submitDeployFreezeButton().attributes('disabled')).toBeTruthy(); + expect(submitDeployFreezeButton().attributes('disabled')).toBe('true'); }); }); @@ -103,7 +104,7 @@ describe('Deploy freeze modal', () => { }); it('does not disable the submit button', () => { - expect(submitDeployFreezeButton().attributes('disabled')).toBeFalsy(); + expect(submitDeployFreezeButton().attributes('disabled')).toBeUndefined(); }); }); }); diff --git a/spec/frontend/deploy_freeze/components/deploy_freeze_settings_spec.js b/spec/frontend/deploy_freeze/components/deploy_freeze_settings_spec.js index 637efe30022..27d8fea9d5e 100644 --- a/spec/frontend/deploy_freeze/components/deploy_freeze_settings_spec.js +++ b/spec/frontend/deploy_freeze/components/deploy_freeze_settings_spec.js @@ -5,7 +5,7 @@ import DeployFreezeModal from '~/deploy_freeze/components/deploy_freeze_modal.vu import DeployFreezeSettings from '~/deploy_freeze/components/deploy_freeze_settings.vue'; import DeployFreezeTable from '~/deploy_freeze/components/deploy_freeze_table.vue'; import createStore from '~/deploy_freeze/store'; -import { timezoneDataFixture } from '../helpers'; +import { timezoneDataFixture } from '../../vue_shared/components/timezone_dropdown/helpers'; Vue.use(Vuex); diff --git a/spec/frontend/deploy_freeze/components/deploy_freeze_table_spec.js b/spec/frontend/deploy_freeze/components/deploy_freeze_table_spec.js index 137776edfab..c2d6eb399bc 100644 --- a/spec/frontend/deploy_freeze/components/deploy_freeze_table_spec.js +++ b/spec/frontend/deploy_freeze/components/deploy_freeze_table_spec.js @@ -5,7 +5,8 @@ import Vuex from 'vuex'; import DeployFreezeTable from '~/deploy_freeze/components/deploy_freeze_table.vue'; import createStore from '~/deploy_freeze/store'; import { RECEIVE_FREEZE_PERIODS_SUCCESS } from '~/deploy_freeze/store/mutation_types'; -import { freezePeriodsFixture, timezoneDataFixture } from '../helpers'; +import { freezePeriodsFixture } from '../helpers'; +import { timezoneDataFixture } from '../../vue_shared/components/timezone_dropdown/helpers'; Vue.use(Vuex); diff --git a/spec/frontend/deploy_freeze/components/timezone_dropdown_spec.js b/spec/frontend/deploy_freeze/components/timezone_dropdown_spec.js deleted file mode 100644 index 567d18f8b92..00000000000 --- a/spec/frontend/deploy_freeze/components/timezone_dropdown_spec.js +++ /dev/null @@ -1,102 +0,0 @@ -import { GlDropdownItem, GlDropdown } from '@gitlab/ui'; -import { shallowMount } from '@vue/test-utils'; -import Vue from 'vue'; -import Vuex from 'vuex'; -import createStore from '~/deploy_freeze/store'; -import TimezoneDropdown from '~/vue_shared/components/timezone_dropdown.vue'; -import { findTzByName, formatTz, timezoneDataFixture } from '../helpers'; - -Vue.use(Vuex); - -describe('Deploy freeze timezone dropdown', () => { - let wrapper; - let store; - - const createComponent = (searchTerm, selectedTimezone) => { - store = createStore({ - projectId: '8', - timezoneData: timezoneDataFixture, - }); - wrapper = shallowMount(TimezoneDropdown, { - store, - propsData: { - value: selectedTimezone, - timezoneData: timezoneDataFixture, - }, - }); - - // setData usage is discouraged. See https://gitlab.com/groups/gitlab-org/-/epics/7330 for details - // eslint-disable-next-line no-restricted-syntax - wrapper.setData({ searchTerm }); - }; - - const findAllDropdownItems = () => wrapper.findAllComponents(GlDropdownItem); - const findDropdownItemByIndex = (index) => wrapper.findAllComponents(GlDropdownItem).at(index); - - afterEach(() => { - wrapper.destroy(); - wrapper = null; - }); - - describe('No time zones found', () => { - beforeEach(() => { - createComponent('UTC timezone'); - }); - - it('renders empty results message', () => { - expect(findDropdownItemByIndex(0).text()).toBe('No matching results'); - }); - }); - - describe('Search term is empty', () => { - beforeEach(() => { - createComponent(''); - }); - - it('renders all timezones when search term is empty', () => { - expect(findAllDropdownItems()).toHaveLength(timezoneDataFixture.length); - }); - }); - - describe('Time zones found', () => { - beforeEach(() => { - createComponent('Alaska'); - }); - - it('renders only the time zone searched for', () => { - const selectedTz = findTzByName('Alaska'); - expect(findAllDropdownItems()).toHaveLength(1); - expect(findDropdownItemByIndex(0).text()).toBe(formatTz(selectedTz)); - }); - - it('should not display empty results message', () => { - expect(wrapper.find('[data-testid="noMatchingResults"]').exists()).toBe(false); - }); - - describe('Custom events', () => { - const selectedTz = findTzByName('Alaska'); - - it('should emit input if a time zone is clicked', () => { - findDropdownItemByIndex(0).vm.$emit('click'); - expect(wrapper.emitted('input')).toEqual([ - [ - { - formattedTimezone: formatTz(selectedTz), - identifier: selectedTz.identifier, - }, - ], - ]); - }); - }); - }); - - describe('Selected time zone', () => { - beforeEach(() => { - createComponent('', 'Alaska'); - }); - - it('renders selected time zone as dropdown label', () => { - expect(wrapper.findComponent(GlDropdown).vm.text).toBe('Alaska'); - }); - }); -}); |