38 lines
1.3 KiB
Ruby
38 lines
1.3 KiB
Ruby
describe Champs::HeaderSectionChamp do
|
|
describe '#section_index' do
|
|
let(:types_de_champ) do
|
|
[
|
|
{ type: :header_section },
|
|
{ type: :civilite },
|
|
{ type: :text },
|
|
{ type: :header_section },
|
|
{ type: :email }
|
|
]
|
|
end
|
|
let(:types_de_champ_public) { types_de_champ }
|
|
let(:procedure) { create(:procedure, types_de_champ_public: types_de_champ_public) }
|
|
let(:dossier) { create(:dossier, procedure: procedure) }
|
|
|
|
context 'for root-level champs' do
|
|
let(:first_header) { dossier.champs_public.first }
|
|
let(:second_header) { dossier.champs_public.fourth }
|
|
|
|
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(:types_de_champ_public) { [{ type: :repetition, mandatory: true, children: types_de_champ }] }
|
|
|
|
let(:first_header) { dossier.champs_public.first.champs.first }
|
|
let(:second_header) { dossier.champs_public.first.champs.fourth }
|
|
|
|
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
|