Browse Source

bulk upload duplicates discounts hidden logs

pull/1334/head
Phil Lee 3 years ago
parent
commit
1f0516217f
  1. 4
      app/services/bulk_upload/lettings/year2022/row_parser.rb
  2. 4
      app/services/bulk_upload/lettings/year2023/row_parser.rb
  3. 33
      spec/services/bulk_upload/lettings/year2022/row_parser_spec.rb
  4. 37
      spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb

4
app/services/bulk_upload/lettings/year2022/row_parser.rb

@ -396,7 +396,9 @@ class BulkUpload::Lettings::Year2022::RowParser
end
def log_already_exists?
@log_already_exists ||= LettingsLog.exists?(duplicate_check_fields.index_with { |field| log.public_send(field) })
@log_already_exists ||= LettingsLog
.where(status: %w[not_started in_progress completed])
.exists?(duplicate_check_fields.index_with { |field| log.public_send(field) })
end
private

4
app/services/bulk_upload/lettings/year2023/row_parser.rb

@ -401,7 +401,9 @@ class BulkUpload::Lettings::Year2023::RowParser
end
def log_already_exists?
LettingsLog.exists?(duplicate_check_fields.index_with { |field| log.public_send(field) })
@log_already_exists ||= LettingsLog
.where(status: %w[not_started in_progress completed])
.exists?(duplicate_check_fields.index_with { |field| log.public_send(field) })
end
private

33
spec/services/bulk_upload/lettings/year2022/row_parser_spec.rb

@ -252,6 +252,39 @@ RSpec.describe BulkUpload::Lettings::Year2022::RowParser do
expect(parser.errors.as_json).to eq(expected_errors)
end
end
context "when a hidden log already exists in db" do
before do
parser.log.status = "pending"
parser.log.skip_update_status = true
parser.log.save!
end
it "is a valid row" do
expect(parser).to be_valid
end
it "does not add duplicate errors" do
parser.valid?
[
:field_5, # location
:field_12, # age1
:field_20, # sex1
:field_35, # ecstat1
:field_84, # tcharge
:field_96, # startdate
:field_97, # startdate
:field_98, # startdate
:field_100, # propcode
:field_108, # postcode_full
:field_109, # postcode_full
:field_111, # owning_organisation
].each do |field|
expect(parser.errors[field]).to be_blank
end
end
end
end
end

37
spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb

@ -70,6 +70,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
DPA: {
"POSTCODE": "EC1N 2TD",
"POST_TOWN": "Newcastle",
"ORGANISATION_NAME": "Some place",
},
},
],
@ -228,7 +229,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
}
end
xit "returns true" do
it "returns true" do
expect(parser).to be_valid
end
@ -274,6 +275,40 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
end
end
end
context "when a hidden log already exists in db" do
before do
parser.log.status = "pending"
parser.log.skip_update_status = true
parser.log.save!
end
it "is a valid row" do
expect(parser).to be_valid
end
it "does not add duplicate errors" do
parser.valid?
[
:field_1, # owning_organisation
:field_7, # startdate
:field_8, # startdate
:field_9, # startdate
:field_14, # propcode
:field_17, # location
:field_23, # postcode_full
:field_24, # postcode_full
:field_25, # postcode_full
:field_46, # age1
:field_47, # sex1
:field_50, # ecstat1
:field_132, # tcharge
].each do |field|
expect(parser.errors[field]).to be_blank
end
end
end
end
describe "#validate_nulls" do

Loading…
Cancel
Save