diff options
Diffstat (limited to 'qa/qa/page/merge_request/show.rb')
-rw-r--r-- | qa/qa/page/merge_request/show.rb | 89 |
1 files changed, 81 insertions, 8 deletions
diff --git a/qa/qa/page/merge_request/show.rb b/qa/qa/page/merge_request/show.rb index 0da40b35938..07f8e568b2a 100644 --- a/qa/qa/page/merge_request/show.rb +++ b/qa/qa/page/merge_request/show.rb @@ -73,6 +73,70 @@ module QA element :edit_button end + view 'app/assets/javascripts/batch_comments/components/publish_button.vue' do + element :submit_review + end + + view 'app/assets/javascripts/batch_comments/components/review_bar.vue' do + element :review_bar + element :discard_review + element :modal_delete_pending_comments + end + + view 'app/assets/javascripts/notes/components/note_form.vue' do + element :unresolve_review_discussion_checkbox + element :resolve_review_discussion_checkbox + element :start_review + element :comment_now + end + + view 'app/assets/javascripts/batch_comments/components/preview_dropdown.vue' do + element :review_preview_toggle + end + + def start_review + click_element :start_review + + # After clicking the button, wait for it to disappear + # before moving on to the next part of the test + has_no_element? :start_review + end + + def comment_now + click_element :comment_now + + # After clicking the button, wait for it to disappear + # before moving on to the next part of the test + has_no_element? :comment_now + end + + def submit_pending_reviews + within_element :review_bar do + click_element :review_preview_toggle + click_element :submit_review + + # After clicking the button, wait for it to disappear + # before moving on to the next part of the test + has_no_element? :submit_review + end + end + + def discard_pending_reviews + within_element :review_bar do + click_element :discard_review + end + click_element :modal_delete_pending_comments + end + + def resolve_review_discussion + scroll_to_element :start_review + check_element :resolve_review_discussion_checkbox + end + + def unresolve_review_discussion + check_element :unresolve_review_discussion_checkbox + end + def add_comment_to_diff(text) wait_until(sleep_interval: 5) do has_text?("No newline at end of file") @@ -154,8 +218,8 @@ module QA end def merge! - click_element :merge_button if ready_to_merge? - + wait_until_ready_to_merge + click_element(:merge_button) finished_loading? raise "Merge did not appear to be successful" unless merged? @@ -165,11 +229,18 @@ module QA has_element?(:merged_status_content, text: 'The changes were merged into', wait: 30) end - def ready_to_merge? - # The merge button is disabled on load - wait_until do - has_element?(:merge_button) - end + # Check if the MR is able to be merged + # Waits up 10 seconds and returns false if the MR can't be merged + def mergeable? + # The merge button is enabled via JS, but `has_element?` calls + # `wait_for_requests`, which should ensure the disabled/enabled + # state of the element is reliable + has_element?(:merge_button, disabled: false) + end + + # Waits up 60 seconds and raises an error if unable to merge + def wait_until_ready_to_merge + has_element?(:merge_button) # The merge button is enabled via JS wait_until(reload: false) do @@ -198,7 +269,9 @@ module QA end def try_to_merge! - click_element :merge_button if ready_to_merge? + wait_until_ready_to_merge + + click_element(:merge_button) end def view_email_patches |