diff --git a/app/tasks/maintenance/spread_dossier_deletion_task.rb b/app/tasks/maintenance/spread_dossier_deletion_task.rb index efdcdd83e..2e2f3c6a4 100644 --- a/app/tasks/maintenance/spread_dossier_deletion_task.rb +++ b/app/tasks/maintenance/spread_dossier_deletion_task.rb @@ -3,10 +3,11 @@ module Maintenance class SpreadDossierDeletionTask < MaintenanceTasks::Task ERROR_OCCURED_AT = Date.new(2024, 2, 14) + ERROR_OCCURED_RANGE = ERROR_OCCURED_AT.at_midnight..(ERROR_OCCURED_AT + 1.day) SPREAD_DURATION_IN_DAYS = 150 def collection - Dossier.where(termine_close_to_expiration_notice_sent_at: ERROR_OCCURED_AT) + Dossier.where(termine_close_to_expiration_notice_sent_at: ERROR_OCCURED_RANGE) .in_batches end diff --git a/spec/tasks/maintenance/spread_dossier_deletion_task_spec.rb b/spec/tasks/maintenance/spread_dossier_deletion_task_spec.rb index fc84d640c..4a7851a17 100644 --- a/spec/tasks/maintenance/spread_dossier_deletion_task_spec.rb +++ b/spec/tasks/maintenance/spread_dossier_deletion_task_spec.rb @@ -6,14 +6,17 @@ module Maintenance RSpec.describe SpreadDossierDeletionTask do describe "#process" do let(:dossiers) { Dossier.all } - let(:dossier_1) { create(:dossier, termine_close_to_expiration_notice_sent_at: Date.new(2024, 2, 14)) } - let(:dossier_2) { create(:dossier, termine_close_to_expiration_notice_sent_at: Date.new(2024, 2, 14)) } - let(:dossier_3) { create(:dossier, termine_close_to_expiration_notice_sent_at: Date.new(2024, 2, 14)) } - let(:dossier_4) { create(:dossier, termine_close_to_expiration_notice_sent_at: Date.new(2024, 2, 14)) } + before do + create(:dossier, termine_close_to_expiration_notice_sent_at: Maintenance::SpreadDossierDeletionTask::ERROR_OCCURED_AT + 1.hour) + create(:dossier, termine_close_to_expiration_notice_sent_at: Maintenance::SpreadDossierDeletionTask::ERROR_OCCURED_AT + 2.hours) + create(:dossier, termine_close_to_expiration_notice_sent_at: Maintenance::SpreadDossierDeletionTask::ERROR_OCCURED_AT + 3.hours) + create(:dossier, termine_close_to_expiration_notice_sent_at: Maintenance::SpreadDossierDeletionTask::ERROR_OCCURED_AT + 4.hours) + end subject(:process) { described_class.process(dossiers) } it "works" do - expect { subject }.to change { dossier_1.reload.termine_close_to_expiration_notice_sent_at } + expect { subject }.to change { Dossier.where(termine_close_to_expiration_notice_sent_at: Maintenance::SpreadDossierDeletionTask::ERROR_OCCURED_RANGE).count } + .from(4).to(0) end end end