Welcome to mirror list, hosted at ThFree Co, Russian Federation.

_form.html.haml_spec.rb « deploy_tokens « shared « views « spec - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 74ad0ccb77aa2d37ed7ca44f2ec69f583c340204 (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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# frozen_string_literal: true

require 'spec_helper'

RSpec.describe 'shared/deploy_tokens/_form.html.haml' do
  using RSpec::Parameterized::TableSyntax

  let_it_be(:user) { create(:user) }
  let_it_be(:token) { build(:deploy_token) }

  RSpec.shared_examples "display deploy token settings" do |role, shows_package_registry_permissions|
    before do
      subject.add_member(user, role)
      allow(view).to receive(:current_user).and_return(user)
      stub_config(packages: { enabled: packages_enabled })
    end

    it "correctly renders the form" do
      render 'shared/deploy_tokens/form', token: token, group_or_project: subject

      if shows_package_registry_permissions
        expect(rendered).to have_content('Allows read-only access to the package registry.')
      else
        expect(rendered).not_to have_content('Allows read-only access to the package registry.')
      end
    end
  end

  context "when the subject is a project" do
    let_it_be(:subject, refind: true) { create(:project, :private) }

    where(:packages_enabled, :feature_enabled, :role, :shows_package_registry_permissions) do
      true  | true  | :maintainer | true
      false | true  | :maintainer | false
      true  | false | :maintainer | false
      false | false | :maintainer | false
    end

    with_them do
      before do
        subject.update!(packages_enabled: feature_enabled)
      end

      it_behaves_like 'display deploy token settings', params[:role], params[:shows_package_registry_permissions]
    end
  end

  context "when the subject is a group" do
    let_it_be(:subject, refind: true) { create(:group, :private) }

    where(:packages_enabled, :role, :shows_package_registry_permissions) do
      true  | :owner      | true
      false | :owner      | false
      true  | :maintainer | true
      false | :maintainer | false
    end

    with_them do
      it_behaves_like 'display deploy token settings', params[:role], params[:shows_package_registry_permissions]
    end
  end
end