Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/qa
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-11-05 00:08:43 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-11-05 00:08:43 +0300
commit8a55c3263f1f37fdc9ee772bc0d38133dfe94495 (patch)
tree8c2d2efbf9d18c9b8d6cb6d93b8e341d1a508536 /qa
parent2a115184f76adba1e564b220b38e67908c2bcc98 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'qa')
-rw-r--r--qa/qa/page/merge_request/show.rb5
-rw-r--r--qa/qa/specs/features/browser_ui/4_verify/pipeline/merge_mr_when_pipline_is_blocked_spec.rb82
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