2024-04-29 00:17:15 +02:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2019-08-06 11:02:54 +02:00
|
|
|
describe Instructeurs::AvisController, type: :controller do
|
|
|
|
context 'with a instructeur signed in' do
|
2017-12-22 17:11:56 +01:00
|
|
|
render_views
|
2017-09-06 11:21:29 +02:00
|
|
|
|
2020-07-22 16:57:00 +02:00
|
|
|
let(:now) { Time.zone.parse('01/02/2345') }
|
2021-02-28 22:20:24 +01:00
|
|
|
let(:expert) { create(:expert) }
|
2019-08-06 11:02:54 +02:00
|
|
|
let(:claimant) { create(:instructeur) }
|
2024-03-15 17:41:59 +01:00
|
|
|
let(:experts_procedure) { create(:experts_procedure, expert: expert, procedure: procedure, notify_on_new_avis: false) }
|
2019-08-06 11:02:54 +02:00
|
|
|
let(:instructeur) { create(:instructeur) }
|
2021-02-28 22:20:24 +01:00
|
|
|
let(:procedure) { create(:procedure, :published, instructeurs: [instructeur]) }
|
2017-12-22 17:11:56 +01:00
|
|
|
let(:dossier) { create(:dossier, :en_construction, procedure: procedure) }
|
2021-03-23 12:25:57 +01:00
|
|
|
let!(:avis_without_answer) { create(:avis, dossier: dossier, claimant: claimant, experts_procedure: experts_procedure) }
|
2017-09-06 11:21:29 +02:00
|
|
|
|
2019-08-07 11:15:16 +02:00
|
|
|
before { sign_in(instructeur.user) }
|
2017-09-06 11:21:29 +02:00
|
|
|
|
2021-02-28 22:20:24 +01:00
|
|
|
describe "#revoker" do
|
2023-04-26 07:43:31 +02:00
|
|
|
let!(:avis) { create(:avis, dossier: dossier, claimant: instructeur, experts_procedure: experts_procedure) }
|
|
|
|
|
2017-12-22 17:11:56 +01:00
|
|
|
before do
|
2021-02-28 22:20:24 +01:00
|
|
|
patch :revoquer, params: { procedure_id: procedure.id, id: avis.id }
|
2019-08-21 09:09:20 +02:00
|
|
|
end
|
2020-07-16 11:14:37 +02:00
|
|
|
|
|
|
|
it "revoke the dossier" do
|
2021-02-28 22:20:24 +01:00
|
|
|
expect(flash.notice).to eq("#{avis.expert.email} ne peut plus donner son avis sur ce dossier.")
|
2020-07-16 11:14:37 +02:00
|
|
|
end
|
|
|
|
end
|
2020-07-20 16:26:16 +02:00
|
|
|
|
2023-01-26 16:19:06 +01:00
|
|
|
describe 'remind' do
|
2020-07-20 16:26:16 +02:00
|
|
|
before do
|
2024-08-22 11:27:28 +02:00
|
|
|
allow(AvisMailer).to receive(:avis_invitation_and_confirm_email).and_return(double(deliver_later: nil))
|
2020-07-20 16:26:16 +02:00
|
|
|
end
|
2023-04-26 07:43:31 +02:00
|
|
|
context 'without question' do
|
|
|
|
let!(:avis) { create(:avis, dossier: dossier, claimant: instructeur, experts_procedure: experts_procedure) }
|
|
|
|
|
|
|
|
it 'sends a reminder to the expert' do
|
|
|
|
get :remind, params: { procedure_id: procedure.id, id: avis.id }
|
2024-08-22 11:27:28 +02:00
|
|
|
expect(AvisMailer).to have_received(:avis_invitation_and_confirm_email)
|
2023-04-26 07:43:31 +02:00
|
|
|
expect(flash.notice).to eq("Un mail de relance a été envoyé à #{avis.expert.email}")
|
|
|
|
expect(avis.reload.reminded_at).to be_present
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
context 'with question' do
|
|
|
|
let!(:avis) { create(:avis, dossier: dossier, claimant: instructeur, experts_procedure: experts_procedure, question_label: '123') }
|
2020-07-20 16:26:16 +02:00
|
|
|
|
2023-04-26 07:43:31 +02:00
|
|
|
it 'sends a reminder to the expert' do
|
|
|
|
get :remind, params: { procedure_id: procedure.id, id: avis.id }
|
2024-08-22 11:27:28 +02:00
|
|
|
expect(AvisMailer).to have_received(:avis_invitation_and_confirm_email)
|
2023-04-26 07:43:31 +02:00
|
|
|
expect(flash.notice).to eq("Un mail de relance a été envoyé à #{avis.expert.email}")
|
|
|
|
expect(avis.reload.reminded_at).to be_present
|
|
|
|
end
|
2017-12-22 17:34:58 +01:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
2017-09-06 11:21:29 +02:00
|
|
|
end
|