Merge pull request #10293 from demarches-simplifiees/re-router-tous-les-dossiers-d-une-demarche

ETQ tech je peux relancer le routage pour tous les dossiers en construction d'une démarche
This commit is contained in:
Eric Leroy-Terquem 2024-04-11 13:27:43 +00:00 committed by GitHub
commit 1e50223267
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 77 additions and 3 deletions

View file

@ -0,0 +1,45 @@
describe 're_routing_dossiers' do
describe 'run' do
include Logic
let(:admin) { create(:administrateur) }
let(:procedure) { create(:procedure, types_de_champ_public: [{ type: :departements, libelle: 'Votre département' }], administrateurs: [admin]) }
let(:dossier1) { create(:dossier, :en_construction, :with_populated_champs, procedure: procedure) }
let!(:dossier2) { create(:dossier, :en_construction, :with_populated_champs, procedure: procedure) }
before do
dossier1.champs.last.update(value: 'Aisne')
dossier2.champs.last.update(value: 'Allier')
tdc = procedure.active_revision.routable_types_de_champ.first
tdc_options = APIGeoService.departements.map { ["#{_1[:code]} #{_1[:name]}", _1[:code]] }
rule_operator = :ds_eq
create_groups_from_territorial_tdc(tdc_options, tdc.stable_id, rule_operator, admin)
Rake.application.invoke_task "re_routing_dossiers:run\[#{procedure.id}\]"
dossier1.reload
dossier2.reload
end
it 'runs' do
expect(dossier1.groupe_instructeur.label).to eq('02 Aisne')
expect(dossier2.groupe_instructeur.label).to eq('03 Allier')
end
def create_groups_from_territorial_tdc(tdc_options, stable_id, rule_operator, administrateur)
tdc_options.each do |label, code|
routing_rule = send(rule_operator, champ_value(stable_id), constant(code))
procedure
.groupe_instructeurs
.find_or_create_by(label: label)
.update(instructeurs: [administrateur.instructeur], routing_rule:)
end
end
end
end