fix(prefill.repetitions): with more than one row, should be able to prefill champs repetition rows
This commit is contained in:
parent
4e7693db89
commit
ad832b9401
2 changed files with 7 additions and 3 deletions
|
@ -9,6 +9,7 @@ module DossierPrefillableConcern
|
||||||
attributes = { prefilled: true }
|
attributes = { prefilled: true }
|
||||||
attributes[:champs_attributes] = champs_attributes.map { |h| h.merge(prefilled: true) }
|
attributes[:champs_attributes] = champs_attributes.map { |h| h.merge(prefilled: true) }
|
||||||
attributes[:individual_attributes] = identity_attributes if identity_attributes.present?
|
attributes[:individual_attributes] = identity_attributes if identity_attributes.present?
|
||||||
|
reload
|
||||||
|
|
||||||
assign_attributes(attributes)
|
assign_attributes(attributes)
|
||||||
save(validate: false)
|
save(validate: false)
|
||||||
|
|
|
@ -85,12 +85,15 @@ RSpec.describe API::Public::V1::DossiersController, type: :controller do
|
||||||
end
|
end
|
||||||
let(:prefilled_champs) { TypesDeChamp::PrefillTypeDeChamp.wrap(procedure.published_revision.types_de_champ, procedure.active_revision) }
|
let(:prefilled_champs) { TypesDeChamp::PrefillTypeDeChamp.wrap(procedure.published_revision.types_de_champ, procedure.active_revision) }
|
||||||
let(:prefilled_champs_as_params) { prefilled_champs.map { |type_de_champ| ["champ_#{type_de_champ.to_typed_id_for_query}", type_de_champ.example_value] }.to_h }
|
let(:prefilled_champs_as_params) { prefilled_champs.map { |type_de_champ| ["champ_#{type_de_champ.to_typed_id_for_query}", type_de_champ.example_value] }.to_h }
|
||||||
let(:params) do
|
let(:params) { prefilled_champs_as_params.merge(id: procedure.id) }
|
||||||
prefilled_champs_as_params.merge(id: procedure.id)
|
|
||||||
end
|
|
||||||
|
|
||||||
it "updates the champs with the new values and mark them as prefilled" do
|
it "updates the champs with the new values and mark them as prefilled" do
|
||||||
expect { create_request }.not_to raise_error(ActiveRecord::RecordNotFound)
|
expect { create_request }.not_to raise_error(ActiveRecord::RecordNotFound)
|
||||||
|
dossier = Dossier.last
|
||||||
|
|
||||||
|
first_row = dossier.project_champs_public.first.rows.first
|
||||||
|
second_row = dossier.project_champs_public.first.rows.last
|
||||||
|
expect(dossier.project_champs_public.first.rows.flatten.map(&:value)).to match_array(['Texte court', 'Texte court'])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue