diff options
author | Mark Lapierre <mlapierre@gitlab.com> | 2019-02-11 09:04:59 +0000 |
---|---|---|
committer | Ramya Authappan <rauthappan@gitlab.com> | 2019-02-11 09:04:59 +0000 |
commit | 97265d39e72cbb32468a3f1d671820528af02a8b (patch) | |
tree | 03c7d01e071ce0843987ad6f1eb96234fa20074a /qa/qa/support | |
parent | 25af9032750c215860829fecb196da1e1c5ace6b (diff) | |
download | gitlab-ce-97265d39e72cbb32468a3f1d671820528af02a8b.tar.gz |
[CE] Improve `wait_for_push`
Diffstat (limited to 'qa/qa/support')
-rw-r--r-- | qa/qa/support/page/logging.rb | 12 | ||||
-rw-r--r-- | qa/qa/support/waiter.rb | 31 |
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 |