diff --git a/app/components/editable_champ/section_component/section_component.html.haml b/app/components/editable_champ/section_component/section_component.html.haml index f7a718781..8ec44c63c 100644 --- a/app/components/editable_champ/section_component/section_component.html.haml +++ b/app/components/editable_champ/section_component/section_component.html.haml @@ -10,9 +10,9 @@ = fields_for champ.input_name, champ do |form| = render EditableChamp::EditableChampComponent.new form:, champ: - else - %fieldset.fr-fieldset.fr-my-0 + .fr-fieldset__element.fr-my-0 - if header_section - %legend.fr-fieldset__legend.fr-my-0{ class: "reset-#{tag_for_depth}" } + .fr-fieldset__legend.fr-my-0{ class: "reset-#{tag_for_depth}" } = render EditableChamp::HeaderSectionComponent.new(champ: header_section) - splitted_tail.each do |section, champ| - if section.present? diff --git a/spec/components/editable_champ/section_component_spec.rb b/spec/components/editable_champ/section_component_spec.rb index df65f5d45..7ca892679 100644 --- a/spec/components/editable_champ/section_component_spec.rb +++ b/spec/components/editable_champ/section_component_spec.rb @@ -10,8 +10,8 @@ describe EditableChamp::SectionComponent, type: :component do context 'list of champs without an header_section' do let(:types_de_champ_public) { [{ type: :text }, { type: :textarea }] } - it 'render in a fieldset' do - expect(page).to have_selector("fieldset", count: 1) + it 'does not renders within a fieldset' do + expect(page).to have_selector("fieldset", count: 0) end it 'renders champs' do @@ -37,14 +37,16 @@ describe EditableChamp::SectionComponent, type: :component do context 'list of champs without section and an header_section having champs' do let(:types_de_champ_public) { [{ type: :text }, { type: :header_section, level: 1 }, { type: :text }] } - it 'renders fieldset' do - expect(page).to have_selector("fieldset", count: 2) - expect(page).to have_selector("legend h2") + it 'renders nested champs (after an header section) within a fieldset' do + expect(page).to have_selector("fieldset", count: 1) + expect(page).to have_selector("fieldset legend h2") + expect(page).to have_selector("input[type=text]", count: 2) + expect(page).to have_selector("fieldset input[type=text]", count: 1) end - it 'renders all champs, each in its fieldset' do + it 'renders nested within its fieldset' do expect(page).to have_selector("input[type=text]", count: 2) - expect(page).to have_selector("fieldset > .fr-fieldset__element input[type=text]", count: 2) + expect(page).to have_selector("fieldset > .fr-fieldset__element input[type=text]", count: 1) end end