2 changed files with 0 additions and 99 deletions
@ -1,12 +0,0 @@ |
|||||||
desc "Bulk update logs with invalid rp_dontknow values" |
|
||||||
task recalculate_invalid_rpdontknow: :environment do |
|
||||||
validation_trigger_condition = "rp_dontknow = 1 AND (rp_homeless = 1 OR rp_insan_unsat = 1 OR rp_medwel = 1 OR rp_hardship = 1)" |
|
||||||
|
|
||||||
LettingsLog.filter_by_year(2024).where(validation_trigger_condition).find_each do |log| |
|
||||||
log.rp_dontknow = 0 |
|
||||||
|
|
||||||
unless log.save |
|
||||||
Rails.logger.info "Could not save changes to lettings log #{log.id}" |
|
||||||
end |
|
||||||
end |
|
||||||
end |
|
||||||
@ -1,87 +0,0 @@ |
|||||||
require "rails_helper" |
|
||||||
require "rake" |
|
||||||
|
|
||||||
RSpec.describe "recalculate_invalid_reasonpref_dontknow" do |
|
||||||
include CollectionTimeHelper |
|
||||||
|
|
||||||
subject(:task) { Rake::Task["recalculate_invalid_rpdontknow"] } |
|
||||||
|
|
||||||
before do |
|
||||||
Rake.application.rake_require("tasks/recalculate_invalid_reasonpref_dontknow") |
|
||||||
Rake::Task.define_task(:environment) |
|
||||||
task.reenable |
|
||||||
Timecop.freeze(previous_collection_end_date) |
|
||||||
end |
|
||||||
|
|
||||||
after do |
|
||||||
Timecop.return |
|
||||||
end |
|
||||||
|
|
||||||
let(:invalid_logs) { create_list(:lettings_log, 5, :completed, :ignore_validation_errors, reasonpref: 1, rp_dontknow: 1, rp_homeless: 1, rp_insan_unsat: rand(2), rp_medwel: rand(2), rp_hardship: rand(2), updated_at: Time.zone.local(2024, 4, 2, 12, 0, 0), startdate: Time.zone.local(2024, rand(4..12), rand(1..30))) } |
|
||||||
let(:pre_2024_invalid_logs) do |
|
||||||
create_list(:lettings_log, 5, :completed, reasonpref: 1, rp_dontknow: 1, rp_homeless: 1, rp_insan_unsat: rand(2), rp_medwel: rand(2), rp_hardship: rand(2)).each do |log| |
|
||||||
log.startdate = Time.zone.local(rand(2021..2023), 4, 1) |
|
||||||
log.save!(validate: false) |
|
||||||
end |
|
||||||
end |
|
||||||
let(:valid_logs) { create_list(:lettings_log, 3, :completed, :ignore_validation_errors, reasonpref: 1, rp_dontknow: 0, rp_homeless: 1, rp_insan_unsat: 1, rp_medwel: rand(2), rp_hardship: rand(2), updated_at: Time.zone.local(2024, 4, 2, 12, 0, 0), startdate: Time.zone.local(2024, rand(4..12), rand(1..30))) } |
|
||||||
|
|
||||||
context "when 2025", metadata: { year: 25 } do |
|
||||||
before do |
|
||||||
Timecop.travel(collection_start_date_for_year(2025)) |
|
||||||
end |
|
||||||
|
|
||||||
after do |
|
||||||
Timecop.return |
|
||||||
end |
|
||||||
|
|
||||||
it "updates the logs from 2024/25 with invalid rp_dontknow values" do |
|
||||||
invalid_logs.each do |log| |
|
||||||
expect(log.reasonpref).to eq(1) |
|
||||||
expect(log.rp_dontknow).to eq(1) |
|
||||||
expect(log.rp_homeless).to eq(1) |
|
||||||
end |
|
||||||
task.invoke |
|
||||||
invalid_logs.each do |log| |
|
||||||
log.reload |
|
||||||
expect(log.reasonpref).to eq(1) |
|
||||||
expect(log.rp_dontknow).to eq(0) |
|
||||||
expect(log.rp_homeless).to eq(1) |
|
||||||
expect(log.updated_at).not_to eq(Time.zone.local(2024, 4, 2, 12, 0, 0)) |
|
||||||
end |
|
||||||
end |
|
||||||
|
|
||||||
it "does not update the logs pre 2024 with invalid rp_dontknow values" do |
|
||||||
pre_2024_invalid_logs.each do |log| |
|
||||||
expect(log.reasonpref).to eq(1) |
|
||||||
expect(log.rp_dontknow).to eq(1) |
|
||||||
expect(log.rp_homeless).to eq(1) |
|
||||||
end |
|
||||||
task.invoke |
|
||||||
pre_2024_invalid_logs.each do |log| |
|
||||||
log.reload |
|
||||||
expect(log.reasonpref).to eq(1) |
|
||||||
expect(log.rp_dontknow).to eq(1) |
|
||||||
expect(log.rp_homeless).to eq(1) |
|
||||||
end |
|
||||||
end |
|
||||||
|
|
||||||
it "does not update the logs with valid rp_dontknow values" do |
|
||||||
valid_logs.each do |log| |
|
||||||
expect(log.reasonpref).to eq(1) |
|
||||||
expect(log.rp_dontknow).to eq(0) |
|
||||||
expect(log.rp_homeless).to eq(1) |
|
||||||
expect(log.rp_insan_unsat).to eq(1) |
|
||||||
end |
|
||||||
task.invoke |
|
||||||
valid_logs.each do |log| |
|
||||||
log.reload |
|
||||||
expect(log.reasonpref).to eq(1) |
|
||||||
expect(log.rp_dontknow).to eq(0) |
|
||||||
expect(log.rp_homeless).to eq(1) |
|
||||||
expect(log.rp_insan_unsat).to eq(1) |
|
||||||
expect(log.updated_at).to eq(Time.zone.local(2024, 4, 2, 12, 0, 0)) |
|
||||||
end |
|
||||||
end |
|
||||||
end |
|
||||||
end |
|
||||||
Loading…
Reference in new issue