require "rails_helper"

RSpec.describe Form::Section, type: :model do
  subject(:section) { described_class.new(section_id, section_definition, form) }

  let(:lettings_log) { FactoryBot.build(:lettings_log) }
  let(:form) { lettings_log.form }
  let(:section_id) { "household" }
  let(:section_definition) { form.form_definition["sections"][section_id] }
  let(:fake_2021_2022_form) { Form.new("spec/fixtures/forms/2021_2022.json") }

  before do
    allow(FormHandler.instance).to receive(:current_lettings_form).and_return(fake_2021_2022_form)
  end

  it "has an id" do
    expect(section.id).to eq(section_id)
  end

  it "has a label" do
    expect(section.label).to eq("About the household")
  end

  it "has a description" do
    expect(section.description).to eq("Make sure the tenant has seen the privacy notice.")
  end

  it "has subsections" do
    expected_subsections = %w[household_characteristics household_needs]
    expect(section.subsections.map(&:id)).to eq(expected_subsections)
  end
end