Merge branch 'ml-qa-register-user-failure' into 'master'
QA: Retry registration before failing See merge request gitlab-org/gitlab-ce!22033
This commit is contained in:
commit
62bd3045a3
4 changed files with 41 additions and 23 deletions
|
@ -5,22 +5,22 @@
|
|||
= devise_error_messages!
|
||||
.form-group
|
||||
= f.label :name, 'Full name', class: 'label-bold'
|
||||
= f.text_field :name, class: "form-control top", required: true, title: "This field is required."
|
||||
= f.text_field :name, class: "form-control top qa-new-user-name", required: true, title: "This field is required."
|
||||
.username.form-group
|
||||
= f.label :username, class: 'label-bold'
|
||||
= f.text_field :username, class: "form-control middle", pattern: Gitlab::PathRegex::NAMESPACE_FORMAT_REGEX_JS, required: true, title: 'Please create a username with only alphanumeric characters.'
|
||||
= f.text_field :username, class: "form-control middle qa-new-user-username", pattern: Gitlab::PathRegex::NAMESPACE_FORMAT_REGEX_JS, required: true, title: 'Please create a username with only alphanumeric characters.'
|
||||
%p.validation-error.hide Username is already taken.
|
||||
%p.validation-success.hide Username is available.
|
||||
%p.validation-pending.hide Checking username availability...
|
||||
.form-group
|
||||
= f.label :email, class: 'label-bold'
|
||||
= f.email_field :email, class: "form-control middle", required: true, title: "Please provide a valid email address."
|
||||
= f.email_field :email, class: "form-control middle qa-new-user-email", required: true, title: "Please provide a valid email address."
|
||||
.form-group
|
||||
= f.label :email_confirmation, class: 'label-bold'
|
||||
= f.email_field :email_confirmation, class: "form-control middle", required: true, title: "Please retype the email address."
|
||||
= f.email_field :email_confirmation, class: "form-control middle qa-new-user-email-confirmation", required: true, title: "Please retype the email address."
|
||||
.form-group.append-bottom-20#password-strength
|
||||
= f.label :password, class: 'label-bold'
|
||||
= f.password_field :password, class: "form-control bottom", required: true, pattern: ".{#{@minimum_password_length},}", title: "Minimum length is #{@minimum_password_length} characters."
|
||||
= f.password_field :password, class: "form-control bottom qa-new-user-password", required: true, pattern: ".{#{@minimum_password_length},}", title: "Minimum length is #{@minimum_password_length} characters."
|
||||
%p.gl-field-hint.text-secondary Minimum length is #{@minimum_password_length} characters
|
||||
- if Gitlab::CurrentSettings.current_application_settings.enforce_terms?
|
||||
.form-group
|
||||
|
@ -33,4 +33,4 @@
|
|||
- if Gitlab::Recaptcha.enabled?
|
||||
= recaptcha_tags
|
||||
.submit-container
|
||||
= f.submit "Register", class: "btn-register btn"
|
||||
= f.submit "Register", class: "btn-register btn qa-new-user-register-button"
|
||||
|
|
|
@ -32,6 +32,21 @@ module QA
|
|||
false
|
||||
end
|
||||
|
||||
def with_retry(max_attempts: 3, reload: false)
|
||||
attempts = 0
|
||||
|
||||
while attempts < max_attempts
|
||||
result = yield
|
||||
return result if result
|
||||
|
||||
refresh if reload
|
||||
|
||||
attempts += 1
|
||||
end
|
||||
|
||||
false
|
||||
end
|
||||
|
||||
def scroll_to(selector, text: nil)
|
||||
page.execute_script <<~JS
|
||||
var elements = Array.from(document.querySelectorAll('#{selector}'));
|
||||
|
|
|
@ -68,10 +68,6 @@ module QA
|
|||
end
|
||||
end
|
||||
|
||||
def assert_has_personal_area
|
||||
raise "Failed to sign in" unless has_personal_area?
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def within_top_menu
|
||||
|
|
|
@ -1,25 +1,32 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module QA
|
||||
module Page
|
||||
module Main
|
||||
class SignUp < Page::Base
|
||||
view 'app/views/devise/shared/_signup_box.html.haml' do
|
||||
element :name, 'text_field :name'
|
||||
element :username, 'text_field :username'
|
||||
element :email_field, 'email_field :email'
|
||||
element :email_confirmation, 'email_field :email_confirmation'
|
||||
element :password, 'password_field :password'
|
||||
element :register_button, 'submit "Register"'
|
||||
element :new_user_name
|
||||
element :new_user_username
|
||||
element :new_user_email
|
||||
element :new_user_email_confirmation
|
||||
element :new_user_password
|
||||
element :new_user_register_button
|
||||
end
|
||||
|
||||
def sign_up!(user)
|
||||
fill_in :new_user_name, with: user.name
|
||||
fill_in :new_user_username, with: user.username
|
||||
fill_in :new_user_email, with: user.email
|
||||
fill_in :new_user_email_confirmation, with: user.email
|
||||
fill_in :new_user_password, with: user.password
|
||||
click_button 'Register'
|
||||
fill_element :new_user_name, user.name
|
||||
fill_element :new_user_username, user.username
|
||||
fill_element :new_user_email, user.email
|
||||
fill_element :new_user_email_confirmation, user.email
|
||||
fill_element :new_user_password, user.password
|
||||
|
||||
Page::Main::Menu.act { assert_has_personal_area }
|
||||
signed_in = with_retry do
|
||||
click_element :new_user_register_button
|
||||
|
||||
Page::Main::Menu.act { has_personal_area? }
|
||||
end
|
||||
|
||||
raise "Failed to register and sign in" unless signed_in
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue