From 17617fba4360a7dff2519d6b78cb33599f589251 Mon Sep 17 00:00:00 2001 From: simon lehericey Date: Wed, 19 May 2021 15:59:18 +0200 Subject: [PATCH] address champ needs the data column --- app/services/dossier_projection_service.rb | 2 +- spec/factories/procedure.rb | 6 ++++++ spec/services/dossier_projection_service_spec.rb | 11 +++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/app/services/dossier_projection_service.rb b/app/services/dossier_projection_service.rb index c46525147..e25552aa0 100644 --- a/app/services/dossier_projection_service.rb +++ b/app/services/dossier_projection_service.rb @@ -33,7 +33,7 @@ class DossierProjectionService types_de_champ: { stable_id: fields.map { |f| f[COLUMN] } }, dossier_id: dossiers_ids ) - .select(:dossier_id, :value, :type_de_champ_id, :stable_id, :type) # we cannot pluck :value, as we need the champ.to_s method + .select(:dossier_id, :value, :type_de_champ_id, :stable_id, :type, :data) # we cannot pluck :value, as we need the champ.to_s method .group_by(&:stable_id) # the champs are redispatched to their respective fields .map do |stable_id, champs| field = fields.find { |f| f[COLUMN] == stable_id.to_s } diff --git a/spec/factories/procedure.rb b/spec/factories/procedure.rb index a966e222a..646f39c93 100644 --- a/spec/factories/procedure.rb +++ b/spec/factories/procedure.rb @@ -193,6 +193,12 @@ FactoryBot.define do end end + trait :with_address do + after(:build) do |procedure, _evaluator| + build(:type_de_champ_address, procedure: procedure) + end + end + trait :with_explication do after(:build) do |procedure, _evaluator| build(:type_de_champ_explication, procedure: procedure) diff --git a/spec/services/dossier_projection_service_spec.rb b/spec/services/dossier_projection_service_spec.rb index 0589d7baa..243f81084 100644 --- a/spec/services/dossier_projection_service_spec.rb +++ b/spec/services/dossier_projection_service_spec.rb @@ -173,6 +173,17 @@ describe DossierProjectionService do it { is_expected.to eq('Oui') } end + + context 'for type_de_champ table and value to.s which needs data field' do + let(:table) { 'type_de_champ' } + let(:procedure) { create(:procedure, :with_address) } + let(:dossier) { create(:dossier, procedure: procedure) } + let(:column) { dossier.procedure.types_de_champ.first.stable_id.to_s } + + before { dossier.champs.first.update(data: { 'label' => '18 a la bonne rue', 'departement' => 'd' }) } + + it { is_expected.to eq('18 a la bonne rue') } + end end end end