Simplify permission specs

* Remove iteration if not required
* Unify usage of parentheses for `permissions` call
This commit is contained in:
Sebastian Serth
2022-08-22 13:15:52 +02:00
committed by Sebastian Serth
parent e0c2c7b806
commit e5879eb606
4 changed files with 37 additions and 47 deletions

View File

@ -54,7 +54,7 @@ describe CodeharborLinkPolicy do
end end
end end
permissions(:enabled?) do permissions :enabled? do
it 'reflects the config option' do it 'reflects the config option' do
%i[external_user admin teacher].each do |factory_name| %i[external_user admin teacher].each do |factory_name|
expect(policy).to permit(create(factory_name), codeharbor_link) expect(policy).to permit(create(factory_name), codeharbor_link)
@ -72,7 +72,7 @@ describe CodeharborLinkPolicy do
allow(codeocean_config).to receive(:read).and_return(codeharbor_config) allow(codeocean_config).to receive(:read).and_return(codeharbor_config)
end end
permissions(:enabled?) do permissions :enabled? do
it 'reflects the config option' do it 'reflects the config option' do
%i[external_user admin teacher].each do |factory_name| %i[external_user admin teacher].each do |factory_name|
expect(policy).not_to permit(create(factory_name), codeharbor_link) expect(policy).not_to permit(create(factory_name), codeharbor_link)

View File

@ -7,8 +7,7 @@ describe ExecutionEnvironmentPolicy do
let(:execution_environment) { build(:ruby) } let(:execution_environment) { build(:ruby) }
[:index?].each do |action| permissions :index? do
permissions(action) do
it 'grants access to admins' do it 'grants access to admins' do
expect(policy).to permit(build(:admin), execution_environment) expect(policy).to permit(build(:admin), execution_environment)
end end
@ -21,7 +20,6 @@ describe ExecutionEnvironmentPolicy do
expect(policy).not_to permit(build(:external_user), execution_environment) expect(policy).not_to permit(build(:external_user), execution_environment)
end end
end end
end
%i[execute_command? shell? statistics? show?].each do |action| %i[execute_command? shell? statistics? show?].each do |action|
permissions(action) do permissions(action) do
@ -59,7 +57,7 @@ describe ExecutionEnvironmentPolicy do
end end
end end
permissions(:sync_all_to_runner_management?) do permissions :sync_all_to_runner_management? do
it 'grants access to the admin' do it 'grants access to the admin' do
expect(policy).to permit(build(:admin)) expect(policy).to permit(build(:admin))
end end

View File

@ -104,26 +104,21 @@ describe ExercisePolicy do
end end
end end
[:show?].each do |action| permissions :show? do
permissions(action) do
it 'not grants access to external users' do it 'not grants access to external users' do
expect(policy).not_to permit(build(:external_user), exercise) expect(policy).not_to permit(build(:external_user), exercise)
end end
end end
end
%i[implement?].each do |action| permissions :implement? do
permissions(action) do
it 'grants access to anyone' do it 'grants access to anyone' do
%i[admin external_user teacher].each do |factory_name| %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.new)
end end
end end
end end
end
%i[submit?].each do |action| permissions :submit? do
permissions(action) do
context 'when teacher-defined assessments are available' do context 'when teacher-defined assessments are available' do
before { create(:test_file, context: exercise) } before { create(:test_file, context: exercise) }
@ -142,7 +137,6 @@ describe ExercisePolicy do
end end
end end
end end
end
describe ExercisePolicy::Scope do describe ExercisePolicy::Scope do
describe '#resolve' do describe '#resolve' do

View File

@ -16,8 +16,7 @@ describe ExternalUserPolicy do
end end
end end
[:index?].each do |action| permissions :index? do
permissions(action) do
it 'grants access to admins and teachers only' do it 'grants access to admins and teachers only' do
expect(policy).to permit(build(:admin), ExternalUser.new) expect(policy).to permit(build(:admin), ExternalUser.new)
expect(policy).to permit(build(:teacher), ExternalUser.new) expect(policy).to permit(build(:teacher), ExternalUser.new)
@ -26,5 +25,4 @@ describe ExternalUserPolicy do
end end
end end
end end
end
end end