# frozen_string_literal: true

describe ExportTemplate::ChampsComponent, type: :component do
  let(:groupe_instructeur) { create(:groupe_instructeur, procedure:) }
  let(:export_template) { build(:export_template, kind: 'csv', groupe_instructeur:) }
  let(:procedure) { create(:procedure_with_dossiers, :published, types_de_champ_public:, for_individual:) }
  let(:for_individual) { true }
  let(:types_de_champ_public) do
    [
      { type: :text, libelle: "Ca va ?", mandatory: true, stable_id: 1 },
      { type: :communes, libelle: "Commune", mandatory: true, stable_id: 17 },
      { type: :siret, libelle: 'Siret', stable_id: 20 },
      { type: :repetition, mandatory: true, stable_id: 7, libelle: "Amis", children: [{ type: 'text', libelle: 'Prénom', stable_id: 8 }] }
    ]
  end
  let(:component) { described_class.new("Champs publics", export_template, procedure.all_revisions_types_de_champ(parent: nil, with_header_section: true)) }
  before { render_inline(component).to_html }

  it 'renders champs within fieldset' do
    procedure
    expect(page).to have_unchecked_field "Ca va ?"
    expect(page).to have_unchecked_field "Commune"
    expect(page).to have_unchecked_field "Siret"
    expect(page).to have_unchecked_field "(Bloc répétable Amis) – Prénom"
  end
end