diff options
author | Rémy Coutable <remy@rymai.me> | 2018-10-10 16:18:36 +0000 |
---|---|---|
committer | Cindy Pallares <cindy@gitlab.com> | 2018-10-11 16:34:43 -0500 |
commit | 77256e2601095bedfbb6834d1ec30666cae2fc1f (patch) | |
tree | 83d0daa2d5ed0c3530d81b5927b6d8d1c2579a7e /qa | |
parent | d64bc275d814c0ff26e4282677a39eaa4a668f80 (diff) | |
download | gitlab-ce-77256e2601095bedfbb6834d1ec30666cae2fc1f.tar.gz |
Merge branch 'ml-qa-register-user-failure' into 'master'
QA: Retry registration before failing
See merge request gitlab-org/gitlab-ce!22033
Diffstat (limited to 'qa')
-rw-r--r-- | qa/qa/page/base.rb | 15 | ||||
-rw-r--r-- | qa/qa/page/main/menu.rb | 4 | ||||
-rw-r--r-- | qa/qa/page/main/sign_up.rb | 33 |
3 files changed, 35 insertions, 17 deletions
diff --git a/qa/qa/page/base.rb b/qa/qa/page/base.rb index 142707521df..c1cf145a9db 100644 --- a/qa/qa/page/base.rb +++ b/qa/qa/page/base.rb @@ -28,6 +28,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}')); diff --git a/qa/qa/page/main/menu.rb b/qa/qa/page/main/menu.rb index e18b95bde9f..a2ee696e1b3 100644 --- a/qa/qa/page/main/menu.rb +++ b/qa/qa/page/main/menu.rb @@ -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 diff --git a/qa/qa/page/main/sign_up.rb b/qa/qa/page/main/sign_up.rb index dddda4f2bdf..b33ea03fc55 100644 --- a/qa/qa/page/main/sign_up.rb +++ b/qa/qa/page/main/sign_up.rb @@ -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 + + signed_in = with_retry do + click_element :new_user_register_button + + Page::Main::Menu.act { has_personal_area? } + end - Page::Main::Menu.act { assert_has_personal_area } + raise "Failed to register and sign in" unless signed_in end end end |