summaryrefslogtreecommitdiff
path: root/spec/factories/protected_tags.rb
blob: df9c8b3cb6345e81018b4bd97c02a37a76984700 (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
FactoryBot.define do
  factory :protected_tag do
    name
    project

    transient do
      default_access_level true
    end

    trait :developers_can_create do
      transient do
        default_access_level false
      end

      after(:build) do |protected_tag|
        protected_tag.create_access_levels.new(access_level: Gitlab::Access::DEVELOPER)
      end
    end

    trait :no_one_can_create do
      transient do
        default_access_level false
      end

      after(:build) do |protected_tag|
        protected_tag.create_access_levels.new(access_level: Gitlab::Access::NO_ACCESS)
      end
    end

    trait :masters_can_create do
      transient do
        default_access_level false
      end

      after(:build) do |protected_tag|
        protected_tag.create_access_levels.new(access_level: Gitlab::Access::MASTER)
      end
    end

    after(:build) do |protected_tag, evaluator|
      if evaluator.default_access_level
        protected_tag.create_access_levels.new(access_level: Gitlab::Access::MASTER)
      end
    end
  end
end