123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- # Copyright (C) 2012-2024 Zammad Foundation, https://zammad-foundation.org/
- require 'rails_helper'
- require 'models/core_workflow/base'
- RSpec.describe CoreWorkflow::Custom::AdminShowGroupListForAgents, mariadb: true, type: :model do
- include_context 'with core workflow base'
- describe 'For Users' do
- context 'when creating' do
- let(:user_agent) { create(:agent) }
- context 'when selected' do
- let(:payload) do
- base_payload.merge(
- 'screen' => 'create',
- 'class_name' => 'User',
- 'params' => { 'role_ids' => Role.find_by(name: 'Agent').id.to_s },
- )
- end
- it 'shows the groups list' do
- expect(result[:visibility]['group_ids']).to eq('show')
- end
- end
- context 'when unselected' do
- let(:payload) do
- base_payload.merge(
- 'screen' => 'create',
- 'class_name' => 'User',
- 'params' => { 'role_ids' => [Role.find_by(name: 'Customer').to_s] },
- )
- end
- it 'removes the groups list' do
- expect(result[:visibility]['group_ids']).to eq('remove')
- end
- end
- end
- context 'when editing' do
- let(:user_agent) { create(:agent) }
- context 'when selected' do
- let(:payload) do
- base_payload.merge(
- 'screen' => 'edit',
- 'class_name' => 'User',
- 'params' => { 'role_ids' => Role.find_by(name: 'Agent').id.to_s },
- )
- end
- it 'shows the groups list' do
- expect(result[:visibility]['group_ids']).to eq('show')
- end
- end
- context 'when unselected' do
- let(:payload) do
- base_payload.merge(
- 'screen' => 'edit',
- 'class_name' => 'User',
- 'params' => { 'role_ids' => [Role.find_by(name: 'Customer').to_s] },
- )
- end
- it 'removes the groups list' do
- expect(result[:visibility]['group_ids']).to eq('remove')
- end
- end
- end
- end
- describe 'For Roles' do
- context 'when creating' do
- let(:user_agent) { create(:agent) }
- context 'when selected' do
- let(:payload) do
- base_payload.merge(
- 'screen' => 'create',
- 'class_name' => 'Role',
- 'params' => { 'permission_ids' => Permission.find_by(name: 'ticket.agent').id.to_s },
- )
- end
- it 'shows the groups list' do
- expect(result[:visibility]['group_ids']).to eq('show')
- end
- end
- context 'when unselected' do
- let(:payload) do
- base_payload.merge(
- 'screen' => 'create',
- 'class_name' => 'Role',
- 'params' => { 'permission_ids' => [Permission.find_by(name: 'ticket.customer').to_s] },
- )
- end
- it 'removes the groups list' do
- expect(result[:visibility]['group_ids']).to eq('remove')
- end
- end
- end
- context 'when editing' do
- let(:user_agent) { create(:agent) }
- context 'when selected' do
- let(:payload) do
- base_payload.merge(
- 'screen' => 'edit',
- 'class_name' => 'Role',
- 'params' => { 'permission_ids' => Permission.find_by(name: 'ticket.agent').id.to_s },
- )
- end
- it 'shows the groups list' do
- expect(result[:visibility]['group_ids']).to eq('show')
- end
- end
- context 'when unselected' do
- let(:payload) do
- base_payload.merge(
- 'screen' => 'edit',
- 'class_name' => 'Role',
- 'params' => { 'permission_ids' => [Permission.find_by(name: 'ticket.customer').to_s] },
- )
- end
- it 'removes the groups list' do
- expect(result[:visibility]['group_ids']).to eq('remove')
- end
- end
- end
- end
- end
|