123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- require 'rails_helper'
- RSpec.describe HasTicketCreateScreenImpact, type: :job do
- context 'with groups' do
- let!(:group) { create(:group) }
- it 'create should enqueue no job' do
- collection_jobs = enqueued_jobs.select do |job|
- job[:job] == TicketCreateScreenJob
- end
- expect(collection_jobs.count).to be(1)
- end
- context 'updating attribute' do
- before do
- clear_jobs
- end
- context 'name' do
- it 'enqueues a job' do
- expect { group.update!(name: 'new name') }.to have_enqueued_job(TicketCreateScreenJob)
- end
- end
- context 'active' do
- it 'enqueues a job' do
- expect { group.update!(active: false) }.to have_enqueued_job(TicketCreateScreenJob)
- end
- end
- context 'updated_at' do
- it 'enqueues a job' do
- expect { group.touch }.to have_enqueued_job(TicketCreateScreenJob)
- end
- end
- end
- it 'delete should enqueue no job' do
- clear_jobs
- expect { group.destroy! }.to have_enqueued_job(TicketCreateScreenJob)
- end
- end
- context 'with roles' do
- let!(:role) { create(:role) }
- it 'create should enqueue no job' do
- collection_jobs = enqueued_jobs.select do |job|
- job[:job] == TicketCreateScreenJob
- end
- expect(collection_jobs.count).to be(1)
- end
- context 'updating attribute' do
- before do
- clear_jobs
- end
- context 'name' do
- it 'enqueues a job' do
- expect { role.update!(name: 'new name') }.to have_enqueued_job(TicketCreateScreenJob)
- end
- end
- context 'active' do
- it 'enqueues a job' do
- expect { role.update!(active: false) }.to have_enqueued_job(TicketCreateScreenJob)
- end
- end
- context 'updated_at' do
- it 'enqueues no job' do
- expect { role.touch }.to have_enqueued_job(TicketCreateScreenJob)
- end
- end
- end
- it 'delete should enqueue no job' do
- clear_jobs
- expect { role.destroy! }.to have_enqueued_job(TicketCreateScreenJob)
- end
- end
- context 'with users' do
- let!(:customer) { create(:user, roles: Role.where(name: 'Customer')) }
- let!(:agent) { create(:user, roles: Role.where(name: 'Agent')) }
- let!(:admin) { create(:user, roles: Role.where(name: 'Admin')) }
- let(:customer_new) { create(:user, roles: Role.where(name: 'Customer')) }
- let(:agent_new) { create(:user, roles: Role.where(name: 'Agent')) }
- let(:admin_new) { create(:user, roles: Role.where(name: 'Admin')) }
- context 'creating' do
- before do
- clear_jobs
- end
- it 'customer should enqueue no job' do
- customer_new
- collection_jobs = enqueued_jobs.select do |job|
- job[:job] == TicketCreateScreenJob
- end
- expect(collection_jobs.count).to be(0)
- end
- it 'agent should enqueue a job' do
- agent_new
- collection_jobs = enqueued_jobs.select do |job|
- job[:job] == TicketCreateScreenJob
- end
- expect(collection_jobs.count).to be(1)
- end
- it 'admin should enqueue no job' do
- admin_new
- collection_jobs = enqueued_jobs.select do |job|
- job[:job] == TicketCreateScreenJob
- end
- expect(collection_jobs.count).to be(0)
- end
- end
- context 'updating attribute' do
- before do
- clear_jobs
- end
- context 'firstname field for' do
- it 'customer should enqueue no job' do
- expect { customer.update!(firstname: 'new firstname') }.not_to have_enqueued_job(TicketCreateScreenJob)
- end
- it 'agent should enqueue a job' do
- expect { agent.update!(firstname: 'new firstname') }.to have_enqueued_job(TicketCreateScreenJob)
- end
- it 'admin should enqueue no job' do
- expect { admin.update!(firstname: 'new firstname') }.not_to have_enqueued_job(TicketCreateScreenJob)
- end
- end
- context 'active field for' do
- it 'customer should enqueue no job' do
- expect { customer.update!(active: false) }.not_to have_enqueued_job(TicketCreateScreenJob)
- end
- it 'agent should enqueue a job' do
- expect { agent.update!(active: false) }.to have_enqueued_job(TicketCreateScreenJob)
- end
- it 'admin should enqueue no job' do
- admin_new # Prevend "Minimum one user needs to have admin permissions."
- clear_jobs
- expect { admin.update!(active: false) }.not_to have_enqueued_job(TicketCreateScreenJob)
- end
- end
- end
- context 'deleting' do
- before do
- clear_jobs
- end
- it 'customer should enqueue a job' do
- expect { customer.destroy! }.to have_enqueued_job(TicketCreateScreenJob)
- end
- it 'agent should enqueue a job' do
- expect { agent.destroy! }.to have_enqueued_job(TicketCreateScreenJob)
- end
- it 'admin should enqueue a job' do
- expect { admin.destroy! }.to have_enqueued_job(TicketCreateScreenJob)
- end
- end
- end
- end
|