Skip to content

Commit

Permalink
Merge pull request #2678 from betagouv/frederic/fix_2550-attestations…
Browse files Browse the repository at this point in the history
…_demarche_declarative

Attestations demarche declarative
  • Loading branch information
fredZen authored Sep 25, 2018
2 parents 0b990fd + 40bc620 commit 526bd28
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 10 deletions.
23 changes: 13 additions & 10 deletions app/jobs/auto_receive_dossiers_for_procedure_job.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,25 @@ class AutoReceiveDossiersForProcedureJob < ApplicationJob

def perform(procedure_id, state)
procedure = Procedure.find(procedure_id)
attrs = case state
case state
when Dossier.states.fetch(:en_instruction)
{
procedure.dossiers.state_en_construction.update_all(
state: Dossier.states.fetch(:en_instruction),
en_instruction_at: DateTime.now
}
)
when Dossier.states.fetch(:accepte)
{
state: Dossier.states.fetch(:accepte),
en_instruction_at: DateTime.now,
processed_at: DateTime.now
}
procedure.dossiers.state_en_construction.find_each do |dossier|
dossier.update(
state: Dossier.states.fetch(:accepte),
en_instruction_at: DateTime.now,
processed_at: DateTime.now
)
dossier.attestation = dossier.build_attestation
dossier.save
NotificationMailer.send_closed_notification(dossier).deliver_later
end
else
raise "Receiving Procedure##{procedure_id} in invalid state \"#{state}\""
end

procedure.dossiers.state_en_construction.update_all(attrs)
end
end
3 changes: 3 additions & 0 deletions spec/jobs/auto_receive_dossiers_for_procedure_job_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

before do
Timecop.freeze(date)
create(:attestation_template, procedure: nouveau_dossier1.procedure)
AutoReceiveDossiersForProcedureJob.new.perform(procedure_id, state)
end

Expand Down Expand Up @@ -41,10 +42,12 @@
it { expect(nouveau_dossier1.reload.accepte?).to be true }
it { expect(nouveau_dossier1.reload.en_instruction_at).to eq(date) }
it { expect(nouveau_dossier1.reload.processed_at).to eq(date) }
it { expect(nouveau_dossier1.reload.attestation).to be_present }

it { expect(nouveau_dossier2.reload.accepte?).to be true }
it { expect(nouveau_dossier2.reload.en_instruction_at).to eq(date) }
it { expect(nouveau_dossier2.reload.processed_at).to eq(date) }
it { expect(nouveau_dossier2.reload.attestation).to be_present }

it { expect(dossier_recu.reload.en_instruction?).to be true }
it { expect(dossier_recu.reload.en_instruction_at).to eq(instruction_date) }
Expand Down

0 comments on commit 526bd28

Please sign in to comment.