diff --git a/qa/qa/resource/merge_request.rb b/qa/qa/resource/merge_request.rb index 93e8c4f3be6e2748341df6bbff9a0908313797ad..fdf1a2a97acf31872bc96455d4862159aeadf951 100644 --- a/qa/qa/resource/merge_request.rb +++ b/qa/qa/resource/merge_request.rb @@ -25,6 +25,7 @@ class MergeRequest < Issuable :description, :merge_when_pipeline_succeeds, :detailed_merge_status, + :prepared_at, :state, :reviewers @@ -110,7 +111,9 @@ def fabricate_via_api! rescue ResourceNotFoundError, NoValueError # rescue if iid not populated populate_target_and_source_if_required - super + url = super + wait_for_preparation + url end def api_merge_path @@ -265,6 +268,18 @@ def wait_until_mergable raise Support::Repeater::WaitExceededError, "Timed out waiting for merge of MR with id '#{iid}'. Final status was '#{detailed_merge_status}'" end + + # Wait until the merge request is prepared. Raises WaitExceededError if the MR is not prepared within 60 seconds + # https://docs.gitlab.com/ee/api/merge_requests.html#preparation-steps + # + # @return [void] + def wait_for_preparation + return if Support::Waiter.wait_until(sleep_interval: 1, raise_on_failure: false, log: false) do + reload!.prepared_at + end + + raise Support::Repeater::WaitExceededError, "Timed out waiting for MR with id '#{iid}' to be prepared." + end end end end diff --git a/qa/qa/specs/features/ee/browser_ui/3_create/repository/assign_code_owners_spec.rb b/qa/qa/specs/features/ee/browser_ui/3_create/repository/assign_code_owners_spec.rb index 3609ab5a55dcb49867a56a602214ced710eb76b3..fe98acd539dc9065501b3bdc8de0b0d92fb46476 100644 --- a/qa/qa/specs/features/ee/browser_ui/3_create/repository/assign_code_owners_spec.rb +++ b/qa/qa/specs/features/ee/browser_ui/3_create/repository/assign_code_owners_spec.rb @@ -26,8 +26,7 @@ module QA end it 'merge request assigns code owners as approvers', - testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347776', - quarantine: { issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/416217', type: :bug } do + testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347776' do # Commit CODEOWNERS to default branch Resource::Repository::Commit.fabricate_via_api! do |commit| commit.project = project