|
|
|
|
@ -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:) } |
|
|
|
|
|