diff options
Diffstat (limited to 'spec/javascripts/vue_mr_widget/components')
4 files changed, 19 insertions, 104 deletions
diff --git a/spec/javascripts/vue_mr_widget/components/mr_widget_header_spec.js b/spec/javascripts/vue_mr_widget/components/mr_widget_header_spec.js index de1d351677c..3cbaa47c832 100644 --- a/spec/javascripts/vue_mr_widget/components/mr_widget_header_spec.js +++ b/spec/javascripts/vue_mr_widget/components/mr_widget_header_spec.js @@ -153,7 +153,7 @@ describe('MRWidgetHeader', () => { beforeEach(() => { vm = mountComponent(Component, { - mr: Object.assign({}, mrDefaultOptions), + mr: { ...mrDefaultOptions }, }); }); @@ -176,7 +176,7 @@ describe('MRWidgetHeader', () => { }); it('renders web ide button in disabled state with no href', () => { - const mr = Object.assign({}, mrDefaultOptions, { canPushToSourceBranch: false }); + const mr = { ...mrDefaultOptions, canPushToSourceBranch: false }; vm = mountComponent(Component, { mr }); const link = vm.$el.querySelector('.js-web-ide'); diff --git a/spec/javascripts/vue_mr_widget/components/mr_widget_pipeline_container_spec.js b/spec/javascripts/vue_mr_widget/components/mr_widget_pipeline_container_spec.js deleted file mode 100644 index 76827cde093..00000000000 --- a/spec/javascripts/vue_mr_widget/components/mr_widget_pipeline_container_spec.js +++ /dev/null @@ -1,99 +0,0 @@ -import { mount, createLocalVue } from '@vue/test-utils'; -import MrWidgetPipelineContainer from '~/vue_merge_request_widget/components/mr_widget_pipeline_container.vue'; -import MrWidgetPipeline from '~/vue_merge_request_widget/components/mr_widget_pipeline.vue'; -import ArtifactsApp from '~/vue_merge_request_widget/components/artifacts_list_app.vue'; -import { mockStore } from '../mock_data'; - -const localVue = createLocalVue(); - -describe('MrWidgetPipelineContainer', () => { - let wrapper; - - const factory = (props = {}) => { - wrapper = mount(localVue.extend(MrWidgetPipelineContainer), { - propsData: { - mr: Object.assign({}, mockStore), - ...props, - }, - localVue, - }); - }; - - afterEach(() => { - wrapper.destroy(); - }); - - describe('when pre merge', () => { - beforeEach(() => { - factory(); - }); - - it('renders pipeline', () => { - expect(wrapper.find(MrWidgetPipeline).exists()).toBe(true); - expect(wrapper.find(MrWidgetPipeline).props()).toEqual( - jasmine.objectContaining({ - pipeline: mockStore.pipeline, - pipelineCoverageDelta: mockStore.pipelineCoverageDelta, - ciStatus: mockStore.ciStatus, - hasCi: mockStore.hasCI, - sourceBranch: mockStore.sourceBranch, - sourceBranchLink: mockStore.sourceBranchLink, - }), - ); - }); - - it('renders deployments', () => { - const expectedProps = mockStore.deployments.map(dep => - jasmine.objectContaining({ - deployment: dep, - showMetrics: false, - }), - ); - - const deployments = wrapper.findAll('.mr-widget-extension .js-pre-deployment'); - - expect(deployments.wrappers.map(x => x.props())).toEqual(expectedProps); - }); - }); - - describe('when post merge', () => { - beforeEach(() => { - factory({ - isPostMerge: true, - }); - }); - - it('renders pipeline', () => { - expect(wrapper.find(MrWidgetPipeline).exists()).toBe(true); - expect(wrapper.find(MrWidgetPipeline).props()).toEqual( - jasmine.objectContaining({ - pipeline: mockStore.mergePipeline, - pipelineCoverageDelta: mockStore.pipelineCoverageDelta, - ciStatus: mockStore.ciStatus, - hasCi: mockStore.hasCI, - sourceBranch: mockStore.targetBranch, - sourceBranchLink: mockStore.targetBranch, - }), - ); - }); - - it('renders deployments', () => { - const expectedProps = mockStore.postMergeDeployments.map(dep => - jasmine.objectContaining({ - deployment: dep, - showMetrics: true, - }), - ); - - const deployments = wrapper.findAll('.mr-widget-extension .js-post-deployment'); - - expect(deployments.wrappers.map(x => x.props())).toEqual(expectedProps); - }); - }); - - describe('with artifacts path', () => { - it('renders the artifacts app', () => { - expect(wrapper.find(ArtifactsApp).isVisible()).toBe(true); - }); - }); -}); diff --git a/spec/javascripts/vue_mr_widget/components/mr_widget_pipeline_spec.js b/spec/javascripts/vue_mr_widget/components/mr_widget_pipeline_spec.js index 5997c93105e..883c41085fa 100644 --- a/spec/javascripts/vue_mr_widget/components/mr_widget_pipeline_spec.js +++ b/spec/javascripts/vue_mr_widget/components/mr_widget_pipeline_spec.js @@ -122,6 +122,19 @@ describe('MRWidgetPipeline', () => { ); }); + it('should render CI error when no CI is provided and pipeline must succeed is turned on', () => { + vm = mountComponent(Component, { + pipeline: {}, + hasCi: false, + pipelineMustSucceed: true, + troubleshootingDocsPath: 'help', + }); + + expect(vm.$el.querySelector('.media-body').textContent.trim()).toContain( + 'No pipeline has been run for this commit.', + ); + }); + describe('with a pipeline', () => { beforeEach(() => { vm = mountComponent(Component, { diff --git a/spec/javascripts/vue_mr_widget/components/states/mr_widget_ready_to_merge_spec.js b/spec/javascripts/vue_mr_widget/components/states/mr_widget_ready_to_merge_spec.js index d396f2d9271..9ba429c3d20 100644 --- a/spec/javascripts/vue_mr_widget/components/states/mr_widget_ready_to_merge_spec.js +++ b/spec/javascripts/vue_mr_widget/components/states/mr_widget_ready_to_merge_spec.js @@ -18,6 +18,7 @@ const createTestMr = customConfig => { isPipelineFailed: false, isPipelinePassing: false, isMergeAllowed: true, + isApproved: true, onlyAllowMergeIfPipelineSucceeds: false, ffOnlyEnabled: false, hasCI: false, @@ -919,8 +920,8 @@ describe('ReadyToMerge', () => { }); }); - describe('Commit message area', () => { - describe('when using merge commits', () => { + describe('Merge request project settings', () => { + describe('when the merge commit merge method is enabled', () => { beforeEach(() => { vm = createComponent({ mr: { ffOnlyEnabled: false }, @@ -936,7 +937,7 @@ describe('ReadyToMerge', () => { }); }); - describe('when fast-forward merge is enabled', () => { + describe('when the fast-forward merge method is enabled', () => { beforeEach(() => { vm = createComponent({ mr: { ffOnlyEnabled: true }, |