feat(routing): task to backfill procedure.defaut_groupe_instructeur_id

This commit is contained in:
simon lehericey 2023-04-07 14:48:38 +02:00
parent f6948cfd5e
commit a5200a569f
2 changed files with 41 additions and 0 deletions

View file

@ -0,0 +1,25 @@
namespace :after_party do
desc 'Deployment task: back_fill_procedure_defaut_groupe_instructeur_id'
task back_fill_procedure_defaut_groupe_instructeur_id: :environment do
puts "Running deploy task 'back_fill_procedure_defaut_groupe_instructeur_id'"
# Put your task implementation HERE.
#
# rubocop:disable DS/Unscoped
progress = ProgressReport.new(Procedure.unscoped.where(defaut_groupe_instructeur_id: nil).count)
Procedure.unscoped.where(defaut_groupe_instructeur_id: nil).find_each do |p|
p.update_columns(defaut_groupe_instructeur_id: p.defaut_groupe_instructeur.id)
progress.inc
end
# rubocop:enable DS/Unscoped
progress.finish
# Update task as completed. If you remove the line below, the task will
# run with every deploy (or every time you call after_party:run).
AfterParty::TaskRecord
.create version: AfterParty::TaskRecorder.new(__FILE__).timestamp
end
end

View file

@ -0,0 +1,16 @@
describe '20230407124517_back_fill_procedure_defaut_groupe_instructeur_id' do
let(:rake_task) { Rake::Task['after_party:back_fill_procedure_defaut_groupe_instructeur_id'] }
let(:procedure) { create(:procedure) }
subject(:run_task) { rake_task.invoke }
after(:each) { rake_task.reenable }
it 'populates defaut_groupe_instructeur_id' do
expect(procedure.defaut_groupe_instructeur_id).to be_nil
run_task
procedure.reload
expect(procedure.defaut_groupe_instructeur_id).to eq(procedure.defaut_groupe_instructeur.id)
end
end