fix(procedure): auto_archive_on must be in future

This commit is contained in:
Colin Darie 2023-06-01 14:47:06 +02:00
parent a69cf8b7d2
commit ec244f1a94
No known key found for this signature in database
GPG key ID: 4FB865FDBCA4BCC4
5 changed files with 43 additions and 5 deletions

View file

@ -1,10 +1,17 @@
RSpec.describe Cron::AutoArchiveProcedureJob, type: :job do
let!(:procedure) { create(:procedure, :published, :with_instructeur, auto_archive_on: nil) }
let!(:procedure_hier) { create(:procedure, :published, :with_instructeur, auto_archive_on: 1.day.ago.to_date) }
let!(:procedure_aujourdhui) { create(:procedure, :published, :with_instructeur, auto_archive_on: Time.zone.today) }
let!(:procedure_hier) { create(:procedure, :published, :with_instructeur) }
let!(:procedure_aujourdhui) { create(:procedure, :published, :with_instructeur) }
let!(:procedure_demain) { create(:procedure, :published, :with_instructeur, auto_archive_on: 1.day.from_now.to_date) }
let!(:job) { Cron::AutoArchiveProcedureJob.new }
before do
procedure_hier.auto_archive_on = 1.day.ago.to_date
procedure_hier.save!(validate: false)
procedure_aujourdhui.auto_archive_on = Date.current
procedure_aujourdhui.save!(validate: false)
end
subject { job.perform }
context "when procedures have no auto_archive_on" do
@ -66,9 +73,12 @@ RSpec.describe Cron::AutoArchiveProcedureJob, type: :job do
end
context 'when an error occurs' do
let!(:buggy_procedure) { create(:procedure, :published, :with_instructeur, auto_archive_on: 1.day.ago.to_date) }
let!(:buggy_procedure) { create(:procedure, :published, :with_instructeur) }
before do
buggy_procedure.auto_archive_on = 1.day.ago.to_date
buggy_procedure.save!(validate: false)
error = StandardError.new('nop')
expect(buggy_procedure).to receive(:close!).and_raise(error)
expect(job).to receive(:procedures_to_close).and_return([buggy_procedure, procedure_hier])