summaryrefslogtreecommitdiff
path: root/qa/qa/runtime
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-01-17 18:08:41 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-01-17 18:08:41 +0000
commit22a0d312ae82e7dda3073d5d1a5a766d7641738d (patch)
tree41a677a7212f24e2f29c2fbd5623430f92fb2b45 /qa/qa/runtime
parent37eff29d5ce44899e34c7c2ac319b314f2f26d15 (diff)
downloadgitlab-ce-22a0d312ae82e7dda3073d5d1a5a766d7641738d.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'qa/qa/runtime')
-rw-r--r--qa/qa/runtime/browser.rb33
-rw-r--r--qa/qa/runtime/logger.rb8
2 files changed, 36 insertions, 5 deletions
diff --git a/qa/qa/runtime/browser.rb b/qa/qa/runtime/browser.rb
index 69ba90702be..340f6dc0356 100644
--- a/qa/qa/runtime/browser.rb
+++ b/qa/qa/runtime/browser.rb
@@ -15,6 +15,10 @@ module QA
CAPYBARA_MAX_WAIT_TIME = 10
+ class << self
+ attr_accessor :rspec_configured, :capybara_configured
+ end
+
def initialize
self.class.configure!
end
@@ -45,11 +49,40 @@ module QA
end
def self.configure!
+ configure_rspec!
+ configure_capybara!
+ end
+
+ def self.configure_rspec!
+ # We don't want to enter this infinite loop:
+ # Runtime::Release.perform_before_hooks -> `QA::Runtime::Browser.visit` -> configure! -> configure_rspec! -> Runtime::Release.perform_before_hooks
+ # So we make sure this method is called only once.
+ return if self.rspec_configured
+
+ browser = self
+
RSpec.configure do |config|
config.define_derived_metadata(file_path: %r{/qa/specs/features/}) do |metadata|
metadata[:type] = :feature
end
+
+ config.before do
+ unless browser.rspec_configured
+ browser.rspec_configured = true
+
+ ##
+ # Perform before hooks, which are different for CE and EE
+ #
+ Runtime::Release.perform_before_hooks
+ end
+ end
end
+ end
+
+ def self.configure_capybara!
+ return if self.capybara_configured
+
+ self.capybara_configured = true
Capybara.server_port = 9887 + ENV['TEST_ENV_NUMBER'].to_i
diff --git a/qa/qa/runtime/logger.rb b/qa/qa/runtime/logger.rb
index 7f73f1bd01b..a70c8faf7d2 100644
--- a/qa/qa/runtime/logger.rb
+++ b/qa/qa/runtime/logger.rb
@@ -14,11 +14,9 @@ module QA
attr_writer :logger
def logger
- return @logger if @logger
-
- @logger = ::Logger.new Runtime::Env.log_destination
- @logger.level = Runtime::Env.debug? ? ::Logger::DEBUG : ::Logger::ERROR
- @logger
+ @logger ||= ::Logger.new(Runtime::Env.log_destination).tap do |logger|
+ logger.level = Runtime::Env.debug? ? ::Logger::DEBUG : ::Logger::ERROR
+ end
end
end
end