scope_spec.rb 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. # Copyright (C) 2012-2025 Zammad Foundation, https://zammad-foundation.org/
  2. require 'rails_helper'
  3. RSpec.describe GroupPolicy::Scope do
  4. subject(:scope) { described_class.new(user, Group) }
  5. let(:groups) { create_list(:group, 3) }
  6. describe '#resolve' do
  7. context 'with customer' do
  8. let(:user) { create(:customer) }
  9. it 'does return all groups' do
  10. expect(scope.resolve).to include(*groups)
  11. end
  12. context 'when customer groups are set' do
  13. before do
  14. Setting.set('customer_ticket_create_group_ids', [groups.first.id])
  15. end
  16. it 'does return first group' do
  17. expect(scope.resolve).to include(groups[0])
  18. end
  19. it 'does not return second and third group' do
  20. expect(scope.resolve).not_to include(*groups[1..])
  21. end
  22. end
  23. end
  24. context 'with agent' do
  25. let(:user) { create(:agent) }
  26. it 'does return all groups' do
  27. expect(scope.resolve).to include(*groups)
  28. end
  29. context 'when customer groups are set' do
  30. before do
  31. Setting.set('customer_ticket_create_group_ids', [groups.first.id])
  32. end
  33. it 'does return all groups' do
  34. expect(scope.resolve).to include(*groups)
  35. end
  36. end
  37. end
  38. context 'with admin' do
  39. let(:user) { create(:admin) }
  40. it 'does return all groups' do
  41. expect(scope.resolve).to include(*groups)
  42. end
  43. context 'when customer groups are set' do
  44. before do
  45. Setting.set('customer_ticket_create_group_ids', [groups.first.id])
  46. end
  47. it 'does return all groups' do
  48. expect(scope.resolve).to include(*groups)
  49. end
  50. end
  51. end
  52. end
  53. end