dd3b738d5b
1. `GitPushService` was still using `{merge,push}_access_level_attributes` instead of `{merge,push}_access_levels_attributes`. 2. The branches API creates access levels regardless of the state of the `developers_can_{push,merge}` parameters. This is in line with the UI, where Master access is the default for a new protected branch. 3. Use `after(:build)` to create access levels in the `protected_branches` factory, so that `factories_spec` passes. It only builds records, so we need to create access levels on `build` as well.
29 lines
885 B
Ruby
29 lines
885 B
Ruby
FactoryGirl.define do
|
|
factory :protected_branch 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)
|
|
end
|
|
|
|
trait :developers_can_push do
|
|
after(:create) do |protected_branch|
|
|
protected_branch.push_access_levels.first.update!(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)
|
|
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)
|
|
end
|
|
end
|
|
end
|
|
end
|