123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- # Copyright (C) 2012-2025 Zammad Foundation, https://zammad-foundation.org/
- require 'rails_helper'
- RSpec.describe GroupPolicy::Scope do
- subject(:scope) { described_class.new(user, Group) }
- let(:groups) { create_list(:group, 3) }
- describe '#resolve' do
- context 'with customer' do
- let(:user) { create(:customer) }
- it 'does return all groups' do
- expect(scope.resolve).to include(*groups)
- end
- context 'when customer groups are set' do
- before do
- Setting.set('customer_ticket_create_group_ids', [groups.first.id])
- end
- it 'does return first group' do
- expect(scope.resolve).to include(groups[0])
- end
- it 'does not return second and third group' do
- expect(scope.resolve).not_to include(*groups[1..])
- end
- end
- end
- context 'with agent' do
- let(:user) { create(:agent) }
- it 'does return all groups' do
- expect(scope.resolve).to include(*groups)
- end
- context 'when customer groups are set' do
- before do
- Setting.set('customer_ticket_create_group_ids', [groups.first.id])
- end
- it 'does return all groups' do
- expect(scope.resolve).to include(*groups)
- end
- end
- end
- context 'with admin' do
- let(:user) { create(:admin) }
- it 'does return all groups' do
- expect(scope.resolve).to include(*groups)
- end
- context 'when customer groups are set' do
- before do
- Setting.set('customer_ticket_create_group_ids', [groups.first.id])
- end
- it 'does return all groups' do
- expect(scope.resolve).to include(*groups)
- end
- end
- end
- end
- end
|