summaryrefslogtreecommitdiff
path: root/qa/qa/page/base.rb
diff options
context:
space:
mode:
Diffstat (limited to 'qa/qa/page/base.rb')
-rw-r--r--qa/qa/page/base.rb17
1 files changed, 17 insertions, 0 deletions
diff --git a/qa/qa/page/base.rb b/qa/qa/page/base.rb
index 22b0021ea77..4ccf9e2f168 100644
--- a/qa/qa/page/base.rb
+++ b/qa/qa/page/base.rb
@@ -16,6 +16,10 @@ module QA
def_delegators :evaluator, :view, :views
+ def initialize
+ @retry_later_backoff = QA::Support::Repeater::DEFAULT_MAX_WAIT_TIME
+ end
+
def assert_no_element(name)
assert_no_selector(element_selector_css(name))
end
@@ -259,6 +263,19 @@ module QA
visit find_element(name)['href']
end
+ def wait_if_retry_later
+ return if @retry_later_backoff > QA::Support::Repeater::DEFAULT_MAX_WAIT_TIME * 5
+
+ if has_css?('body', text: 'Retry later', wait: 0)
+ QA::Runtime::Logger.warn("`Retry later` error occurred. Sleeping for #{@retry_later_backoff} seconds...")
+ sleep @retry_later_backoff
+ refresh
+ @retry_later_backoff += QA::Support::Repeater::DEFAULT_MAX_WAIT_TIME
+
+ wait_if_retry_later
+ end
+ end
+
def self.path
raise NotImplementedError
end