@ -314,7 +314,7 @@ RSpec.describe BulkUpload::Lettings::Year2026::RowParser do
:field_126 , # pscharge
:field_127 , # supcharg
] . each do | field |
expect ( parser . errors [ field ] ) . to include ( error_message )
expect ( parser . errors [ field ] ) . to include ( error_message ) , " field: #{ field } "
end
expect ( parser . errors [ :field_6 ] ) . not_to include ( error_message )
@ -336,8 +336,8 @@ RSpec.describe BulkUpload::Lettings::Year2026::RowParser do
end
end
context " when a supported housing log already exists in the db " do # TODO: CLDC-4119: Beware! The `postcode_full` method in the `LettingsLog` class may cause issues with these supported housing log duplicate detection tests after postcode is added. See comment on the `postcode_full` method for details.
let ( :attributes ) { valid_attributes . merge ( { field_4 : " 2 " , field_5 : " S #{ scheme . id } " , field_6 : location . old_visible_id , field_36 : 3 , field_122 : 0 } ) }
context " when a supported housing log already exists in the db " do
let ( :attributes ) { valid_attributes . merge ( { field_4 : " 2 " , field_5 : " S #{ scheme . id } " , field_6 : location . old_visible_id } ) }
before do
parser . log . save!
@ -359,7 +359,9 @@ RSpec.describe BulkUpload::Lettings::Year2026::RowParser do
:field_9 , # startdate
:field_10 , # startdate
:field_13 , # tenancycode
:field_6 , # location
:field_23 , # postcode_full
:field_24 , # postcode_full
:field_25 , # la
:field_42 , # age1
:field_43 , # sex1
:field_46 , # ecstat1
@ -368,141 +370,10 @@ RSpec.describe BulkUpload::Lettings::Year2026::RowParser do
:field_126 , # pscharge
:field_127 , # supcharg
] . each do | field |
expect ( parser . errors [ field ] ) . to include ( error_message )
end
expect ( parser . errors [ :field_23 ] ) . not_to include ( error_message )
expect ( parser . errors [ :field_24 ] ) . not_to include ( error_message )
expect ( parser . errors [ :field_25 ] ) . not_to include ( error_message )
end
end
context " with old core scheme and location ids " do
context " when a supported housing log already exists in the db " do
let ( :attributes ) { { bulk_upload : , field_4 : " 2 " , field_5 : " 123 " } }
before do
parser . log . save!
parser . instance_variable_set ( :@valid , nil )
end
it " is not a valid row " do
expect ( parser ) . not_to be_valid
end
it " adds an error to all the fields used to determine duplicates " do
parser . valid?
error_message = I18n . t ( " validations.lettings.2026.bulk_upload.duplicate " )
[
:field_1 , # owning_organisation
:field_8 , # startdate
:field_9 , # startdate
:field_10 , # startdate
:field_13 , # tenancycode
:field_6 , # location
:field_42 , # age1
:field_43 , # sex1
:field_46 , # ecstat1
:field_124 , # brent
:field_125 , # scharge
:field_126 , # pscharge
:field_127 , # supcharg
] . each do | field |
expect ( parser . errors [ field ] ) . to include ( error_message )
end
expect ( parser . errors [ :field_23 ] ) . not_to include ( error_message )
expect ( parser . errors [ :field_24 ] ) . not_to include ( error_message )
expect ( parser . errors [ :field_25 ] ) . not_to include ( error_message )
end
end
end
context " with new core scheme and location ids " do
context " when a supported housing log already exists in the db " do
let ( :attributes ) { { bulk_upload : , field_4 : " 2 " , field_5 : " S123 " } }
before do
parser . log . save!
parser . instance_variable_set ( :@valid , nil )
expect ( parser . errors [ field ] ) . to include ( error_message ) , " field: #{ field } "
end
it " is not a valid row " do
expect ( parser ) . not_to be_valid
end
it " adds an error to all the fields used to determine duplicates " do
parser . valid?
error_message = I18n . t ( " validations.lettings.2026.bulk_upload.duplicate " )
[
:field_1 , # owning_organisation
:field_8 , # startdate
:field_9 , # startdate
:field_10 , # startdate
:field_13 , # tenancycode
:field_6 , # location
:field_42 , # age1
:field_43 , # sex1
:field_46 , # ecstat1
] . each do | field |
expect ( parser . errors [ field ] ) . to include ( error_message )
end
expect ( parser . errors [ :field_23 ] ) . not_to include ( error_message )
expect ( parser . errors [ :field_24 ] ) . not_to include ( error_message )
expect ( parser . errors [ :field_25 ] ) . not_to include ( error_message )
end
end
context " when a supported housing log already exists in the db (2) " do
let ( :bulk_upload ) { create ( :bulk_upload , :lettings , user : , needstype : 2 ) }
let ( :attributes ) do
valid_attributes . merge ( { field_5 : " S #{ scheme . id } " ,
field_4 : " 2 " ,
field_11 : " 2 " ,
field_6 : location . id ,
field_1 : owning_org . old_visible_id ,
field_122 : 0 ,
field_36 : 4 } )
end
before do
parser . log . save!
parser . instance_variable_set ( :@valid , nil )
end
it " is not a valid row " do
expect ( parser ) . not_to be_valid
end
it " adds an error to all the fields used to determine duplicates " do
parser . valid?
error_message = I18n . t ( " validations.lettings.2026.bulk_upload.duplicate " )
[
:field_1 , # owning_organisation
:field_8 , # startdate
:field_9 , # startdate
:field_10 , # startdate
:field_13 , # tenancycode
:field_6 , # location
:field_42 , # age1
:field_43 , # sex1
:field_46 , # ecstat1
:field_122 , # household_charge
] . each do | field |
expect ( parser . errors [ field ] ) . to include ( error_message )
end
expect ( parser . errors [ :field_23 ] ) . not_to include ( error_message )
expect ( parser . errors [ :field_24 ] ) . not_to include ( error_message )
expect ( parser . errors [ :field_25 ] ) . not_to include ( error_message )
end
expect ( parser . errors [ :field_6 ] ) . not_to include ( error_message )
end
end