diff options
author | Lin Jen-Shin <godfat@godfat.org> | 2017-07-27 21:45:17 +0800 |
---|---|---|
committer | Lin Jen-Shin <godfat@godfat.org> | 2017-07-28 17:27:44 +0800 |
commit | 1744930d0930dc534e984decc5143b25cc19945f (patch) | |
tree | f9250d868f7bf7a86bc7e9beedfe962e71fc1520 | |
parent | 190fae5f0cef11d68c7385be0c4013931796f958 (diff) | |
download | gitlab-ce-remove-default-access-levels.tar.gz |
Make access level more compatible with EEremove-default-access-levels
So the behaviour would be similar in CE and EE
-rw-r--r-- | spec/factories/protected_branches.rb | 46 | ||||
-rw-r--r-- | spec/factories/protected_tags.rb | 36 |
2 files changed, 67 insertions, 15 deletions
diff --git a/spec/factories/protected_branches.rb b/spec/factories/protected_branches.rb index b2695e0482a..84beb762c74 100644 --- a/spec/factories/protected_branches.rb +++ b/spec/factories/protected_branches.rb @@ -3,26 +3,54 @@ FactoryGirl.define do name project - after(:build) do |protected_branch| - protected_branch.push_access_levels.new(access_level: Gitlab::Access::MASTER) - protected_branch.merge_access_levels.new(access_level: Gitlab::Access::MASTER) + transient do + default_access_level true end trait :developers_can_push do - after(:create) do |protected_branch| - protected_branch.push_access_levels.first.update!(access_level: Gitlab::Access::DEVELOPER) + transient do + default_access_level false + end + + after(:build) do |protected_branch| + protected_branch.push_access_levels.new(access_level: Gitlab::Access::DEVELOPER) end end trait :developers_can_merge do - after(:create) do |protected_branch| - protected_branch.merge_access_levels.first.update!(access_level: Gitlab::Access::DEVELOPER) + transient do + default_access_level false + end + + after(:build) do |protected_branch| + protected_branch.merge_access_levels.new(access_level: Gitlab::Access::DEVELOPER) end end trait :no_one_can_push do - after(:create) do |protected_branch| - protected_branch.push_access_levels.first.update!(access_level: Gitlab::Access::NO_ACCESS) + transient do + default_access_level false + end + + after(:build) do |protected_branch| + protected_branch.push_access_levels.new(access_level: Gitlab::Access::NO_ACCESS) + end + end + + trait :masters_can_push do + transient do + default_access_level false + end + + after(:build) do |protected_branch| + protected_branch.push_access_levels.new(access_level: Gitlab::Access::MASTER) + end + end + + after(:build) do |protected_branch, evaluator| + if evaluator.default_access_level + protected_branch.push_access_levels.new(access_level: Gitlab::Access::MASTER) + protected_branch.merge_access_levels.new(access_level: Gitlab::Access::MASTER) end end end diff --git a/spec/factories/protected_tags.rb b/spec/factories/protected_tags.rb index d8e90ae1ee1..225588b23cc 100644 --- a/spec/factories/protected_tags.rb +++ b/spec/factories/protected_tags.rb @@ -3,19 +3,43 @@ FactoryGirl.define do name project - after(:build) do |protected_tag| - protected_tag.create_access_levels.new(access_level: Gitlab::Access::MASTER) + transient do + default_access_level true end trait :developers_can_create do - after(:create) do |protected_tag| - protected_tag.create_access_levels.first.update!(access_level: Gitlab::Access::DEVELOPER) + 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 - after(:create) do |protected_tag| - protected_tag.create_access_levels.first.update!(access_level: Gitlab::Access::NO_ACCESS) + 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 |