diff options
author | Mike Lewis <mlewis@gitlab.com> | 2019-06-07 20:13:17 +0000 |
---|---|---|
committer | Mike Lewis <mlewis@gitlab.com> | 2019-06-07 20:13:17 +0000 |
commit | 99df0218f82b851b017bd0eea1b8351dc89df6ed (patch) | |
tree | b01f884fbd1418dd5465fc1741f1620061ae8c5c /qa/qa/support | |
parent | 3eea6906747d10bea501426febaf15d2c209e06a (diff) | |
parent | e07b2b277f79bc25cdce22ca2defba1ba80791aa (diff) | |
download | gitlab-ce-99df0218f82b851b017bd0eea1b8351dc89df6ed.tar.gz |
Merge branch 'master' into 'docs/fix-example-dot-net'
# Conflicts:
# doc/user/project/clusters/serverless/index.md
Diffstat (limited to 'qa/qa/support')
-rw-r--r-- | qa/qa/support/api.rb | 15 | ||||
-rw-r--r-- | qa/qa/support/page/logging.rb | 37 | ||||
-rw-r--r-- | qa/qa/support/waiter.rb | 4 |
3 files changed, 44 insertions, 12 deletions
diff --git a/qa/qa/support/api.rb b/qa/qa/support/api.rb index 8aa7d6812ac..a5c86425465 100644 --- a/qa/qa/support/api.rb +++ b/qa/qa/support/api.rb @@ -1,6 +1,11 @@ +# frozen_string_literal: true + module QA module Support module Api + HTTP_STATUS_OK = 200 + HTTP_STATUS_CREATED = 201 + def post(url, payload) RestClient::Request.execute( method: :post, @@ -20,6 +25,16 @@ module QA e.response end + def put(url, payload) + RestClient::Request.execute( + method: :put, + url: url, + payload: payload, + verify_ssl: false) + rescue RestClient::ExceptionWithResponse => e + e.response + end + def delete(url) RestClient::Request.execute( method: :delete, diff --git a/qa/qa/support/page/logging.rb b/qa/qa/support/page/logging.rb index 5e97a92a6e3..02ebd96ad49 100644 --- a/qa/qa/support/page/logging.rb +++ b/qa/qa/support/page/logging.rb @@ -33,11 +33,8 @@ module QA exists end - def find_element(name, text_filter = nil, wait: Capybara.default_max_wait_time) - msg = ["finding :#{name}"] - msg << %Q(with text_filter "#{text_filter}") if text_filter - msg << "(wait: #{wait})" - log(msg.compact.join(' ')) + def find_element(name, **kwargs) + log("finding :#{name} with args #{kwargs}") element = super @@ -56,8 +53,11 @@ module QA elements end - def click_element(name) - log("clicking :#{name}") + def click_element(name, page = nil) + msg = ["clicking :#{name}"] + msg << ", expecting to be at #{page.class}" if page + + log(msg.compact.join(' ')) super end @@ -76,18 +76,18 @@ module QA super end - def has_element?(name, wait: Capybara.default_max_wait_time) + def has_element?(name, **kwargs) found = super - log("has_element? :#{name} returned #{found}") + log_has_element_or_not('has_element?', name, found, **kwargs) found end - def has_no_element?(name, wait: Capybara.default_max_wait_time) + def has_no_element?(name, **kwargs) found = super - log("has_no_element? :#{name} returned #{found}") + log_has_element_or_not('has_no_element?', name, found, **kwargs) found end @@ -119,6 +119,12 @@ module QA loaded end + def wait_for_animated_element(name) + log("waiting for animated element: #{name}") + + super + end + def within_element(name) log("within element :#{name}") @@ -144,6 +150,15 @@ module QA def log(msg) QA::Runtime::Logger.debug(msg) end + + def log_has_element_or_not(method, name, found, **kwargs) + msg = ["#{method} :#{name}"] + msg << %Q(with text "#{kwargs[:text]}") if kwargs[:text] + msg << "(wait: #{kwargs[:wait] || Capybara.default_max_wait_time})" + msg << "returned: #{found}" + + log(msg.compact.join(' ')) + end end end end diff --git a/qa/qa/support/waiter.rb b/qa/qa/support/waiter.rb index 21a399b4a5f..fdcf2d7e157 100644 --- a/qa/qa/support/waiter.rb +++ b/qa/qa/support/waiter.rb @@ -3,9 +3,11 @@ module QA module Support module Waiter + DEFAULT_MAX_WAIT_TIME = 60 + module_function - def wait(max: 60, interval: 0.1) + def wait(max: DEFAULT_MAX_WAIT_TIME, interval: 0.1) QA::Runtime::Logger.debug("with wait: max #{max}; interval #{interval}") start = Time.now |