diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-02-17 18:09:01 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-02-17 18:09:01 +0300 |
commit | b304a72312465ed4c0a568ee6a6ea5e97f705c9b (patch) | |
tree | a2f25dbea26c81e88b169c55a6275e3969323e82 /spec/javascripts | |
parent | b84eeb256c4a780d902faee1f99ca9a711b3214a (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/javascripts')
4 files changed, 71 insertions, 59 deletions
diff --git a/spec/javascripts/vue_mr_widget/mock_data.js b/spec/javascripts/vue_mr_widget/mock_data.js index 4db6b421200..2eaba46cdce 100644 --- a/spec/javascripts/vue_mr_widget/mock_data.js +++ b/spec/javascripts/vue_mr_widget/mock_data.js @@ -16,6 +16,7 @@ export default { updated_at: '2017-04-07T15:39:25.852Z', time_estimate: 0, total_time_spent: 0, + human_access: 'Maintainer', human_time_estimate: null, human_total_time_spent: null, in_progress_merge_commit_sha: null, @@ -34,6 +35,7 @@ export default { target_branch: 'master', target_project_id: 19, target_project_full_path: '/group2/project2', + merge_request_add_ci_config_path: '/group2/project2/new/pipeline', metrics: { merged_by: { name: 'Administrator', diff --git a/spec/javascripts/vue_mr_widget/mr_widget_options_spec.js b/spec/javascripts/vue_mr_widget/mr_widget_options_spec.js index 296be43f793..35c1495be58 100644 --- a/spec/javascripts/vue_mr_widget/mr_widget_options_spec.js +++ b/spec/javascripts/vue_mr_widget/mr_widget_options_spec.js @@ -94,6 +94,61 @@ describe('mrWidgetOptions', () => { }); }); + describe('shouldSuggestPipelines', () => { + describe('given suggestPipeline feature flag is enabled', () => { + beforeEach(() => { + gon.features = { suggestPipeline: true }; + vm = mountComponent(MrWidgetOptions, { + mrData: { ...mockData }, + }); + }); + + afterEach(() => { + gon.features = {}; + }); + + it('should suggest pipelines when none exist', () => { + vm.mr.mergeRequestAddCiConfigPath = 'some/path'; + vm.mr.hasCI = false; + + expect(vm.shouldSuggestPipelines).toBeTruthy(); + }); + + it('should not suggest pipelines when they exist', () => { + vm.mr.mergeRequestAddCiConfigPath = null; + vm.mr.hasCI = false; + + expect(vm.shouldSuggestPipelines).toBeFalsy(); + }); + + it('should not suggest pipelines hasCI is true', () => { + vm.mr.mergeRequestAddCiConfigPath = 'some/path'; + vm.mr.hasCI = true; + + expect(vm.shouldSuggestPipelines).toBeFalsy(); + }); + }); + + describe('given suggestPipeline feature flag is not enabled', () => { + beforeEach(() => { + gon.features = { suggestPipeline: false }; + vm = mountComponent(MrWidgetOptions, { + mrData: { ...mockData }, + }); + }); + + afterEach(() => { + gon.features = {}; + }); + + it('should not suggest pipelines', () => { + vm.mr.mergeRequestAddCiConfigPath = null; + + expect(vm.shouldSuggestPipelines).toBeFalsy(); + }); + }); + }); + describe('shouldRenderRelatedLinks', () => { it('should return false for the initial data', () => { expect(vm.shouldRenderRelatedLinks).toBeFalsy(); diff --git a/spec/javascripts/vue_mr_widget/stores/mr_widget_store_spec.js b/spec/javascripts/vue_mr_widget/stores/mr_widget_store_spec.js index e2cd0f084fd..272f6cad5fc 100644 --- a/spec/javascripts/vue_mr_widget/stores/mr_widget_store_spec.js +++ b/spec/javascripts/vue_mr_widget/stores/mr_widget_store_spec.js @@ -83,4 +83,18 @@ describe('MergeRequestStore', () => { }); }); }); + + describe('setPaths', () => { + it('should set the add ci config path', () => { + store.setData({ ...mockData }); + + expect(store.mergeRequestAddCiConfigPath).toEqual('/group2/project2/new/pipeline'); + }); + + it('should set humanAccess=Maintainer when user has that role', () => { + store.setData({ ...mockData }); + + expect(store.humanAccess).toEqual('Maintainer'); + }); + }); }); diff --git a/spec/javascripts/vue_shared/components/file_row_spec.js b/spec/javascripts/vue_shared/components/file_row_spec.js index 071a09f8b93..11fcb9b89c1 100644 --- a/spec/javascripts/vue_shared/components/file_row_spec.js +++ b/spec/javascripts/vue_shared/components/file_row_spec.js @@ -1,7 +1,6 @@ import Vue from 'vue'; import { file } from 'spec/ide/helpers'; import FileRow from '~/vue_shared/components/file_row.vue'; -import FileRowExtra from '~/ide/components/file_row_extra.vue'; import mountComponent from '../../helpers/vue_mount_component_helper'; describe('File row component', () => { @@ -17,9 +16,6 @@ describe('File row component', () => { vm.$destroy(); }); - const findNewDropdown = () => vm.$el.querySelector('.ide-new-btn .dropdown'); - const findNewDropdownButton = () => vm.$el.querySelector('.ide-new-btn .dropdown button'); - it('renders name', () => { createComponent({ file: file('t4'), @@ -88,59 +84,4 @@ describe('File row component', () => { expect(vm.$el.classList).toContain('js-file-row-header'); }); - - describe('new dropdown', () => { - beforeEach(() => { - createComponent({ - file: file('t5'), - level: 1, - extraComponent: FileRowExtra, - }); - }); - - it('renders in extra component', () => { - expect(findNewDropdown()).not.toBe(null); - }); - - it('is hidden at start', () => { - expect(findNewDropdown()).not.toHaveClass('show'); - }); - - it('is opened when button is clicked', done => { - expect(vm.dropdownOpen).toBe(false); - findNewDropdownButton().dispatchEvent(new Event('click')); - - vm.$nextTick() - .then(() => { - expect(vm.dropdownOpen).toBe(true); - expect(findNewDropdown()).toHaveClass('show'); - }) - .then(done) - .catch(done.fail); - }); - - describe('when opened', () => { - beforeEach(() => { - vm.dropdownOpen = true; - }); - - it('stays open when button triggers mouseout', () => { - findNewDropdownButton().dispatchEvent(new Event('mouseout')); - - expect(vm.dropdownOpen).toBe(true); - }); - - it('stays open when button triggers mouseleave', () => { - findNewDropdownButton().dispatchEvent(new Event('mouseleave')); - - expect(vm.dropdownOpen).toBe(true); - }); - - it('closes when row triggers mouseleave', () => { - vm.$el.dispatchEvent(new Event('mouseleave')); - - expect(vm.dropdownOpen).toBe(false); - }); - }); - }); }); |