diff options
Diffstat (limited to 'spec/frontend/cycle_analytics/stage_nav_item_spec.js')
-rw-r--r-- | spec/frontend/cycle_analytics/stage_nav_item_spec.js | 152 |
1 files changed, 0 insertions, 152 deletions
diff --git a/spec/frontend/cycle_analytics/stage_nav_item_spec.js b/spec/frontend/cycle_analytics/stage_nav_item_spec.js deleted file mode 100644 index d577d0b602a..00000000000 --- a/spec/frontend/cycle_analytics/stage_nav_item_spec.js +++ /dev/null @@ -1,152 +0,0 @@ -import { mount, shallowMount } from '@vue/test-utils'; -import StageNavItem from '~/cycle_analytics/components/stage_nav_item.vue'; - -describe('StageNavItem', () => { - let wrapper = null; - const title = 'Cool stage'; - const value = '1 day'; - - function createComponent(props, shallow = true) { - const func = shallow ? shallowMount : mount; - return func(StageNavItem, { - propsData: { - isActive: false, - isUserAllowed: false, - isDefaultStage: true, - title, - value, - ...props, - }, - }); - } - - function hasStageName() { - const stageName = wrapper.find('.stage-name'); - expect(stageName.exists()).toBe(true); - expect(stageName.text()).toEqual(title); - } - - it('renders stage name', () => { - wrapper = createComponent({ isUserAllowed: true }); - hasStageName(); - wrapper.destroy(); - }); - - describe('User has access', () => { - describe('with a value', () => { - beforeEach(() => { - wrapper = createComponent({ isUserAllowed: true }); - }); - - afterEach(() => { - wrapper.destroy(); - }); - it('renders the value for median value', () => { - expect(wrapper.find('.stage-empty').exists()).toBe(false); - expect(wrapper.find('.not-available').exists()).toBe(false); - expect(wrapper.find('.stage-median').text()).toEqual(value); - }); - }); - - describe('without a value', () => { - beforeEach(() => { - wrapper = createComponent({ isUserAllowed: true, value: null }); - }); - - afterEach(() => { - wrapper.destroy(); - }); - - it('has the stage-empty class', () => { - expect(wrapper.find('.stage-empty').exists()).toBe(true); - }); - - it('renders Not enough data for the median value', () => { - expect(wrapper.find('.stage-median').text()).toEqual('Not enough data'); - }); - }); - }); - - describe('is active', () => { - beforeEach(() => { - wrapper = createComponent({ isActive: true }, false); - }); - - afterEach(() => { - wrapper.destroy(); - }); - it('has the active class', () => { - expect(wrapper.find('.stage-nav-item').classes('active')).toBe(true); - }); - }); - - describe('is not active', () => { - beforeEach(() => { - wrapper = createComponent(); - }); - - afterEach(() => { - wrapper.destroy(); - }); - it('emits the `select` event when clicked', () => { - expect(wrapper.emitted().select).toBeUndefined(); - wrapper.trigger('click'); - return wrapper.vm.$nextTick(() => { - expect(wrapper.emitted().select.length).toBe(1); - }); - }); - }); - - describe('User does not have access', () => { - beforeEach(() => { - wrapper = createComponent({ isUserAllowed: false }, false); - }); - - afterEach(() => { - wrapper.destroy(); - }); - it('renders stage name', () => { - hasStageName(); - }); - - it('has class not-available', () => { - expect(wrapper.find('.stage-empty').exists()).toBe(false); - expect(wrapper.find('.not-available').exists()).toBe(true); - }); - - it('renders Not available for the median value', () => { - expect(wrapper.find('.stage-median').text()).toBe('Not available'); - }); - it('does not render options menu', () => { - expect(wrapper.find('[data-testid="more-actions-toggle"]').exists()).toBe(false); - }); - }); - - describe('User can edit stages', () => { - beforeEach(() => { - wrapper = createComponent({ isUserAllowed: true }, false); - }); - - afterEach(() => { - wrapper.destroy(); - }); - it('renders stage name', () => { - hasStageName(); - }); - - it('does not render options menu', () => { - expect(wrapper.find('[data-testid="more-actions-toggle"]').exists()).toBe(false); - }); - - it('can not edit the stage', () => { - expect(wrapper.text()).not.toContain('Edit stage'); - }); - it('can not remove the stage', () => { - expect(wrapper.text()).not.toContain('Remove stage'); - }); - - it('can not hide the stage', () => { - expect(wrapper.text()).not.toContain('Hide stage'); - }); - }); -}); |