summaryrefslogtreecommitdiff
path: root/qa/qa/page/base.rb
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-01-02 13:03:23 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-01-02 13:03:23 +0000
commita72a9af092c1bfcf9f8024d59c11cf222f07e1e7 (patch)
tree44b60265c1d476d026b2862d2c1244748f558d4f /qa/qa/page/base.rb
parentb085478c4c2bed74fdc6eb2c33bfc62e791baf03 (diff)
downloadgitlab-ce-a72a9af092c1bfcf9f8024d59c11cf222f07e1e7.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'qa/qa/page/base.rb')
-rw-r--r--qa/qa/page/base.rb27
1 files changed, 26 insertions, 1 deletions
diff --git a/qa/qa/page/base.rb b/qa/qa/page/base.rb
index dcba4fc8544..2c04fb53440 100644
--- a/qa/qa/page/base.rb
+++ b/qa/qa/page/base.rb
@@ -8,6 +8,7 @@ module QA
prepend Support::Page::Logging if Runtime::Env.debug?
include Capybara::DSL
include Scenario::Actable
+ include Support::WaitForRequests
extend Validatable
extend SingleForwardable
@@ -21,6 +22,8 @@ module QA
def refresh
page.refresh
+
+ wait_for_requests
end
def wait(max: 60, interval: 0.1, reload: true)
@@ -42,6 +45,8 @@ module QA
end
def scroll_to(selector, text: nil)
+ wait_for_requests
+
page.execute_script <<~JS
var elements = Array.from(document.querySelectorAll('#{selector}'));
var text = '#{text}';
@@ -74,6 +79,8 @@ module QA
end
def find_element(name, **kwargs)
+ wait_for_requests
+
find(element_selector_css(name), kwargs)
end
@@ -82,6 +89,8 @@ module QA
end
def all_elements(name, **kwargs)
+ wait_for_requests
+
all(element_selector_css(name), **kwargs)
end
@@ -120,6 +129,8 @@ module QA
end
def has_element?(name, **kwargs)
+ wait_for_requests
+
wait = kwargs[:wait] ? kwargs[:wait] && kwargs.delete(:wait) : Capybara.default_max_wait_time
text = kwargs[:text] ? kwargs[:text] && kwargs.delete(:text) : nil
@@ -127,6 +138,8 @@ module QA
end
def has_no_element?(name, **kwargs)
+ wait_for_requests
+
wait = kwargs[:wait] ? kwargs[:wait] && kwargs.delete(:wait) : Capybara.default_max_wait_time
text = kwargs[:text] ? kwargs[:text] && kwargs.delete(:text) : nil
@@ -134,18 +147,24 @@ module QA
end
def has_text?(text, wait: Capybara.default_max_wait_time)
+ wait_for_requests
+
page.has_text?(text, wait: wait)
end
def has_no_text?(text)
+ wait_for_requests
+
page.has_no_text? text
end
def has_normalized_ws_text?(text, wait: Capybara.default_max_wait_time)
- page.has_text?(text.gsub(/\s+/, " "), wait: wait)
+ has_text?(text.gsub(/\s+/, " "), wait: wait)
end
def finished_loading?
+ wait_for_requests
+
# The number of selectors should be able to be reduced after
# migration to the new spinner is complete.
# https://gitlab.com/groups/gitlab-org/-/epics/956
@@ -153,6 +172,8 @@ module QA
end
def finished_loading_block?
+ wait_for_requests
+
has_no_css?('.fa-spinner.block-loading', wait: Capybara.default_max_wait_time)
end
@@ -220,10 +241,14 @@ module QA
end
def click_link_with_text(text)
+ wait_for_requests
+
click_link text
end
def click_body
+ wait_for_requests
+
find('body').click
end