diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-03-16 18:18:33 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-03-16 18:18:33 +0000 |
commit | f64a639bcfa1fc2bc89ca7db268f594306edfd7c (patch) | |
tree | a2c3c2ebcc3b45e596949db485d6ed18ffaacfa1 /qa/qa/page/merge_request/show.rb | |
parent | bfbc3e0d6583ea1a91f627528bedc3d65ba4b10f (diff) | |
download | gitlab-ce-f64a639bcfa1fc2bc89ca7db268f594306edfd7c.tar.gz |
Add latest changes from gitlab-org/gitlab@13-10-stable-eev13.10.0-rc40
Diffstat (limited to 'qa/qa/page/merge_request/show.rb')
-rw-r--r-- | qa/qa/page/merge_request/show.rb | 72 |
1 files changed, 49 insertions, 23 deletions
diff --git a/qa/qa/page/merge_request/show.rb b/qa/qa/page/merge_request/show.rb index 18676807fd6..0b6a3085a3a 100644 --- a/qa/qa/page/merge_request/show.rb +++ b/qa/qa/page/merge_request/show.rb @@ -9,8 +9,8 @@ module QA view 'app/assets/javascripts/vue_merge_request_widget/components/mr_widget_header.vue' do element :download_dropdown - element :download_email_patches - element :download_plain_diff + element :download_email_patches_menu_item + element :download_plain_diff_menu_item element :open_in_web_ide_button end @@ -21,9 +21,13 @@ module QA view 'app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue' do element :merge_button - element :fast_forward_message, 'Fast-forward merge without a merge commit' # rubocop:disable QA/ElementWithPattern + element :fast_forward_message_content element :merge_moment_dropdown - element :merge_immediately_option + element :merge_immediately_menu_item + end + + view 'app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_auto_merge_enabled.vue' do + element :merge_request_status_content end view 'app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_merged.vue' do @@ -36,7 +40,7 @@ module QA view 'app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_rebase.vue' do element :mr_rebase_button - element :no_fast_forward_message, 'Fast-forward merge is not possible' # rubocop:disable QA/ElementWithPattern + element :no_fast_forward_message_content end view 'app/assets/javascripts/vue_merge_request_widget/components/states/squash_before_merge.vue' do @@ -64,7 +68,8 @@ module QA end view 'app/assets/javascripts/diffs/components/inline_diff_table_row.vue' do - element :new_diff_line + element :diff_comment_button + element :new_diff_line_link end view 'app/views/projects/merge_requests/_mr_title.html.haml' do @@ -72,11 +77,11 @@ module QA end view 'app/assets/javascripts/batch_comments/components/publish_button.vue' do - element :submit_review + element :submit_review_button end view 'app/assets/javascripts/batch_comments/components/review_bar.vue' do - element :review_bar + element :review_bar_content end view 'app/assets/javascripts/notes/components/note_form.vue' do @@ -124,18 +129,18 @@ module QA end def submit_pending_reviews - within_element(:review_bar) do + within_element(:review_bar_content) do click_element(:review_preview_toggle) - click_element(:submit_review) + click_element(:submit_review_button) # After clicking the button, wait for it to disappear # before moving on to the next part of the test - has_no_element?(:submit_review) + has_no_element?(:submit_review_button) end end def discard_pending_reviews - within_element(:review_bar) do + within_element(:review_bar_content) do click_element(:discard_review) end click_element(:modal_delete_pending_comments) @@ -154,8 +159,8 @@ module QA wait_until(sleep_interval: 5) do has_css?('a[data-linenumber="1"]') end - all_elements(:new_diff_line, minimum: 1).first.hover - click_element(:diff_comment) + all_elements(:new_diff_line_link, minimum: 1).first.hover + click_element(:diff_comment_button) fill_element(:reply_field, text) end @@ -179,7 +184,11 @@ module QA end def fast_forward_possible? - has_no_text?('Fast-forward merge is not possible') + has_element?(:fast_forward_message_content) + end + + def fast_forward_not_possible? + has_element?(:no_fast_forward_message_content) end def has_file?(file_name) @@ -220,12 +229,12 @@ module QA !find_element(:squash_checkbox).disabled? end + # TODO: Fix workaround for data-qa-selector failure click_element(:squash_checkbox) end def merge! - wait_until_ready_to_merge - click_element(:merge_button) + try_to_merge! finished_loading? raise "Merge did not appear to be successful" unless merged? @@ -233,11 +242,21 @@ module QA def merge_immediately! click_element(:merge_moment_dropdown) - click_element(:merge_immediately_option) + click_element(:merge_immediately_menu_item) + end + + def merge_when_pipeline_succeeds! + wait_until_ready_to_merge + + click_element(:merge_button, text: 'Merge when pipeline succeeds') end def merged? - has_element?(:merged_status_content, text: 'The changes were merged into', wait: 60) + # Revisit after merge page re-architect is done https://gitlab.com/gitlab-org/gitlab/-/issues/300042 + # To remove page refresh logic if possible + retry_until(max_attempts: 3, reload: true) do + has_element?(:merged_status_content, text: 'The changes were merged into', wait: 20) + end end # Check if the MR is able to be merged @@ -249,6 +268,10 @@ module QA has_element?(:merge_button, disabled: false) end + def merge_request_status + find_element(:merge_request_status_content).text + end + # Waits up 60 seconds and raises an error if unable to merge def wait_until_ready_to_merge has_element?(:merge_button) @@ -273,26 +296,29 @@ module QA click_element(:mr_rebase_button) success = wait_until do - has_text?('Fast-forward merge without a merge commit') + fast_forward_possible? end raise "Rebase did not appear to be successful" unless success end def try_to_merge! + # Revisit after merge page re-architect is done https://gitlab.com/gitlab-org/gitlab/-/issues/300042 + # To remove page refresh logic if possible wait_until_ready_to_merge + wait_until { !find_element(:merge_button).has_text?("when pipeline succeeds") } click_element(:merge_button) end def view_email_patches click_element(:download_dropdown) - visit_link_in_element(:download_email_patches) + visit_link_in_element(:download_email_patches_menu_item) end def view_plain_diff click_element(:download_dropdown) - visit_link_in_element(:download_plain_diff) + visit_link_in_element(:download_plain_diff_menu_item) end def wait_for_merge_request_error_message @@ -315,7 +341,7 @@ module QA def add_suggestion_to_diff(suggestion, line) find("a[data-linenumber='#{line}']").hover - click_element(:diff_comment) + click_element(:diff_comment_button) click_element(:suggestion_button) initial_content = find_element(:reply_field).value fill_element(:reply_field, '') |