summaryrefslogtreecommitdiff
path: root/qa/qa/vendor/github/page/login.rb
blob: e581edcb7c7d2fa98ec4f24fd36cb6a470e65e74 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# frozen_string_literal: true

require 'capybara/dsl'

module QA
  module Vendor
    module Github
      module Page
        class Login < Page::Base
          def login
            fill_in 'login', with: QA::Runtime::Env.github_username
            fill_in 'password', with: QA::Runtime::Env.github_password
            click_on 'Sign in'

            Support::Retrier.retry_until(exit_on_failure: true, sleep_interval: 35) do
              otp = OnePassword::CLI.new.otp

              fill_in 'otp', with: otp

              click_on 'Verify'

              !has_text?('Two-factor authentication failed', wait: 1.0)
            end

            click_on 'Authorize gitlab-qa' if has_button?('Authorize gitlab-qa')
          end
        end
      end
    end
  end
end