Commit 439bde00 authored by Mark Lapierre's avatar Mark Lapierre

Merge branch 'qa-check-server-responding-before-suit' into 'master'

Wait for login page to load at the beginning of QA suite

See merge request gitlab-org/gitlab-ce!24991
parents 82423ac3 621b9212
...@@ -40,17 +40,9 @@ module QA ...@@ -40,17 +40,9 @@ module QA
element :login_page element :login_page
end end
def initialize def page_loaded?
# The login page is usually the entry point for all the scenarios so wait(max: 60) do
# we need to wait for the instance to start. That said, in some cases has_element?(:login_page)
# we are already logged-in so we check both cases here.
# Check if we're already logged in first. If we don't then we have to
# wait 10 seconds for the check for the login page to fail every time
# we use this class when we're already logged in (E.g., whenever we
# create a personal access token to use for API access).
wait(max: 500) do
Page::Main::Menu.act { has_personal_area?(wait: 0) } ||
has_element?(:login_page)
end end
end end
......
...@@ -3,6 +3,20 @@ require_relative '../qa' ...@@ -3,6 +3,20 @@ require_relative '../qa'
Dir[::File.join(__dir__, 'support', '**', '*.rb')].each { |f| require f } Dir[::File.join(__dir__, 'support', '**', '*.rb')].each { |f| require f }
RSpec.configure do |config| RSpec.configure do |config|
ServerNotRespondingError = Class.new(RuntimeError)
# The login page could take some time to load the first time it is visited.
# We visit the login page and wait for it to properly load only once at the beginning of the suite.
config.before(:suite) do
if QA::Runtime::Scenario.respond_to?(:gitlab_address)
QA::Runtime::Browser.visit(:gitlab, QA::Page::Main::Login)
unless QA::Page::Main::Login.perform(&:page_loaded?)
raise ServerNotRespondingError, "Login page did not load at #{QA::Page::Main::Login.perform(&:current_url)}"
end
end
end
config.before do |example| config.before do |example|
QA::Runtime::Logger.debug("Starting test: #{example.full_description}") if QA::Runtime::Env.debug? QA::Runtime::Logger.debug("Starting test: #{example.full_description}") if QA::Runtime::Env.debug?
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment