demarches-normaliennes/spec/components/champ_header_sections_summary_component_spec.rb

35 lines
1.2 KiB
Ruby

# 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