summaryrefslogtreecommitdiff
path: root/qa/qa/support
diff options
context:
space:
mode:
authorMark Lapierre <mlapierre@gitlab.com>2019-02-11 09:04:59 +0000
committerRamya Authappan <rauthappan@gitlab.com>2019-02-11 09:04:59 +0000
commit97265d39e72cbb32468a3f1d671820528af02a8b (patch)
tree03c7d01e071ce0843987ad6f1eb96234fa20074a /qa/qa/support
parent25af9032750c215860829fecb196da1e1c5ace6b (diff)
downloadgitlab-ce-97265d39e72cbb32468a3f1d671820528af02a8b.tar.gz
[CE] Improve `wait_for_push`
Diffstat (limited to 'qa/qa/support')
-rw-r--r--qa/qa/support/page/logging.rb12
-rw-r--r--qa/qa/support/waiter.rb31
2 files changed, 35 insertions, 8 deletions
diff --git a/qa/qa/support/page/logging.rb b/qa/qa/support/page/logging.rb
index f2cd0194b6b..5e97a92a6e3 100644
--- a/qa/qa/support/page/logging.rb
+++ b/qa/qa/support/page/logging.rb
@@ -10,15 +10,11 @@ module QA
super
end
- def wait(max: 60, time: 0.1, reload: true)
- log("with wait: max #{max}; time #{time}; reload #{reload}")
- now = Time.now
-
- element = super
+ def wait(max: 60, interval: 0.1, reload: true)
+ log("next wait uses reload: #{reload}")
+ # Logging of wait start/end/duration is handled by QA::Support::Waiter
- log("ended wait after #{Time.now - now} seconds")
-
- element
+ super
end
def scroll_to(selector, text: nil)
diff --git a/qa/qa/support/waiter.rb b/qa/qa/support/waiter.rb
new file mode 100644
index 00000000000..21a399b4a5f
--- /dev/null
+++ b/qa/qa/support/waiter.rb
@@ -0,0 +1,31 @@
+# frozen_string_literal: true
+
+module QA
+ module Support
+ module Waiter
+ module_function
+
+ def wait(max: 60, interval: 0.1)
+ QA::Runtime::Logger.debug("with wait: max #{max}; interval #{interval}")
+ start = Time.now
+
+ while Time.now - start < max
+ result = yield
+ if result
+ log_end(Time.now - start)
+ return result
+ end
+
+ sleep(interval)
+ end
+ log_end(Time.now - start)
+
+ false
+ end
+
+ def self.log_end(duration)
+ QA::Runtime::Logger.debug("ended wait after #{duration} seconds")
+ end
+ end
+ end
+end