diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-11-05 00:08:43 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-11-05 00:08:43 +0300 |
commit | 8a55c3263f1f37fdc9ee772bc0d38133dfe94495 (patch) | |
tree | 8c2d2efbf9d18c9b8d6cb6d93b8e341d1a508536 /qa | |
parent | 2a115184f76adba1e564b220b38e67908c2bcc98 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'qa')
-rw-r--r-- | qa/qa/page/merge_request/show.rb | 5 | ||||
-rw-r--r-- | qa/qa/specs/features/browser_ui/4_verify/pipeline/merge_mr_when_pipline_is_blocked_spec.rb | 82 |
2 files changed, 87 insertions, 0 deletions
diff --git a/qa/qa/page/merge_request/show.rb b/qa/qa/page/merge_request/show.rb index 5dd5abc53d7..e7105fea165 100644 --- a/qa/qa/page/merge_request/show.rb +++ b/qa/qa/page/merge_request/show.rb @@ -218,6 +218,11 @@ module QA raise "Merge did not appear to be successful" unless merged? end + def merge_immediately! + click_element(:merge_moment_dropdown) + click_element(:merge_immediately_option) + end + def merged? has_element?(:merged_status_content, text: 'The changes were merged into', wait: 60) end diff --git a/qa/qa/specs/features/browser_ui/4_verify/pipeline/merge_mr_when_pipline_is_blocked_spec.rb b/qa/qa/specs/features/browser_ui/4_verify/pipeline/merge_mr_when_pipline_is_blocked_spec.rb new file mode 100644 index 00000000000..c5d73d2fd7d --- /dev/null +++ b/qa/qa/specs/features/browser_ui/4_verify/pipeline/merge_mr_when_pipline_is_blocked_spec.rb @@ -0,0 +1,82 @@ +# frozen_string_literal: true + +require 'faker' + +module QA + RSpec.describe 'Verify', :runner do + context 'When pipeline is blocked' do + let(:executor) { "qa-runner-#{Faker::Alphanumeric.alphanumeric(8)}" } + + let(:project) do + Resource::Project.fabricate_via_api! do |project| + project.name = 'project-with-blocked-pipeline' + end + end + + let!(:runner) do + Resource::Runner.fabricate! do |runner| + runner.project = project + runner.name = executor + runner.tags = [executor] + end + end + + let!(:ci_file) do + Resource::Repository::Commit.fabricate_via_api! do |commit| + commit.project = project + commit.commit_message = 'Add .gitlab-ci.yml' + commit.add_files( + [ + file_path: '.gitlab-ci.yml', + content: <<~YAML + test_blocked_pipeline: + stage: build + tags: [#{executor}] + script: echo 'OK!' + + manual_job: + stage: test + needs: [test_blocked_pipeline] + script: echo do not click me + when: manual + + dummy_job: + stage: deploy + needs: [manual_job] + script: echo nothing + YAML + ] + ) + end + end + + let(:merge_request) do + Resource::MergeRequest.fabricate_via_api! do |merge_request| + merge_request.project = project + merge_request.description = Faker::Lorem.sentence + merge_request.target_new_branch = false + merge_request.file_name = 'custom_file.txt' + merge_request.file_content = Faker::Lorem.sentence + end + end + + before do + Flow::Login.sign_in + merge_request.visit! + end + + after do + runner.remove_via_api! + end + + it 'can still merge MR successfully', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/971' do + Page::MergeRequest::Show.perform do |show| + show.wait_until(reload: false) { show.has_pipeline_status?('running') } + show.merge_immediately! + + expect(show).to be_merged + end + end + end + end +end |