champ: fix siblings
for repetition champs
Fix a crash when requesting the `section_index` of a section header in a repetition champ.
This commit is contained in:
parent
459730e1ff
commit
d6a9318d05
3 changed files with 34 additions and 9 deletions
|
@ -11,14 +11,35 @@ describe Champs::HeaderSectionChamp do
|
|||
create(:type_de_champ_email, order_place: 5)
|
||||
]
|
||||
end
|
||||
let(:procedure) { create(:procedure, types_de_champ: types_de_champ) }
|
||||
let(:dossier) { create(:dossier, procedure: procedure) }
|
||||
let(:first_header) { dossier.champs[0] }
|
||||
let(:second_header) { dossier.champs[3] }
|
||||
|
||||
it 'returns the index of the section (starting from 1)' do
|
||||
expect(first_header.section_index).to eq 1
|
||||
expect(second_header.section_index).to eq 2
|
||||
context 'for root-level champs' do
|
||||
let(:procedure) { create(:procedure, types_de_champ: types_de_champ) }
|
||||
let(:dossier) { create(:dossier, procedure: procedure) }
|
||||
let(:first_header) { dossier.champs[0] }
|
||||
let(:second_header) { dossier.champs[3] }
|
||||
|
||||
it 'returns the index of the section (starting from 1)' do
|
||||
expect(first_header.section_index).to eq 1
|
||||
expect(second_header.section_index).to eq 2
|
||||
end
|
||||
end
|
||||
|
||||
context 'for repetition champs' do
|
||||
let(:procedure) { create(:procedure, :with_repetition) }
|
||||
let(:dossier) { create(:dossier, procedure: procedure) }
|
||||
|
||||
let(:repetition_tdc) { procedure.types_de_champ.find(&:repetition?) }
|
||||
let(:first_header) { dossier.champs.first.champs[0] }
|
||||
let(:second_header) { dossier.champs.first.champs[3] }
|
||||
|
||||
before do
|
||||
repetition_tdc.types_de_champ = types_de_champ
|
||||
end
|
||||
|
||||
it 'returns the index of the section in the repetition (starting from 1)' do
|
||||
expect(first_header.section_index).to eq 1
|
||||
expect(second_header.section_index).to eq 2
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue