9 changed files with 40 additions and 120 deletions
@ -0,0 +1,5 @@ |
|||||||
|
class AddRentFixStatus < ActiveRecord::Migration[7.0] |
||||||
|
def change |
||||||
|
add_column :bulk_uploads, :rent_type_fix_status, :string, default: "not_applied" |
||||||
|
end |
||||||
|
end |
||||||
@ -1,24 +0,0 @@ |
|||||||
desc "Alter noint values for bulk uploaded sales logs where these have not been set in the service" |
|
||||||
task correct_noint_value: :environment do |
|
||||||
update_counts = { |
|
||||||
in_progress: 0, |
|
||||||
completed: 0, |
|
||||||
pending: 0, |
|
||||||
deleted: 0, |
|
||||||
} |
|
||||||
affected_uploads = BulkUpload.where(log_type: "sales", noint_fix_status: BulkUpload.noint_fix_statuses[:not_applied]) |
|
||||||
affected_uploads.each do |upload| |
|
||||||
upload.logs.where(noint: 2).each do |log| |
|
||||||
noint_at_upload = log.versions.length == 1 ? log.noint : log.versions.first.next.reify.noint |
|
||||||
next unless noint_at_upload == 2 |
|
||||||
|
|
||||||
Rails.logger.info("Updating noint value on log #{log.id}, owning org #{log.owning_organisation_id}") |
|
||||||
update_counts[log.status.to_sym] += 1 |
|
||||||
log.noint = 1 |
|
||||||
log.skip_update_status = true |
|
||||||
log.save! |
|
||||||
end |
|
||||||
upload.update!(noint_fix_status: BulkUpload.noint_fix_statuses[:applied]) |
|
||||||
end |
|
||||||
Rails.logger.info("Logs updated; #{update_counts}") |
|
||||||
end |
|
||||||
@ -1,87 +0,0 @@ |
|||||||
require "rails_helper" |
|
||||||
require "rake" |
|
||||||
|
|
||||||
RSpec.describe "correct_noint_value" do |
|
||||||
describe ":correct_noint_value", type: :task do |
|
||||||
subject(:task) { Rake::Task["correct_noint_value"] } |
|
||||||
|
|
||||||
before do |
|
||||||
Rake.application.rake_require("tasks/correct_noint_value") |
|
||||||
Rake::Task.define_task(:environment) |
|
||||||
task.reenable |
|
||||||
end |
|
||||||
|
|
||||||
context "when the rake task is run" do |
|
||||||
context "and there is a sales bulk upload with the fix needed" do |
|
||||||
let(:bulk_upload) { create(:bulk_upload, :sales, noint_fix_status: BulkUpload.noint_fix_statuses[:not_applied]) } |
|
||||||
|
|
||||||
before do |
|
||||||
bulk_upload.save! |
|
||||||
end |
|
||||||
|
|
||||||
it "updates the noint value on a log with noint = 2 where it was set to 2 on create" do |
|
||||||
log = create(:sales_log, :completed, noint: 2, bulk_upload:) |
|
||||||
|
|
||||||
task.invoke |
|
||||||
log.reload |
|
||||||
|
|
||||||
expect(log.noint).to be(1) |
|
||||||
end |
|
||||||
|
|
||||||
it "updates the noint value on a log with noint = 2 where it was set to 2 on create and other fields have since changed" do |
|
||||||
log = create(:sales_log, :in_progress, noint: 2, bulk_upload:) |
|
||||||
log.update!(status: Log.statuses[:completed]) |
|
||||||
|
|
||||||
task.invoke |
|
||||||
log.reload |
|
||||||
|
|
||||||
expect(log.noint).to be(1) |
|
||||||
end |
|
||||||
|
|
||||||
it "does not update the noint value on a log that has noint = 1" do |
|
||||||
log = create(:sales_log, :completed, noint: 2, bulk_upload:) |
|
||||||
log.update!(noint: 1) |
|
||||||
|
|
||||||
task.invoke |
|
||||||
log.reload |
|
||||||
|
|
||||||
expect(log.noint).to be(1) |
|
||||||
end |
|
||||||
|
|
||||||
it "does not update the noint value on a log with noint = 2 where noint was nil on create" do |
|
||||||
log = create(:sales_log, :completed, noint: nil, bulk_upload:) |
|
||||||
log.update!(noint: 2) |
|
||||||
|
|
||||||
task.invoke |
|
||||||
log.reload |
|
||||||
|
|
||||||
expect(log.noint).to be(2) |
|
||||||
end |
|
||||||
|
|
||||||
it "updates the noint_fix_status value on the bulk upload" do |
|
||||||
task.invoke |
|
||||||
bulk_upload.reload |
|
||||||
|
|
||||||
expect(bulk_upload.noint_fix_status).to eq(BulkUpload.noint_fix_statuses[:applied]) |
|
||||||
end |
|
||||||
end |
|
||||||
|
|
||||||
context "and there is a sales bulk upload with the fix marked as not needed" do |
|
||||||
let(:bulk_upload) { create(:bulk_upload, :sales, noint_fix_status: BulkUpload.noint_fix_statuses[:not_needed]) } |
|
||||||
|
|
||||||
before do |
|
||||||
bulk_upload.save! |
|
||||||
end |
|
||||||
|
|
||||||
it "does not update the noint values on logs" do |
|
||||||
log = create(:sales_log, :completed, noint: 2, bulk_upload:) |
|
||||||
|
|
||||||
task.invoke |
|
||||||
log.reload |
|
||||||
|
|
||||||
expect(log.noint).to be(2) |
|
||||||
end |
|
||||||
end |
|
||||||
end |
|
||||||
end |
|
||||||
end |
|
||||||
Loading…
Reference in new issue