diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-11-09 09:08:59 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-11-09 09:08:59 +0000 |
commit | 079ad2772f2b78f56b26730307cc73d1376fa6d6 (patch) | |
tree | 6d862122c76b0eda421df0b72b41bfa345230218 /spec | |
parent | 4bfebcc481ca32ca0055e55cad509f400a2939ff (diff) | |
download | gitlab-ce-079ad2772f2b78f56b26730307cc73d1376fa6d6.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec')
-rw-r--r-- | spec/features/issuables/close_reopen_report_toggle_spec.rb | 50 | ||||
-rw-r--r-- | spec/serializers/merge_request_widget_entity_spec.rb | 23 |
2 files changed, 42 insertions, 31 deletions
diff --git a/spec/features/issuables/close_reopen_report_toggle_spec.rb b/spec/features/issuables/close_reopen_report_toggle_spec.rb index f0c994420ac..867d2ff7aae 100644 --- a/spec/features/issuables/close_reopen_report_toggle_spec.rb +++ b/spec/features/issuables/close_reopen_report_toggle_spec.rb @@ -105,6 +105,7 @@ RSpec.describe 'Issuables Close/Reopen/Report toggle' do end context 'on a merge request' do + let(:container) { find('.detail-page-header-actions') } let(:project) { create(:project, :repository) } let(:issuable) { create(:merge_request, source_project: project) } @@ -120,24 +121,47 @@ RSpec.describe 'Issuables Close/Reopen/Report toggle' do it_behaves_like 'an issuable close/reopen/report toggle' + context 'when the merge request is closed' do + let(:issuable) { create(:merge_request, :closed, source_project: project) } + + it 'shows both the `Edit` and `Reopen` button' do + expect(container).to have_link('Edit') + expect(container).not_to have_button('Report abuse') + expect(container).not_to have_button('Close merge request') + expect(container).to have_link('Reopen merge request') + end + + context 'when the merge request author is the current user' do + let(:issuable) { create(:merge_request, :closed, source_project: project, author: user) } + + it 'shows both the `Edit` and `Reopen` button' do + expect(container).to have_link('Edit') + expect(container).not_to have_link('Report abuse') + expect(container).not_to have_selector('button.dropdown-toggle') + expect(container).not_to have_button('Close merge request') + expect(container).to have_link('Reopen merge request') + end + end + end + context 'when the merge request is merged' do let(:issuable) { create(:merge_request, :merged, source_project: project) } - it 'shows only the `Report abuse` and `Edit` button' do - expect(page).to have_link('Report abuse') - expect(page).to have_link(exact_text: 'Edit') - expect(page).not_to have_button('Close merge request') - expect(page).not_to have_button('Reopen merge request') + it 'shows only the `Edit` button' do + expect(container).to have_link(exact_text: 'Edit') + expect(container).not_to have_link('Report abuse') + expect(container).not_to have_button('Close merge request') + expect(container).not_to have_button('Reopen merge request') end context 'when the merge request author is the current user' do let(:issuable) { create(:merge_request, :merged, source_project: project, author: user) } it 'shows only the `Edit` button' do - expect(page).to have_link('Report abuse') - expect(page).to have_link(exact_text: 'Edit') - expect(page).not_to have_button('Close merge request') - expect(page).not_to have_button('Reopen merge request') + expect(container).to have_link(exact_text: 'Edit') + expect(container).not_to have_link('Report abuse') + expect(container).not_to have_button('Close merge request') + expect(container).not_to have_button('Reopen merge request') end end end @@ -154,10 +178,10 @@ RSpec.describe 'Issuables Close/Reopen/Report toggle' do end it 'only shows a `Report abuse` button' do - expect(page).to have_link('Report abuse') - expect(page).not_to have_button('Close merge request') - expect(page).not_to have_button('Reopen merge request') - expect(page).not_to have_link(exact_text: 'Edit') + expect(container).to have_link('Report abuse') + expect(container).not_to have_button('Close merge request') + expect(container).not_to have_button('Reopen merge request') + expect(container).not_to have_link(exact_text: 'Edit') end end end diff --git a/spec/serializers/merge_request_widget_entity_spec.rb b/spec/serializers/merge_request_widget_entity_spec.rb index 7179ce08896..3f7d5542ae8 100644 --- a/spec/serializers/merge_request_widget_entity_spec.rb +++ b/spec/serializers/merge_request_widget_entity_spec.rb @@ -106,29 +106,16 @@ RSpec.describe MergeRequestWidgetEntity do let(:merge_base_job_id) { merge_base_pipeline.builds.first.id } it 'has head_path and base_path entries' do - expect(subject[:codeclimate][:head_path]).to be_present - expect(subject[:codeclimate][:base_path]).to be_present + expect(subject[:codeclimate][:head_path]).to include("/jobs/#{generic_job_id}/artifacts/download?file_type=codequality") + expect(subject[:codeclimate][:base_path]).to include("/jobs/#{generic_job_id}/artifacts/download?file_type=codequality") end context 'on pipelines for merged results' do let(:pipeline) { create(:ci_pipeline, :merged_result_pipeline, :with_codequality_report, project: project) } - context 'with merge_base_pipelines enabled' do - it 'returns URLs from the head_pipeline and merge_base_pipeline' do - expect(subject[:codeclimate][:head_path]).to include("/jobs/#{generic_job_id}/artifacts/download?file_type=codequality") - expect(subject[:codeclimate][:base_path]).to include("/jobs/#{merge_base_job_id}/artifacts/download?file_type=codequality") - end - end - - context 'with merge_base_pipelines disabled' do - before do - stub_feature_flags(merge_base_pipelines: false) - end - - it 'returns URLs from the head_pipeline and base_pipeline' do - expect(subject[:codeclimate][:head_path]).to include("/jobs/#{generic_job_id}/artifacts/download?file_type=codequality") - expect(subject[:codeclimate][:base_path]).to include("/jobs/#{generic_job_id}/artifacts/download?file_type=codequality") - end + it 'returns URLs from the head_pipeline and merge_base_pipeline' do + expect(subject[:codeclimate][:head_path]).to include("/jobs/#{generic_job_id}/artifacts/download?file_type=codequality") + expect(subject[:codeclimate][:base_path]).to include("/jobs/#{merge_base_job_id}/artifacts/download?file_type=codequality") end end end |