summaryrefslogtreecommitdiff
path: root/qa/qa/page/merge_request/show.rb
diff options
context:
space:
mode:
Diffstat (limited to 'qa/qa/page/merge_request/show.rb')
-rw-r--r--qa/qa/page/merge_request/show.rb89
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