demarches-normaliennes/spec/lib/tasks/re_routing_dossiers_spec.rb
2024-04-09 17:17:49 +02:00

45 lines
1.6 KiB
Ruby
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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