require "rails_helper"

RSpec.describe FormPageErrorHelper do
  describe "#remove_other_page_errors" do
    context "when non base other questions are removed" do
      around do |example|
        Timecop.freeze(Time.zone.local(2022, 1, 1)) do
          Singleton.__init__(FormHandler)
          example.run
        end
        Timecop.return
        Singleton.__init__(FormHandler)
      end

      let!(:lettings_log) { FactoryBot.create(:lettings_log, :in_progress) }
      let!(:form) { lettings_log.form }

      before do
        lettings_log.errors.add :layear, "error"
        lettings_log.errors.add :period, "error_one"
        lettings_log.errors.add :base, "error_too"
      end

      it "returns details and user tabs" do
        page = form.get_page("rent")
        remove_other_page_errors(lettings_log, page)
        expect(lettings_log.errors.count).to eq(2)
        expect(lettings_log.errors.map(&:attribute)).to include(:period)
        expect(lettings_log.errors.map(&:attribute)).to include(:base)
      end
    end
  end
end