admin_show_group_list_for_agents_spec.rb 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. # Copyright (C) 2012-2024 Zammad Foundation, https://zammad-foundation.org/
  2. require 'rails_helper'
  3. require 'models/core_workflow/base'
  4. RSpec.describe CoreWorkflow::Custom::AdminShowGroupListForAgents, mariadb: true, type: :model do
  5. include_context 'with core workflow base'
  6. describe 'For Users' do
  7. context 'when creating' do
  8. let(:user_agent) { create(:agent) }
  9. context 'when selected' do
  10. let(:payload) do
  11. base_payload.merge(
  12. 'screen' => 'create',
  13. 'class_name' => 'User',
  14. 'params' => { 'role_ids' => Role.find_by(name: 'Agent').id.to_s },
  15. )
  16. end
  17. it 'shows the groups list' do
  18. expect(result[:visibility]['group_ids']).to eq('show')
  19. end
  20. end
  21. context 'when unselected' do
  22. let(:payload) do
  23. base_payload.merge(
  24. 'screen' => 'create',
  25. 'class_name' => 'User',
  26. 'params' => { 'role_ids' => [Role.find_by(name: 'Customer').to_s] },
  27. )
  28. end
  29. it 'removes the groups list' do
  30. expect(result[:visibility]['group_ids']).to eq('remove')
  31. end
  32. end
  33. end
  34. context 'when editing' do
  35. let(:user_agent) { create(:agent) }
  36. context 'when selected' do
  37. let(:payload) do
  38. base_payload.merge(
  39. 'screen' => 'edit',
  40. 'class_name' => 'User',
  41. 'params' => { 'role_ids' => Role.find_by(name: 'Agent').id.to_s },
  42. )
  43. end
  44. it 'shows the groups list' do
  45. expect(result[:visibility]['group_ids']).to eq('show')
  46. end
  47. end
  48. context 'when unselected' do
  49. let(:payload) do
  50. base_payload.merge(
  51. 'screen' => 'edit',
  52. 'class_name' => 'User',
  53. 'params' => { 'role_ids' => [Role.find_by(name: 'Customer').to_s] },
  54. )
  55. end
  56. it 'removes the groups list' do
  57. expect(result[:visibility]['group_ids']).to eq('remove')
  58. end
  59. end
  60. end
  61. end
  62. describe 'For Roles' do
  63. context 'when creating' do
  64. let(:user_agent) { create(:agent) }
  65. context 'when selected' do
  66. let(:payload) do
  67. base_payload.merge(
  68. 'screen' => 'create',
  69. 'class_name' => 'Role',
  70. 'params' => { 'permission_ids' => Permission.find_by(name: 'ticket.agent').id.to_s },
  71. )
  72. end
  73. it 'shows the groups list' do
  74. expect(result[:visibility]['group_ids']).to eq('show')
  75. end
  76. end
  77. context 'when unselected' do
  78. let(:payload) do
  79. base_payload.merge(
  80. 'screen' => 'create',
  81. 'class_name' => 'Role',
  82. 'params' => { 'permission_ids' => [Permission.find_by(name: 'ticket.customer').to_s] },
  83. )
  84. end
  85. it 'removes the groups list' do
  86. expect(result[:visibility]['group_ids']).to eq('remove')
  87. end
  88. end
  89. end
  90. context 'when editing' do
  91. let(:user_agent) { create(:agent) }
  92. context 'when selected' do
  93. let(:payload) do
  94. base_payload.merge(
  95. 'screen' => 'edit',
  96. 'class_name' => 'Role',
  97. 'params' => { 'permission_ids' => Permission.find_by(name: 'ticket.agent').id.to_s },
  98. )
  99. end
  100. it 'shows the groups list' do
  101. expect(result[:visibility]['group_ids']).to eq('show')
  102. end
  103. end
  104. context 'when unselected' do
  105. let(:payload) do
  106. base_payload.merge(
  107. 'screen' => 'edit',
  108. 'class_name' => 'Role',
  109. 'params' => { 'permission_ids' => [Permission.find_by(name: 'ticket.customer').to_s] },
  110. )
  111. end
  112. it 'removes the groups list' do
  113. expect(result[:visibility]['group_ids']).to eq('remove')
  114. end
  115. end
  116. end
  117. end
  118. end