diff --git a/lib/tasks/clear_invalid_benefits.rake b/lib/tasks/clear_invalid_benefits.rake index 769f61d77..cd5ffa7b2 100644 --- a/lib/tasks/clear_invalid_benefits.rake +++ b/lib/tasks/clear_invalid_benefits.rake @@ -4,6 +4,7 @@ task clear_invalid_benefits: :environment do LettingsLog.filter_by_year(2024).where(status: "pending", status_cache: "completed", benefits: 1).where(validation_trigger_condition).find_each do |log| log.status_cache = log.calculate_status log.skip_update_status = true + log.benefits = nil unless log.save Rails.logger.info "Could not save changes to pending lettings log #{log.id}" @@ -11,6 +12,7 @@ task clear_invalid_benefits: :environment do end LettingsLog.filter_by_year(2024).visible.where(benefits: 1).where(validation_trigger_condition).find_each do |log| + log.benefits = nil unless log.save Rails.logger.info "Could not save changes to lettings log #{log.id}" end diff --git a/spec/lib/tasks/clear_invalid_benefits_spec.rb b/spec/lib/tasks/clear_invalid_benefits_spec.rb index ca0ec121e..755612f8b 100644 --- a/spec/lib/tasks/clear_invalid_benefits_spec.rb +++ b/spec/lib/tasks/clear_invalid_benefits_spec.rb @@ -13,7 +13,7 @@ RSpec.describe "clear_invalid_benefits" do context "when the rake task is run" do context "and there is a completed lettings log that trips the validation" do - let(:log) { build(:lettings_log, :completed, ecstat1: 1, benefits: 1) } + let(:log) { build(:lettings_log, :completed, ecstat1: 1, benefits: 1, assigned_to: create(:user), period: nil) } before do log.status = "completed" @@ -22,6 +22,7 @@ RSpec.describe "clear_invalid_benefits" do end it "clear benefits and sets the log to in progress" do + expect(log.reload.benefits).to eq(1) task.invoke log.reload expect(log.benefits).to eq(nil) @@ -30,7 +31,7 @@ RSpec.describe "clear_invalid_benefits" do end context "and there is a lettings log that trips the validation for person 2" do - let(:log) { build(:lettings_log, :completed, ecstat2: 2, benefits: 1, relat2: "P") } + let(:log) { build(:lettings_log, :completed, ecstat2: 2, benefits: 1, relat2: "P", assigned_to: create(:user), period: nil) } before do log.status = "completed" @@ -39,6 +40,7 @@ RSpec.describe "clear_invalid_benefits" do end it "clear benefits and sets the log to in progress" do + expect(log.reload.benefits).to eq(1) task.invoke log.reload expect(log.benefits).to eq(nil) @@ -47,7 +49,7 @@ RSpec.describe "clear_invalid_benefits" do end context "and there is a lettings log that trips the validation for person 8" do - let(:log) { build(:lettings_log, :completed, ecstat8: 1, benefits: 1, relat8: "P") } + let(:log) { build(:lettings_log, :completed, ecstat8: 1, benefits: 1, relat8: "P", assigned_to: create(:user), period: nil) } before do log.status = "completed" @@ -56,6 +58,7 @@ RSpec.describe "clear_invalid_benefits" do end it "clear benefits and sets the log to in progress" do + expect(log.reload.benefits).to eq(1) task.invoke log.reload expect(log.benefits).to eq(nil) @@ -64,7 +67,7 @@ RSpec.describe "clear_invalid_benefits" do end context "and there is a pending lettings log that trips the validation" do - let(:log) { build(:lettings_log, :completed, ecstat1: 1, benefits: 1) } + let(:log) { build(:lettings_log, :completed, ecstat1: 1, benefits: 1, assigned_to: create(:user), period: nil) } before do log.status = "pending" @@ -74,6 +77,7 @@ RSpec.describe "clear_invalid_benefits" do end it "clears benefits and updates the status cache" do + expect(log.reload.benefits).to eq(1) task.invoke log.reload expect(log.benefits).to eq(nil)