amelioration(Procedure.procedure_expires_when_termine_enabled): active l'expiration des dossiers terminés sur les procedure ne l'ayant pas activé jusqu'à présent. La cible est de faire ça sur 20 Procedure quotidiennement
This commit is contained in:
parent
fcb4b20b65
commit
1716a931c5
3 changed files with 35 additions and 0 deletions
|
@ -0,0 +1,12 @@
|
||||||
|
class Cron::EnableProcedureExpiresWhenTermineEnabledJob < Cron::CronJob
|
||||||
|
self.schedule_expression = Expired.schedule_at(self)
|
||||||
|
discard_on StandardError
|
||||||
|
|
||||||
|
def perform(*args)
|
||||||
|
return if ENV['ENABLE_PROCEDURE_EXPIRES_WHEN_TERMINE_ENABLED_JOB_LIMIT'].blank?
|
||||||
|
Procedure.where(procedure_expires_when_termine_enabled: false)
|
||||||
|
.limit(ENV['ENABLE_PROCEDURE_EXPIRES_WHEN_TERMINE_ENABLED_JOB_LIMIT'])
|
||||||
|
.order(created_at: :desc)
|
||||||
|
.update_all(procedure_expires_when_termine_enabled: true)
|
||||||
|
end
|
||||||
|
end
|
|
@ -30,6 +30,8 @@ module Expired
|
||||||
"every day at 11 pm"
|
"every day at 11 pm"
|
||||||
when 'Cron::ExpiredDossiersEnConstructionDeletionJob'
|
when 'Cron::ExpiredDossiersEnConstructionDeletionJob'
|
||||||
"every day at 3 pm"
|
"every day at 3 pm"
|
||||||
|
when 'Cron::EnableProcedureExpiresWhenTermineEnabledJob'
|
||||||
|
"every day at 2 am"
|
||||||
else
|
else
|
||||||
raise 'please, check the schedule to avoid too much email at the same time'
|
raise 'please, check the schedule to avoid too much email at the same time'
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
describe Cron::EnableProcedureExpiresWhenTermineEnabledJob, type: :job do
|
||||||
|
subject { described_class.perform_now }
|
||||||
|
let!(:procedure) { create(:procedure, procedure_expires_when_termine_enabled: false) }
|
||||||
|
context 'when env[ENABLE_PROCEDURE_EXPIRES_WHEN_TERMINE_ENABLED_JOB_LIMIT] is present' do
|
||||||
|
before do
|
||||||
|
allow(ENV).to receive(:[]).with('ENABLE_PROCEDURE_EXPIRES_WHEN_TERMINE_ENABLED_JOB_LIMIT').and_return(10)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'performs' do
|
||||||
|
expect { subject }.to change { procedure.reload.procedure_expires_when_termine_enabled }.from(false).to(true)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when env[ENABLE_PROCEDURE_EXPIRES_WHEN_TERMINE_ENABLED_JOB_LIMIT] is absent' do
|
||||||
|
it 'does not perform without limit' do
|
||||||
|
expect { subject }.not_to change { procedure.reload.procedure_expires_when_termine_enabled }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Add table
Reference in a new issue