Use create for all users in specs where necessary

This commit is contained in:
Sebastian Serth
2022-09-20 16:19:24 +02:00
committed by Sebastian Serth
parent 9c9f45ff77
commit 521626275f
10 changed files with 32 additions and 32 deletions

View File

@ -89,8 +89,8 @@ describe InternalUser do
describe '#teacher?' do describe '#teacher?' do
it 'is only true for teachers' do it 'is only true for teachers' do
expect(build(:admin).teacher?).to be false expect(create(:admin).teacher?).to be false
expect(build(:teacher).teacher?).to be true expect(create(:teacher).teacher?).to be true
end end
end end
end end

View File

@ -11,7 +11,7 @@ describe Admin::DashboardPolicy do
end end
it 'does not grant access to teachers' do it 'does not grant access to teachers' do
expect(policy).not_to permit(build(:teacher), :dashboard) expect(policy).not_to permit(create(:teacher), :dashboard)
end end
it 'does not grant access to external users' do it 'does not grant access to external users' do

View File

@ -22,7 +22,7 @@ describe CodeOcean::FilePolicy do
it 'does not grant access to all other users' do it 'does not grant access to all other users' do
%i[external_user teacher].each do |factory_name| %i[external_user teacher].each do |factory_name|
expect(policy).not_to permit(build(factory_name), file) expect(policy).not_to permit(create(factory_name), file)
end end
end end
end end
@ -52,7 +52,7 @@ describe CodeOcean::FilePolicy do
it 'does not grant access to all other users' do it 'does not grant access to all other users' do
%i[admin external_user teacher].each do |factory_name| %i[admin external_user teacher].each do |factory_name|
expect(policy).not_to permit(build(factory_name), file) expect(policy).not_to permit(create(factory_name), file)
end end
end end
end end
@ -72,7 +72,7 @@ describe CodeOcean::FilePolicy do
it 'does not grant access to all other users' do it 'does not grant access to all other users' do
%i[external_user teacher].each do |factory_name| %i[external_user teacher].each do |factory_name|
expect(policy).not_to permit(build(factory_name), file) expect(policy).not_to permit(create(factory_name), file)
end end
end end
end end
@ -82,7 +82,7 @@ describe CodeOcean::FilePolicy do
it 'does not grant access to anyone' do it 'does not grant access to anyone' do
%i[admin external_user teacher].each do |factory_name| %i[admin external_user teacher].each do |factory_name|
expect(policy).not_to permit(build(factory_name), file) expect(policy).not_to permit(create(factory_name), file)
end end
end end
end end

View File

@ -10,7 +10,7 @@ describe ConsumerPolicy do
it 'grants access to admins only' do it 'grants access to admins only' do
expect(policy).to permit(build(:admin), Consumer.new) expect(policy).to permit(build(:admin), Consumer.new)
%i[external_user teacher].each do |factory_name| %i[external_user teacher].each do |factory_name|
expect(policy).not_to permit(build(factory_name), Consumer.new) expect(policy).not_to permit(create(factory_name), Consumer.new)
end end
end end
end end

View File

@ -13,7 +13,7 @@ describe ExecutionEnvironmentPolicy do
end end
it 'grants access to teachers' do it 'grants access to teachers' do
expect(policy).to permit(build(:teacher), execution_environment) expect(policy).to permit(create(:teacher), execution_environment)
end end
it 'does not grant access to external users' do it 'does not grant access to external users' do
@ -33,7 +33,7 @@ describe ExecutionEnvironmentPolicy do
it 'does not grant access to all other users' do it 'does not grant access to all other users' do
%i[external_user teacher].each do |factory_name| %i[external_user teacher].each do |factory_name|
expect(policy).not_to permit(build(factory_name), execution_environment) expect(policy).not_to permit(create(factory_name), execution_environment)
end end
end end
end end
@ -51,7 +51,7 @@ describe ExecutionEnvironmentPolicy do
it 'does not grant access to all other users' do it 'does not grant access to all other users' do
%i[external_user teacher].each do |factory_name| %i[external_user teacher].each do |factory_name|
expect(policy).not_to permit(build(factory_name), execution_environment) expect(policy).not_to permit(create(factory_name), execution_environment)
end end
end end
end end
@ -64,7 +64,7 @@ describe ExecutionEnvironmentPolicy do
it 'does not grant access to all other users' do it 'does not grant access to all other users' do
%i[external_user teacher].each do |factory_name| %i[external_user teacher].each do |factory_name|
expect(policy).not_to permit(build(factory_name)) expect(policy).not_to permit(create(factory_name))
end end
end end
end end

View File

@ -11,7 +11,7 @@ describe ExercisePolicy do
it 'grants access to admins only' do it 'grants access to admins only' do
expect(policy).to permit(build(:admin), exercise) expect(policy).to permit(build(:admin), exercise)
%i[external_user teacher].each do |factory_name| %i[external_user teacher].each do |factory_name|
expect(policy).not_to permit(build(factory_name), exercise) expect(policy).not_to permit(create(factory_name), exercise)
end end
end end
end end
@ -23,7 +23,7 @@ describe ExercisePolicy do
end end
it 'grants access to teachers' do it 'grants access to teachers' do
expect(policy).to permit(build(:teacher), exercise) expect(policy).to permit(create(:teacher), exercise)
end end
it 'does not grant access to external users' do it 'does not grant access to external users' do
@ -44,7 +44,7 @@ describe ExercisePolicy do
it 'does not grant access to all other users' do it 'does not grant access to all other users' do
%i[external_user teacher].each do |factory_name| %i[external_user teacher].each do |factory_name|
expect(policy).not_to permit(build(factory_name), exercise) expect(policy).not_to permit(create(factory_name), exercise)
end end
end end
end end
@ -86,7 +86,7 @@ describe ExercisePolicy do
%i[external_user teacher].each do |factory_name| %i[external_user teacher].each do |factory_name|
context "when user is #{factory_name}" do context "when user is #{factory_name}" do
let(:user) { build(factory_name) } let(:user) { create(factory_name) }
it 'does not grant access' do it 'does not grant access' do
expect(policy).not_to permit(user, exercise) expect(policy).not_to permit(user, exercise)
@ -117,7 +117,7 @@ describe ExercisePolicy do
it 'does not grant access to anyone' do it 'does not grant access to anyone' do
%i[admin external_user teacher].each do |factory_name| %i[admin external_user teacher].each do |factory_name|
expect(policy).not_to permit(build(factory_name), exercise) expect(policy).not_to permit(create(factory_name), exercise)
end end
end end
end end
@ -127,7 +127,7 @@ describe ExercisePolicy 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) expect(policy).to permit(create(factory_name), exercise)
end end
end end
end end
@ -137,7 +137,7 @@ describe ExercisePolicy 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) expect(policy).to permit(create(factory_name), exercise)
end end
end end
end end
@ -155,7 +155,7 @@ describe ExercisePolicy do
it 'does not grant access to everyone' do it 'does not grant access to everyone' do
%i[external_user teacher].each do |factory_name| %i[external_user teacher].each do |factory_name|
expect(policy).not_to permit(build(factory_name), exercise) expect(policy).not_to permit(create(factory_name), exercise)
end end
end end
end end
@ -168,7 +168,7 @@ describe ExercisePolicy 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) expect(policy).to permit(create(factory_name), exercise)
end end
end end
end end
@ -176,7 +176,7 @@ describe ExercisePolicy do
context 'when teacher-defined assessments are not available' do context 'when teacher-defined assessments are not available' do
it 'does not grant access to anyone' do it 'does not grant access to anyone' do
%i[admin external_user teacher].each do |factory_name| %i[admin external_user teacher].each do |factory_name|
expect(policy).not_to permit(build(factory_name), exercise) expect(policy).not_to permit(create(factory_name), exercise)
end end
end end
end end

View File

@ -10,7 +10,7 @@ describe ExternalUserPolicy do
it 'grants access to admins only' do it 'grants access to admins only' do
expect(policy).to permit(build(:admin), ExternalUser.new) expect(policy).to permit(build(:admin), ExternalUser.new)
%i[external_user teacher].each do |factory_name| %i[external_user teacher].each do |factory_name|
expect(policy).not_to permit(build(factory_name), ExternalUser.new) expect(policy).not_to permit(create(factory_name), ExternalUser.new)
end end
end end
end end
@ -18,10 +18,10 @@ describe ExternalUserPolicy do
permissions :index? do permissions :index? 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(create(:admin), ExternalUser.new)
expect(policy).to permit(build(:teacher), ExternalUser.new) expect(policy).to permit(create(:teacher), ExternalUser.new)
[:external_user].each do |factory_name| [:external_user].each do |factory_name|
expect(policy).not_to permit(build(factory_name), ExternalUser.new) expect(policy).not_to permit(create(factory_name), ExternalUser.new)
end end
end end
end end

View File

@ -19,7 +19,7 @@ describe FileTypePolicy do
it 'does not grant access to all other users' do it 'does not grant access to all other users' do
%i[external_user teacher].each do |factory_name| %i[external_user teacher].each do |factory_name|
expect(policy).not_to permit(build(factory_name), file_type) expect(policy).not_to permit(create(factory_name), file_type)
end end
end end
end end

View File

@ -10,7 +10,7 @@ describe InternalUserPolicy do
it 'grants access to admins only' do it 'grants access to admins only' do
expect(policy).to permit(build(:admin), InternalUser.new) expect(policy).to permit(build(:admin), InternalUser.new)
%i[external_user teacher].each do |factory_name| %i[external_user teacher].each do |factory_name|
expect(policy).not_to permit(build(factory_name), InternalUser.new) expect(policy).not_to permit(create(factory_name), InternalUser.new)
end end
end end
end end
@ -20,7 +20,7 @@ describe InternalUserPolicy do
context 'with an admin user' do context 'with an admin user' do
it 'grants access to no one' do it 'grants access to no one' do
%i[admin external_user teacher].each do |factory_name| %i[admin external_user teacher].each do |factory_name|
expect(policy).not_to permit(build(factory_name), build(:admin)) expect(policy).not_to permit(create(factory_name), build(:admin))
end end
end end
end end
@ -29,7 +29,7 @@ describe InternalUserPolicy do
it 'grants access to admins only' do it 'grants access to admins only' do
expect(policy).to permit(build(:admin), InternalUser.new) expect(policy).to permit(build(:admin), InternalUser.new)
%i[external_user teacher].each do |factory_name| %i[external_user teacher].each do |factory_name|
expect(policy).not_to permit(build(factory_name), build(:teacher)) expect(policy).not_to permit(create(factory_name), create(:teacher))
end end
end end
end end

View File

@ -8,7 +8,7 @@ describe SubmissionPolicy do
permissions :create? do permissions :create? 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), Submission.new) expect(policy).to permit(create(factory_name), Submission.new)
end end
end end
end end
@ -30,7 +30,7 @@ describe SubmissionPolicy do
it 'grants access to admins only' do it 'grants access to admins only' do
expect(policy).to permit(build(:admin), Submission.new) expect(policy).to permit(build(:admin), Submission.new)
%i[external_user teacher].each do |factory_name| %i[external_user teacher].each do |factory_name|
expect(policy).not_to permit(build(factory_name), Submission.new) expect(policy).not_to permit(create(factory_name), Submission.new)
end end
end end
end end