summaryrefslogtreecommitdiff
path: root/qa/qa/specs/features/browser_ui/1_manage/user/impersonation_token_spec.rb
blob: ce5d9307769a8fc96e115e94fdd6cbb3cded0bd2 (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
32
# frozen_string_literal: true

module QA
  RSpec.describe 'Manage' do
    describe 'Impersonation tokens', :requires_admin, product_group: :authentication_and_authorization do
      let(:admin_api_client) { Runtime::API::Client.as_admin }

      let!(:user) do
        Resource::User.fabricate_via_api! do |usr|
          usr.api_client = admin_api_client
          usr.hard_delete_on_api_removal = true
        end
      end

      it(
        'can be created and revoked via the UI',
        testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/368888'
      ) do
        impersonation_token = QA::Resource::ImpersonationToken.fabricate_via_browser_ui! do |impersonation_token|
          impersonation_token.api_client = admin_api_client
          impersonation_token.user = user
        end

        expect(impersonation_token.token).not_to be_nil

        impersonation_token.revoke_via_browser_ui!

        expect(page).to have_text("Revoked impersonation token #{impersonation_token.name}!")
      end
    end
  end
end