diff --git a/spec/models/lettings_log_spec.rb b/spec/models/lettings_log_spec.rb index e89015233..3ac0cfe37 100644 --- a/spec/models/lettings_log_spec.rb +++ b/spec/models/lettings_log_spec.rb @@ -2035,6 +2035,21 @@ RSpec.describe LettingsLog do allow(FormHandler.instance).to receive(:get_form).and_return(real_2021_2022_form) end + describe "when changing a log's scheme and hence calling reset_scheme_location!" do + let!(:scheme) { FactoryBot.create(:scheme)} + let!(:invalid_location_1) { FactoryBot.create(:location, scheme:, startdate: Time.zone.today + 3.weeks)} + let!(:valid_location) { FactoryBot.create(:location, scheme:, startdate: Time.zone.yesterday)} + let!(:invalid_location_2) { FactoryBot.create(:location, scheme:, startdate: Time.zone.today + 3.weeks)} + + context "when there is one valid location and many invalid locations in the new scheme" do + let(:log) { create(:lettings_log, scheme: nil, location_id: nil, startdate: Time.zone.today) } + + it "infers that the log is for the valid location" do + expect{ log.update!(scheme:) }.to change(log, :location_id).from(nil).to(valid_location.id) + end + end + end + context "and a scheme with a single log is selected" do let(:scheme) { create(:scheme) } let!(:location) { create(:location, scheme:) }