diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2019-10-01 09:10:39 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2019-10-01 09:10:39 +0000 |
commit | 1bab0ba591263cd739af2d2c7c3f1b03678a59b6 (patch) | |
tree | 39f499cf5c77338a6c1b94a2cad17153bcb7cada /spec/frontend/releases | |
parent | 2d03845a7606dc48107ac33e7a66a00956e76955 (diff) | |
download | gitlab-ce-1bab0ba591263cd739af2d2c7c3f1b03678a59b6.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/frontend/releases')
-rw-r--r-- | spec/frontend/releases/components/milestone_list_spec.js | 56 | ||||
-rw-r--r-- | spec/frontend/releases/components/release_block_spec.js | 49 | ||||
-rw-r--r-- | spec/frontend/releases/mock_data.js | 2 |
3 files changed, 44 insertions, 63 deletions
diff --git a/spec/frontend/releases/components/milestone_list_spec.js b/spec/frontend/releases/components/milestone_list_spec.js deleted file mode 100644 index f267177ddab..00000000000 --- a/spec/frontend/releases/components/milestone_list_spec.js +++ /dev/null @@ -1,56 +0,0 @@ -import { shallowMount } from '@vue/test-utils'; -import { GlLink } from '@gitlab/ui'; -import MilestoneList from '~/releases/components/milestone_list.vue'; -import Icon from '~/vue_shared/components/icon.vue'; -import _ from 'underscore'; -import { milestones } from '../mock_data'; - -describe('Milestone list', () => { - let wrapper; - - const factory = milestonesProp => { - wrapper = shallowMount(MilestoneList, { - propsData: { - milestones: milestonesProp, - }, - sync: false, - }); - }; - - afterEach(() => { - wrapper.destroy(); - }); - - it('renders the milestone icon', () => { - factory(milestones); - - expect(wrapper.find(Icon).exists()).toBe(true); - }); - - it('renders the label as "Milestone" if only a single milestone is passed in', () => { - factory(milestones.slice(0, 1)); - - expect(wrapper.find('.js-label-text').text()).toEqual('Milestone'); - }); - - it('renders the label as "Milestones" if more than one milestone is passed in', () => { - factory(milestones); - - expect(wrapper.find('.js-label-text').text()).toEqual('Milestones'); - }); - - it('renders a link to the milestone with a tooltip', () => { - const milestone = _.first(milestones); - factory([milestone]); - - const milestoneLink = wrapper.find(GlLink); - - expect(milestoneLink.exists()).toBe(true); - - expect(milestoneLink.text()).toBe(milestone.title); - - expect(milestoneLink.attributes('href')).toBe(milestone.web_url); - - expect(milestoneLink.attributes('data-original-title')).toBe(milestone.description); - }); -}); diff --git a/spec/frontend/releases/components/release_block_spec.js b/spec/frontend/releases/components/release_block_spec.js index 229d3799ee1..5ce85a37121 100644 --- a/spec/frontend/releases/components/release_block_spec.js +++ b/spec/frontend/releases/components/release_block_spec.js @@ -3,6 +3,7 @@ import ReleaseBlock from '~/releases/components/release_block.vue'; import timeagoMixin from '~/vue_shared/mixins/timeago'; import { first } from 'underscore'; import { release } from '../mock_data'; +import Icon from '~/vue_shared/components/icon.vue'; describe('Release block', () => { let wrapper; @@ -15,7 +16,7 @@ describe('Release block', () => { }); }; - const milestoneListExists = () => wrapper.find('.js-milestone-list').exists(); + const milestoneListLabel = () => wrapper.find('.js-milestone-list-label'); afterEach(() => { wrapper.destroy(); @@ -98,20 +99,56 @@ describe('Release block', () => { }); }); - it('renders the milestone list if at least one milestone is associated to the release', () => { - factory(release); + it('renders the milestone icon', () => { + expect( + milestoneListLabel() + .find(Icon) + .exists(), + ).toBe(true); + }); + + it('renders the label as "Milestones" if more than one milestone is passed in', () => { + expect( + milestoneListLabel() + .find('.js-label-text') + .text(), + ).toEqual('Milestones'); + }); + + it('renders a link to the milestone with a tooltip', () => { + const milestone = first(release.milestones); + const milestoneLink = wrapper.find('.js-milestone-link'); + + expect(milestoneLink.exists()).toBe(true); + + expect(milestoneLink.text()).toBe(milestone.title); - expect(milestoneListExists()).toBe(true); + expect(milestoneLink.attributes('href')).toBe(milestone.web_url); + + expect(milestoneLink.attributes('data-original-title')).toBe(milestone.description); }); }); it('does not render the milestone list if no milestones are associated to the release', () => { const releaseClone = JSON.parse(JSON.stringify(release)); - delete releaseClone.milestone; + delete releaseClone.milestones; + + factory(releaseClone); + + expect(milestoneListLabel().exists()).toBe(false); + }); + + it('renders the label as "Milestone" if only a single milestone is passed in', () => { + const releaseClone = JSON.parse(JSON.stringify(release)); + releaseClone.milestones = releaseClone.milestones.slice(0, 1); factory(releaseClone); - expect(milestoneListExists()).toBe(false); + expect( + milestoneListLabel() + .find('.js-label-text') + .text(), + ).toEqual('Milestone'); }); it('renders upcoming release badge', () => { diff --git a/spec/frontend/releases/mock_data.js b/spec/frontend/releases/mock_data.js index aff441e675e..328199343f5 100644 --- a/spec/frontend/releases/mock_data.js +++ b/spec/frontend/releases/mock_data.js @@ -57,7 +57,7 @@ export const release = { committed_date: '2019-08-26T17:47:07.000Z', }, upcoming_release: false, - milestone: milestones[0], + milestones, assets: { count: 5, sources: [ |