Simplify permission specs
* Remove iteration if not required * Unify usage of parentheses for `permissions` call
This commit is contained in:

committed by
Sebastian Serth

parent
e0c2c7b806
commit
e5879eb606
@ -104,41 +104,35 @@ describe ExercisePolicy do
|
||||
end
|
||||
end
|
||||
|
||||
[:show?].each do |action|
|
||||
permissions(action) do
|
||||
it 'not grants access to external users' do
|
||||
expect(policy).not_to permit(build(:external_user), exercise)
|
||||
permissions :show? do
|
||||
it 'not grants access to external users' do
|
||||
expect(policy).not_to permit(build(:external_user), exercise)
|
||||
end
|
||||
end
|
||||
|
||||
permissions :implement? do
|
||||
it 'grants access to anyone' do
|
||||
%i[admin external_user teacher].each do |factory_name|
|
||||
expect(policy).to permit(build(factory_name), Exercise.new)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
%i[implement?].each do |action|
|
||||
permissions(action) do
|
||||
permissions :submit? do
|
||||
context 'when teacher-defined assessments are available' do
|
||||
before { create(:test_file, context: exercise) }
|
||||
|
||||
it 'grants access to anyone' do
|
||||
%i[admin external_user teacher].each do |factory_name|
|
||||
expect(policy).to permit(build(factory_name), Exercise.new)
|
||||
expect(policy).to permit(build(factory_name), exercise)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
%i[submit?].each do |action|
|
||||
permissions(action) do
|
||||
context 'when teacher-defined assessments are available' do
|
||||
before { create(:test_file, context: exercise) }
|
||||
|
||||
it 'grants access to anyone' do
|
||||
%i[admin external_user teacher].each do |factory_name|
|
||||
expect(policy).to permit(build(factory_name), exercise)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'when teacher-defined assessments are not available' do
|
||||
it 'does not grant access to anyone' do
|
||||
%i[admin external_user teacher].each do |factory_name|
|
||||
expect(policy).not_to permit(build(factory_name), exercise)
|
||||
end
|
||||
context 'when teacher-defined assessments are not available' do
|
||||
it 'does not grant access to anyone' do
|
||||
%i[admin external_user teacher].each do |factory_name|
|
||||
expect(policy).not_to permit(build(factory_name), exercise)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Reference in New Issue
Block a user