diff options
Diffstat (limited to 'qa/qa/flow/login.rb')
-rw-r--r-- | qa/qa/flow/login.rb | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/qa/qa/flow/login.rb b/qa/qa/flow/login.rb index d23d8eaf097..05a509588f1 100644 --- a/qa/qa/flow/login.rb +++ b/qa/qa/flow/login.rb @@ -5,10 +5,10 @@ module QA module Login module_function - def while_signed_in(as: nil, address: :gitlab) + def while_signed_in(as: nil, address: :gitlab, admin: false) Page::Main::Menu.perform(&:sign_out_if_signed_in) - sign_in(as: as, address: address) + sign_in(as: as, address: address, admin: admin) result = yield @@ -17,19 +17,25 @@ module QA end def while_signed_in_as_admin(address: :gitlab) - while_signed_in(as: Runtime::User.admin, address: address) do + while_signed_in(address: address, admin: true) do yield end end - def sign_in(as: nil, address: :gitlab, skip_page_validation: false) + def sign_in(as: nil, address: :gitlab, skip_page_validation: false, admin: false) Page::Main::Menu.perform(&:sign_out) if Page::Main::Menu.perform(&:signed_in?) Runtime::Browser.visit(address, Page::Main::Login) - Page::Main::Login.perform { |login| login.sign_in_using_credentials(user: as, skip_page_validation: skip_page_validation) } + Page::Main::Login.perform do |login| + if admin + login.sign_in_using_admin_credentials + else + login.sign_in_using_credentials(user: as, skip_page_validation: skip_page_validation) + end + end end def sign_in_as_admin(address: :gitlab) - sign_in(as: Runtime::User.admin, address: address) + sign_in(as: Runtime::User.admin, address: address, admin: true) end def sign_in_unless_signed_in(as: nil, address: :gitlab) |