From f33d192142f37426212100e50235071bee188f25 Mon Sep 17 00:00:00 2001 From: Colin Darie Date: Thu, 9 Mar 2023 16:15:56 +0100 Subject: [PATCH] fix(dossier): don't auto-number header sections in repetitions --- app/models/concerns/dossier_sections_concern.rb | 2 ++ .../concern/dossier_sections_concern_spec.rb | 14 ++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/app/models/concerns/dossier_sections_concern.rb b/app/models/concerns/dossier_sections_concern.rb index 57ddf0ccf..c36a1d619 100644 --- a/app/models/concerns/dossier_sections_concern.rb +++ b/app/models/concerns/dossier_sections_concern.rb @@ -17,6 +17,8 @@ module DossierSectionsConcern end def auto_numbering_section_headers_for?(champ) + return false if champ.child? + sections_for(champ)&.none?(&:libelle_with_section_index?) end diff --git a/spec/models/concern/dossier_sections_concern_spec.rb b/spec/models/concern/dossier_sections_concern_spec.rb index c4c329f10..cb248a38c 100644 --- a/spec/models/concern/dossier_sections_concern_spec.rb +++ b/spec/models/concern/dossier_sections_concern_spec.rb @@ -24,6 +24,20 @@ describe DossierSectionsConcern do it { expect(dossier.auto_numbering_section_headers_for?(dossier.champs_public[1])).to eq(true) } it { expect(dossier.auto_numbering_section_headers_for?(dossier.champs_private[1])).to eq(false) } end + + context "header_section in a repetition are not auto-numbered" do + let(:types_de_champ_public) { [{ type: :header_section, libelle: public_libelle }, { type: :repetition, mandatory: true, children: [{ type: :header_section, libelle: "Enfant" }, { type: :text }] }] } + + context "with parent section having headers with number" do + let(:public_libelle) { "1. Infos" } + it { expect(dossier.auto_numbering_section_headers_for?(dossier.champs_public[1].rows[0][0])).to eq(false) } + end + + context "with parent section having headers without number" do + let(:public_libelle) { "infos" } + it { expect(dossier.auto_numbering_section_headers_for?(dossier.champs_public[1].rows[0][0])).to eq(false) } + end + end end describe '#index_for_section_header' do