diff --git a/spec/controllers/administrateurs/groupe_instructeurs_controller_spec.rb b/spec/controllers/administrateurs/groupe_instructeurs_controller_spec.rb index fdaeb450a..40c731ae4 100644 --- a/spec/controllers/administrateurs/groupe_instructeurs_controller_spec.rb +++ b/spec/controllers/administrateurs/groupe_instructeurs_controller_spec.rb @@ -719,25 +719,47 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do end describe '#create_simple_routing' do - let!(:procedure3) do - create(:procedure, - types_de_champ_public: [ - { type: :drop_down_list, libelle: 'Votre ville', options: ['Paris', 'Lyon', 'Marseille'] }, - { type: :text, libelle: 'Un champ texte' } - ], - administrateurs: [admin]) + context 'with a drop_down_list type de champ' do + let!(:procedure3) do + create(:procedure, + types_de_champ_public: [ + { type: :drop_down_list, libelle: 'Votre ville', options: ['Paris', 'Lyon', 'Marseille'] }, + { type: :text, libelle: 'Un champ texte' } + ], + administrateurs: [admin]) + end + + let!(:drop_down_tdc) { procedure3.draft_revision.types_de_champ.first } + + before { post :create_simple_routing, params: { procedure_id: procedure3.id, create_simple_routing: { stable_id: drop_down_tdc.stable_id } } } + + it do + expect(response).to redirect_to(admin_procedure_groupe_instructeurs_path(procedure3)) + expect(flash.notice).to eq 'Les groupes instructeurs ont été ajoutés' + expect(procedure3.groupe_instructeurs.pluck(:label)).to match_array(['Paris', 'Lyon', 'Marseille']) + expect(procedure3.reload.defaut_groupe_instructeur.routing_rule).to eq(ds_eq(champ_value(drop_down_tdc.stable_id), constant('Lyon'))) + expect(procedure3.routing_enabled).to be_truthy + end end - let!(:drop_down_tdc) { procedure3.draft_revision.types_de_champ.first } + context 'with a departements type de champ' do + let!(:procedure3) do + create(:procedure, + types_de_champ_public: [{ type: :departements }], + administrateurs: [admin]) + end - before { post :create_simple_routing, params: { procedure_id: procedure3.id, create_simple_routing: { stable_id: drop_down_tdc.stable_id } } } + let!(:departements_tdc) { procedure3.draft_revision.types_de_champ.first } - it do - expect(response).to redirect_to(admin_procedure_groupe_instructeurs_path(procedure3)) - expect(flash.notice).to eq 'Les groupes instructeurs ont été ajoutés' - expect(procedure3.groupe_instructeurs.pluck(:label)).to match_array(['Paris', 'Lyon', 'Marseille']) - expect(procedure3.reload.defaut_groupe_instructeur.routing_rule).to eq(ds_eq(champ_value(drop_down_tdc.stable_id), constant('Lyon'))) - expect(procedure3.routing_enabled).to be_truthy + before { post :create_simple_routing, params: { procedure_id: procedure3.id, create_simple_routing: { stable_id: departements_tdc.stable_id } } } + + it do + expect(response).to redirect_to(admin_procedure_groupe_instructeurs_path(procedure3)) + expect(flash.notice).to eq 'Les groupes instructeurs ont été ajoutés' + expect(procedure3.groupe_instructeurs.pluck(:label)).to include("01 – Ain") + expect(procedure3.reload.defaut_groupe_instructeur.routing_rule).to eq(ds_eq(champ_value(departements_tdc.stable_id), constant('01'))) + expect(procedure3.routing_enabled).to be_truthy + end end end