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>2024-01-03 21:12:53 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2024-01-03 21:12:53 +0300
commitb87af16bf2b9b09309deb902889edc1bff05256a (patch)
treec1088a650a2c26fb9636ad2d01744697caf80091 /qa
parent5429e3d4e0d5f1601ff8989bcb26bd822b3c7c5a (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'qa')
-rw-r--r--qa/qa/page/merge_request/show.rb4
-rw-r--r--qa/qa/specs/features/browser_ui/3_create/merge_request/merge_request_set_to_auto_merge_spec.rb (renamed from qa/qa/specs/features/browser_ui/3_create/merge_request/merge_when_pipeline_succeeds_spec.rb)39
2 files changed, 21 insertions, 22 deletions
diff --git a/qa/qa/page/merge_request/show.rb b/qa/qa/page/merge_request/show.rb
index 6110d33c015..a08fab8efa9 100644
--- a/qa/qa/page/merge_request/show.rb
+++ b/qa/qa/page/merge_request/show.rb
@@ -316,10 +316,10 @@ module QA
raise "Merge did not appear to be successful" unless merged?
end
- def merge_when_pipeline_succeeds!
+ def set_to_auto_merge!
wait_until_ready_to_merge
- click_element('merge-button', text: 'Merge when pipeline succeeds')
+ click_element('merge-button', text: 'Set to auto-merge')
end
def merged?
diff --git a/qa/qa/specs/features/browser_ui/3_create/merge_request/merge_when_pipeline_succeeds_spec.rb b/qa/qa/specs/features/browser_ui/3_create/merge_request/merge_request_set_to_auto_merge_spec.rb
index b7a8d1e7dfa..8fe5b674c42 100644
--- a/qa/qa/specs/features/browser_ui/3_create/merge_request/merge_when_pipeline_succeeds_spec.rb
+++ b/qa/qa/specs/features/browser_ui/3_create/merge_request/merge_request_set_to_auto_merge_spec.rb
@@ -2,17 +2,11 @@
module QA
RSpec.describe 'Create', :runner, product_group: :code_review do
- describe 'Merge requests' do
- shared_examples 'merge when pipeline succeeds' do |repeat: 1|
+ describe 'Merge request' do
+ shared_examples 'set to auto-merge' do |repeat: 1|
let(:runner_name) { "qa-runner-#{Faker::Alphanumeric.alphanumeric(number: 8)}" }
- let(:project) { create(:project, :with_readme, name: 'merge-when-pipeline-succeeds') }
- let!(:runner) do
- Resource::ProjectRunner.fabricate! do |runner|
- runner.project = project
- runner.name = runner_name
- runner.tags = [runner_name]
- end
- end
+ let(:project) { create(:project, :with_readme, name: 'set-to-auto-merge') }
+ let!(:runner) { create(:project_runner, project: project, name: runner_name, tags: [runner_name]) }
let!(:ci_file) do
create(:commit, project: project, commit_message: 'Add .gitlab-ci.yml', actions: [
@@ -48,7 +42,7 @@ module QA
QA::Runtime::Logger.info("Transient bug test - Trial #{i + 1}") if transient_test
# Create a merge request to trigger pipeline
- merge_request = create(:project,
+ merge_request = create(:merge_request,
project: project,
description: Faker::Lorem.sentence,
target_new_branch: false,
@@ -64,22 +58,26 @@ module QA
# possible components will be relevant, so it would be inefficient for this test to check for each of
# them. Instead, we fail on anything but the expected state.
#
- # The following method allows us to handle and ignore states (as we find them) that users could safely ignore.
+ # The following method allows us to handle and ignore states (as we find them) that users could safely
+ # ignore.
mr.wait_until_ready_to_merge(transient_test: transient_test)
- mr.retry_until(reload: true, message: 'Wait until ready to click MWPS') do
- # Click the MWPS button if we can
- break mr.merge_when_pipeline_succeeds! if mr.has_element?('merge-button', text: 'Merge when pipeline succeeds')
+ mr.retry_until(reload: true, message: 'Wait until ready to click Set to auto-merge') do
+ # Click the Set to auto-merge button if we can
+ break mr.set_to_auto_merge! if mr.has_element?('merge-button', text: 'Set to auto-merge')
# But fail if the button is missing because the pipeline is complete
- raise "The pipeline already finished before we could click MWPS" if mr.wait_until { project.pipelines.first }[:status] == 'success'
+ raise "The pipeline already finished before we could set to auto-merge" if mr.wait_until do
+ project.pipelines.first
+ end[:status] == 'success'
# Otherwise, if this is not a transient test reload the page and retry
next false unless transient_test
end
aggregate_failures do
- expect { mr.merged? }.to eventually_be_truthy.within(max_duration: 120), "Expected content 'The changes were merged' but it did not appear."
+ expect { mr.merged? }.to eventually_be_truthy.within(max_duration: 120),
+ "Expected content 'The changes were merged' but it did not appear."
expect(merge_request.reload!.merge_when_pipeline_succeeds).to be_truthy
expect(merge_request.state).to eq('merged')
expect(project.pipelines.last[:status]).to eq('success')
@@ -90,11 +88,12 @@ module QA
end
context 'when merging once', testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347686' do
- it_behaves_like 'merge when pipeline succeeds'
+ it_behaves_like 'set to auto-merge'
end
- context 'when merging several times', :transient, testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347641' do
- it_behaves_like 'merge when pipeline succeeds', repeat: Runtime::Env.transient_trials
+ context 'when merging several times', :transient,
+ testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347641' do
+ it_behaves_like 'set to auto-merge', repeat: Runtime::Env.transient_trials
end
end
end