diff options
Diffstat (limited to 'spec/factories/protected_branches.rb')
-rw-r--r-- | spec/factories/protected_branches.rb | 52 |
1 files changed, 35 insertions, 17 deletions
diff --git a/spec/factories/protected_branches.rb b/spec/factories/protected_branches.rb index bac1cf21596..425352783dd 100644 --- a/spec/factories/protected_branches.rb +++ b/spec/factories/protected_branches.rb @@ -6,11 +6,25 @@ FactoryBot.define do project transient do + ee { false } default_push_level { true } default_merge_level { true } default_access_level { true } end + after(:create) do |protected_branch, evaluator| + break unless protected_branch.project&.persisted? + + ProtectedBranches::CacheService.new(protected_branch.project).refresh + end + + after(:build) do |obj, ctx| + next if ctx.ee || !ctx.default_access_level + + obj.push_access_levels.new(access_level: Gitlab::Access::MAINTAINER) if ctx.default_push_level + obj.merge_access_levels.new(access_level: Gitlab::Access::MAINTAINER) if ctx.default_merge_level + end + trait :create_branch_on_repository do association :project, factory: [:project, :repository] @@ -25,59 +39,63 @@ FactoryBot.define do end end - trait :developers_can_push do + trait :maintainers_can_push do transient do default_push_level { false } end after(:build) do |protected_branch| - protected_branch.push_access_levels.new(access_level: Gitlab::Access::DEVELOPER) + protected_branch.push_access_levels.new(access_level: Gitlab::Access::MAINTAINER) end end - trait :developers_can_merge do + trait :maintainers_can_merge do transient do - default_merge_level { false } + default_push_level { false } end after(:build) do |protected_branch| - protected_branch.merge_access_levels.new(access_level: Gitlab::Access::DEVELOPER) + protected_branch.push_access_levels.new(access_level: Gitlab::Access::MAINTAINER) end end - trait :no_one_can_push do + trait :developers_can_push do transient do default_push_level { false } end after(:build) do |protected_branch| - protected_branch.push_access_levels.new(access_level: Gitlab::Access::NO_ACCESS) + protected_branch.push_access_levels.new(access_level: Gitlab::Access::DEVELOPER) end end - trait :maintainers_can_push do + trait :developers_can_merge do transient do - default_push_level { false } + default_merge_level { false } end after(:build) do |protected_branch| - protected_branch.push_access_levels.new(access_level: Gitlab::Access::MAINTAINER) + protected_branch.merge_access_levels.new(access_level: Gitlab::Access::DEVELOPER) end end - after(:build) do |protected_branch, evaluator| - if evaluator.default_access_level && evaluator.default_push_level - protected_branch.push_access_levels.new(access_level: Gitlab::Access::MAINTAINER) + trait :no_one_can_push do + transient do + default_push_level { false } end - if evaluator.default_access_level && evaluator.default_merge_level - protected_branch.merge_access_levels.new(access_level: Gitlab::Access::MAINTAINER) + after(:build) do |protected_branch| + protected_branch.push_access_levels.new(access_level: Gitlab::Access::NO_ACCESS) end end trait :no_one_can_merge do - after(:create) do |protected_branch| - protected_branch.merge_access_levels.first.update!(access_level: Gitlab::Access::NO_ACCESS) + transient do + default_merge_level { false } + end + + after(:build) do |protected_branch| + protected_branch.merge_access_levels.new(access_level: Gitlab::Access::NO_ACCESS) end end end |