Commit 0afbdee0 authored by Robert Speicher's avatar Robert Speicher

Refactor `run_group_permission_checks` helper in GitAccess spec

This uses the same thinking as the earlier `run_permission_checks`
refactor, to run all of the checks for the matrix in a single `it` block
to avoid repeated setup.
parent 202d6d4a
...@@ -453,24 +453,22 @@ describe Gitlab::GitAccess do ...@@ -453,24 +453,22 @@ describe Gitlab::GitAccess do
# Run permission checks for a group # Run permission checks for a group
def self.run_group_permission_checks(permissions_matrix) def self.run_group_permission_checks(permissions_matrix)
permissions_matrix.keys.each do |role| permissions_matrix.each_pair do |role, matrix|
describe "#{role} access" do it "has the correct permissions for group #{role}s" do
before do project
project.project_group_links.create( .project_group_links
group: group, group_access: Gitlab::Access.sym_options[role] .create(group: group, group_access: Gitlab::Access.sym_options[role])
)
end
permissions_matrix[role].each do |action, allowed| aggregate_failures do
context action.to_s do matrix.each do |action, allowed|
subject { access.send(:check_push_access!, changes[action]) } check = -> { access.send(:check_push_access!, changes[action]) }
it do if allowed
if allowed expect(&check).not_to raise_error,
expect { subject }.not_to raise_error -> { "expected #{action} to be allowed" }
else else
expect { subject }.to raise_error(Gitlab::GitAccess::UnauthorizedError) expect(&check).to raise_error(Gitlab::GitAccess::UnauthorizedError),
end -> { "expected #{action} to be disallowed" }
end end
end end
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment