Files
codeocean/spec/policies/programming_group_policy_spec.rb
Sebastian Serth 99bd46af1a Align project files with CodeHarbor
Since both projects are developed together and by the same team, we also want to have the same code structure and utility methods available in both projects. Therefore, this commit changes many files, but without a functional change.
2023-10-11 00:18:33 +02:00

36 lines
1013 B
Ruby

# frozen_string_literal: true
require 'rails_helper'
RSpec.describe ProgrammingGroupPolicy do
subject(:policy) { described_class }
let(:programming_group) { build(:programming_group) }
%i[new? create?].each do |action|
permissions(action) do
it 'grants access to everyone' do
%i[external_user teacher admin].each do |factory_name|
expect(policy).to permit(create(factory_name), programming_group)
end
end
end
permissions(:stream_sync_editor?) do
it 'grants access to admins' do
expect(policy).to permit(create(:admin), programming_group)
end
it 'grants access to members of the programming group' do
programming_group.users do |user|
expect(policy).to permit(user, programming_group)
end
end
it 'does not grant access to someone who is not a member of the programming group' do
expect(policy).not_to permit(create(:external_user), programming_group)
end
end
end
end