# frozen_string_literal: true RSpec.describe ViewableChamp::HeaderSectionsSummaryComponent, type: :component do subject { render_inline(component).to_html } let(:is_private) { false } let(:types_de_champ) do [ { type: :header_section, level: 1 }, { type: :text }, { type: :header_section, level: 2 }, { type: :repetition, children: [{ type: :text }, { type: :header_section, level: 1 }] }, { type: :header_section, level: 3 }, { type: :text } ] end let(:procedure) { create(:procedure, types_de_champ_public: types_de_champ, types_de_champ_private: types_de_champ) } let(:dossier) { create(:dossier, procedure:) } let(:component) { described_class.new(dossier:, is_private:) } let(:types_de_champ_public) { dossier.revision.types_de_champ_public.filter(&:header_section?) } let(:types_de_champ_private) { dossier.revision.types_de_champ_private.filter(&:header_section?) } context 'public' do it do types_de_champ_public.each { expect(subject).to have_selector("a[href='##{_1.html_id}']") } end end context 'private' do let(:is_private) { true } it do types_de_champ_private.each { expect(subject).to have_selector("a[href='##{_1.html_id}']") } end end end