Merge pull request #11007 from demarches-simplifiees/can-condition-on-pays-champ

ETQ admin je peux conditionner / router depuis un champ pays
This commit is contained in:
Eric Leroy-Terquem 2024-11-05 09:26:20 +00:00 committed by GitHub
commit ddb238ccd0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 66 additions and 3 deletions

View file

@ -131,6 +131,18 @@ describe Conditions::ChampsConditionsComponent, type: :component do
end
end
context 'pays' do
let(:pays) { create(:type_de_champ_pays) }
let(:upper_tdcs) { [pays] }
let(:condition) { empty_operator(champ_value(pays.stable_id), constant(true)) }
let(:pays_options) { APIGeoService.countries.map { "#{_1[:name]} #{_1[:code]}" } }
it do
expect(page).to have_select('type_de_champ[condition_form][rows][][operator_name]', with_options: ['Est'])
expect(page).to have_select('type_de_champ[condition_form][rows][][value]', options: (['Sélectionner'] + pays_options))
end
end
context 'address' do
let(:address) { create(:type_de_champ_address) }
let(:upper_tdcs) { [address] }

View file

@ -959,6 +959,26 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
end
end
context 'with a pays type de champ' do
let!(:procedure3) do
create(:procedure,
types_de_champ_public: [{ type: :pays }],
administrateurs: [admin])
end
let!(:pays_tdc) { procedure3.draft_revision.types_de_champ.first }
before { post :create_simple_routing, params: { procedure_id: procedure3.id, create_simple_routing: { stable_id: pays_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("AD Andorre")
expect(procedure3.reload.defaut_groupe_instructeur.routing_rule).to eq(ds_eq(champ_value(pays_tdc.stable_id), constant('AD')))
expect(procedure3.routing_enabled).to be_truthy
end
end
context 'with a communes type de champ' do
let!(:procedure3) do
create(:procedure,

View file

@ -181,6 +181,29 @@ describe RoutingEngine, type: :model do
end
end
context 'with a pays type de champ' do
let(:procedure) do
create(:procedure, types_de_champ_public: [{ type: :pays }]).tap do |p|
p.groupe_instructeurs.create(label: 'a third group')
end
end
let(:pays_tdc) { procedure.draft_revision.types_de_champ.first }
context 'with a matching rule' do
before do
gi_2.update(routing_rule: ds_eq(champ_value(pays_tdc.stable_id), constant('BE')))
dossier.champs.first.update_columns(
value: "Belgique"
)
end
it do
is_expected.to eq(gi_2)
end
end
end
context 'routing rules priorities' do
let(:procedure) do
create(:procedure,