diff options
Diffstat (limited to 'qa/qa/vendor/jenkins/page/last_job_console.rb')
-rw-r--r-- | qa/qa/vendor/jenkins/page/last_job_console.rb | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/qa/qa/vendor/jenkins/page/last_job_console.rb b/qa/qa/vendor/jenkins/page/last_job_console.rb index f41b91c2cdb..9fcbb8ab956 100644 --- a/qa/qa/vendor/jenkins/page/last_job_console.rb +++ b/qa/qa/vendor/jenkins/page/last_job_console.rb @@ -9,6 +9,8 @@ module QA class LastJobConsole < Page::Base attr_accessor :job_name + CONSOLE_OUTPUT_SELECTOR = '.console-output' + def path "/job/#{@job_name}/lastBuild/console" end @@ -17,13 +19,23 @@ module QA # Retry on errors such as: # Selenium::WebDriver::Error::JavascriptError: # javascript error: this.each is not a function - Support::Retrier.retry_on_exception(reload_page: page) do - page.has_text?('Finished: SUCCESS') + Support::Retrier.retry_on_exception(reload_page: page, sleep_interval: 1) do + has_console_output? && console_output.include?('Finished: SUCCESS') end end def no_failed_status_update? - page.has_no_text?('Failed to update Gitlab commit status') + !console_output.include?('Failed to update Gitlab commit status') + end + + private + + def has_console_output? + page.has_selector?(CONSOLE_OUTPUT_SELECTOR, wait: 1) + end + + def console_output + page.find(CONSOLE_OUTPUT_SELECTOR).text end end end |