@ -86,8 +86,6 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
before do
stub_request ( :get , / api \ .postcodes \ .io / )
. to_return ( status : 200 , body : " { \" status \" :200, \" result \" :{ \" admin_district \" : \" Manchester \" , \" codes \" :{ \" admin_district \" : \" E08000003 \" }}} " , headers : { } )
parser . valid?
end
describe " # valid? " do
@ -103,6 +101,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_134 : 2 } }
it " does not add keep adding errors to the pile " do
parser . valid?
expect { parser . valid? } . not_to change ( parser . errors , :count )
end
end
@ -258,7 +257,6 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
before do
parser . log . save!
parser . instance_variable_set ( :@valid , nil )
end
it " is not a valid row " do
@ -296,7 +294,6 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
before do
parser . log . save!
parser . instance_variable_set ( :@valid , nil )
end
it " is not a valid row " do
@ -335,7 +332,6 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
before do
parser . log . save!
parser . instance_variable_set ( :@valid , nil )
end
it " is not a valid row " do
@ -383,7 +379,6 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
before do
parser . log . save!
parser . instance_variable_set ( :@valid , nil )
end
it " is not a valid row " do
@ -443,7 +438,6 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
before do
parser . log . save!
parser . instance_variable_set ( :@valid , nil )
end
it " is a valid row " do
@ -479,7 +473,6 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
before do
parser . log . save!
parser . instance_variable_set ( :@valid , nil )
end
it " is not a valid row " do
@ -527,7 +520,6 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
before do
parser . log . save!
parser . instance_variable_set ( :@valid , nil )
end
it " is not a valid row " do
@ -587,7 +579,6 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
before do
parser . log . save!
parser . instance_variable_set ( :@valid , nil )
end
it " is a valid row " do
@ -697,6 +688,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { valid_attributes . merge ( { field_45 : nil } ) }
it " cannot be nulled " do
parser . valid?
expect ( parser . errors [ :field_45 ] ) . to eq ( [ " You must show the DLUHC privacy notice to the tenant before you can submit this log. " ] )
end
end
@ -719,8 +711,9 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_13 : " 123 " } }
it " has errors on setup fields " do
errors = parser . errors . select { | e | e . options [ :category ] == :setup } . map ( & :attribute ) . sort
parser . valid?
errors = parser . errors . select { | e | e . options [ :category ] == :setup } . map ( & :attribute ) . sort
expect ( errors ) . to eql ( % i [ field_1 field_2 field_4 field_45 field_5 field_6 field_7 field_8 field_9 ] )
end
end
@ -730,14 +723,17 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_3 : " " , field_4 : 1 } }
it " is permitted " do
parser . valid?
expect ( parser . errors [ :field_3 ] ) . to be_blank
end
it " sets assigned to to bulk upload user " do
parser . valid?
expect ( parser . log . assigned_to ) . to eq ( bulk_upload . user )
end
it " sets created by to bulk upload user " do
parser . valid?
expect ( parser . log . created_by ) . to eq ( bulk_upload . user )
end
end
@ -746,6 +742,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_3 : " idonotexist@example.com " } }
it " is not permitted " do
parser . valid?
expect ( parser . errors [ :field_3 ] ) . to be_present
end
end
@ -756,10 +753,12 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_1 : owning_org . old_visible_id , field_3 : other_user . email , field_2 : managing_org . old_visible_id } }
it " is not permitted " do
parser . valid?
expect ( parser . errors [ :field_3 ] ) . to be_present
end
it " blocks log creation " do
parser . valid?
expect ( parser ) . to be_block_log_creation
end
end
@ -770,6 +769,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_1 : owning_org . old_visible_id , field_3 : other_user . email , field_2 : managing_org . old_visible_id } }
it " is permitted " do
parser . valid?
expect ( parser . errors [ :field_3 ] ) . to be_blank
end
@ -788,6 +788,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_1 : owning_org . old_visible_id , field_3 : other_user . email . upcase! , field_2 : managing_org . old_visible_id } }
it " is permitted " do
parser . valid?
expect ( parser . errors [ :field_3 ] ) . to be_blank
end
end
@ -798,6 +799,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_1 : owning_org . old_visible_id , field_3 : other_user . email , field_2 : managing_org . old_visible_id } }
it " is permitted " do
parser . valid?
expect ( parser . errors [ :field_3 ] ) . to be_blank
end
end
@ -808,6 +810,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_5 : nil , field_15 : " 1 " } }
it " returns an error " do
parser . valid?
expect ( parser . errors [ :field_5 ] ) . to be_present
end
end
@ -816,6 +819,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_5 : " foo " } }
it " returns an error " do
parser . valid?
expect ( parser . errors [ :field_5 ] ) . to be_present
end
end
@ -824,6 +828,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_5 : " 101 " } }
it " returns an error " do
parser . valid?
expect ( parser . errors [ :field_5 ] ) . to be_present
end
end
@ -832,6 +837,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_5 : " 1 " , field_4 : " 1 " } }
it " does not return any errors " do
parser . valid?
expect ( parser . errors [ :field_5 ] ) . to be_blank
end
end
@ -840,6 +846,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_5 : " 9 " , field_11 : nil } }
it " adds error on field_11 " do
parser . valid?
expect ( parser . errors [ :field_5 ] ) . to be_present
expect ( parser . errors [ :field_11 ] ) . to eq ( [ " You must answer intermediate rent type " ] )
end
@ -849,6 +857,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_5 : " 9 " , field_11 : " Intermediate rent " } }
it " adds error on field_11 " do
parser . valid?
expect ( parser . errors [ :field_5 ] ) . to be_present
expect ( parser . errors [ :field_11 ] ) . to eq ( [ " You must answer intermediate rent type " ] )
end
@ -858,6 +868,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_5 : " 5 " , field_10 : nil } }
it " adds error on field_10 " do
parser . valid?
expect ( parser . errors [ :field_5 ] ) . to be_present
expect ( parser . errors [ :field_10 ] ) . to eq ( [ " You must answer is this a London Affordable Rent letting " ] )
end
@ -867,6 +879,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_5 : " 5 " , field_10 : " Intermediate rent " } }
it " adds error on field_10 " do
parser . valid?
expect ( parser . errors [ :field_5 ] ) . to be_present
expect ( parser . errors [ :field_10 ] ) . to eq ( [ " You must answer is this a London Affordable Rent letting " ] )
end
@ -876,6 +890,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_5 : " 9 " , field_11 : " 3 " , field_12 : nil } }
it " adds error on field_12 " do
parser . valid?
expect ( parser . errors [ :field_12 ] ) . to eq ( [ " You must answer product name " ] )
end
end
@ -885,6 +900,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_5 : " 1 " , field_4 : " 1 " } }
it " is permitted " do
parser . valid?
expect ( parser . errors [ :field_4 ] ) . to be_blank
expect ( parser . errors [ :field_5 ] ) . to be_blank
end
@ -894,6 +911,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_5 : " 2 " , field_4 : " 1 " } }
it " is not permitted " do
parser . valid?
expect ( parser . errors [ :field_4 ] ) . to include ( " This letting type is supported housing, but the needs type is general needs. Change either the needs type or the letting type. " )
expect ( parser . errors [ :field_5 ] ) . to include ( " This needs type is general needs, but the letting type is supported housing. Change either the needs type or the letting type. " )
end
@ -907,6 +926,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_5 : " 1 " , field_4 : " 2 " } }
it " is not permitted " do
parser . valid?
expect ( parser . errors [ :field_4 ] ) . to include ( " This letting type is general needs, but the needs type is supported housing. Change either the needs type or the letting type. " )
expect ( parser . errors [ :field_5 ] ) . to include ( " This needs type is supported housing, but the letting type is general needs. Change either the needs type or the letting type. " )
end
@ -916,6 +937,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_5 : " 2 " , field_4 : " 2 " } }
it " is permitted " do
parser . valid?
expect ( parser . errors [ :field_4 ] ) . to be_blank
expect ( parser . errors [ :field_5 ] ) . to be_blank
end
@ -928,6 +951,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_4 : " 2 " , field_5 : " 2 " , field_15 : nil , field_16 : nil , field_17 : nil } }
it " cannot be nulled " do
parser . valid?
expect ( parser . errors [ :field_15 ] ) . to be_blank
expect ( parser . errors [ :field_16 ] ) . to eq ( [ " You must answer scheme code " ] )
expect ( parser . errors [ :field_17 ] ) . to be_blank
@ -938,6 +963,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_4 : " 1 " , field_5 : " 1 " , field_15 : nil , field_16 : nil , field_17 : nil } }
it " can be nulled " do
parser . valid?
expect ( parser . errors [ :field_15 ] ) . to be_blank
expect ( parser . errors [ :field_16 ] ) . to be_blank
expect ( parser . errors [ :field_17 ] ) . to be_blank
@ -948,14 +975,12 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :scheme ) { create ( :scheme , :with_old_visible_id , owning_organisation : owning_org ) }
let! ( :location ) { create ( :location , :with_old_visible_id , scheme : ) }
before do
parser . valid?
end
context " when matching scheme cannot be found " do
let ( :attributes ) { { bulk_upload : , field_1 : owning_org . old_visible_id , field_2 : owning_org . old_visible_id , field_4 : " 2 " , field_5 : " 2 " , field_16 : " S123 " , field_17 : location . id } }
it " returns a setup error " do
parser . valid?
expect ( parser . errors [ :field_15 ] ) . to be_blank
expect ( parser . errors . where ( :field_16 , category : :setup ) . map ( & :message ) ) . to eq ( [ " This scheme code does not belong to the owning organisation or managing organisation " ] )
expect ( parser . errors [ :field_17 ] ) . to be_blank
@ -966,6 +991,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_1 : owning_org . old_visible_id , field_2 : owning_org . old_visible_id , field_4 : " 2 " , field_5 : " 2 " , field_16 : " S #{ scheme . id } " , field_17 : nil } }
it " returns a setup error " do
parser . valid?
expect ( parser . errors [ :field_15 ] ) . to be_blank
expect ( parser . errors [ :field_16 ] ) . to be_blank
expect ( parser . errors . where ( :field_17 , category : :setup ) . map ( & :message ) ) . to eq ( [ " You must answer location code " ] )
@ -977,6 +1004,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_1 : owning_org . old_visible_id , field_2 : owning_org . old_visible_id , field_4 : " 2 " , field_5 : " 2 " , field_16 : scheme . old_visible_id . to_s , field_15 : nil , field_17 : nil } }
it " returns a setup error " do
parser . valid?
expect ( parser . errors [ :field_16 ] ) . to be_blank
expect ( parser . errors [ :field_17 ] ) . to be_blank
expect ( parser . errors . where ( :field_15 , category : :setup ) . map ( & :message ) ) . to eq ( [ " You must answer management group code " ] )
@ -988,6 +1017,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_1 : owning_org . old_visible_id , field_2 : owning_org . old_visible_id , field_4 : " 2 " , field_5 : " 2 " , field_16 : " S #{ scheme . id } " , field_17 : " 123 " } }
it " returns a setup error " do
parser . valid?
expect ( parser . errors [ :field_15 ] ) . to be_blank
expect ( parser . errors [ :field_16 ] ) . to be_blank
expect ( parser . errors . where ( :field_17 , category : :setup ) . map ( & :message ) ) . to eq ( [ " Location code must relate to a location that is owned by the owning organisation or managing organisation " ] )
@ -998,6 +1029,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_1 : owning_org . old_visible_id , field_2 : owning_org . old_visible_id , field_4 : " 2 " , field_5 : " 2 " , field_16 : " S #{ scheme . id } " , field_17 : location . id } }
it " does not return an error " do
parser . valid?
expect ( parser . errors [ :field_15 ] ) . to be_blank
expect ( parser . errors [ :field_16 ] ) . to be_blank
expect ( parser . errors [ :field_17 ] ) . to be_blank
@ -1010,6 +1043,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_1 : owning_org . old_visible_id , field_2 : owning_org . old_visible_id , field_4 : " 2 " , field_5 : " 2 " , field_16 : " S #{ scheme . id } " , field_17 : other_location . id } }
it " returns a setup error " do
parser . valid?
expect ( parser . errors [ :field_15 ] ) . to be_blank
expect ( parser . errors [ :field_16 ] ) . to be_blank
expect ( parser . errors . where ( :field_17 , category : :setup ) . map ( & :message ) ) . to eq ( [ " Location code must relate to a location that is owned by the owning organisation or managing organisation " ] )
@ -1022,6 +1057,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_4 : " 2 " , field_5 : " 2 " , field_16 : " S #{ other_scheme . id } " , field_17 : other_location . id , field_1 : owning_org . old_visible_id , field_2 : owning_org . old_visible_id } }
it " returns a setup error " do
parser . valid?
expect ( parser . errors [ :field_15 ] ) . to be_blank
expect ( parser . errors . where ( :field_16 , category : :setup ) . map ( & :message ) ) . to eq ( [ " This scheme code does not belong to the owning organisation or managing organisation " ] )
expect ( parser . errors [ :field_17 ] ) . to be_blank
@ -1032,6 +1069,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_4 : " 2 " , field_5 : " 2 " , field_16 : " S #{ scheme . id } " , field_17 : location . id , field_1 : owning_org . old_visible_id , field_2 : owning_org . old_visible_id } }
it " does not return an error " do
parser . valid?
expect ( parser . errors [ :field_15 ] ) . to be_blank
expect ( parser . errors [ :field_16 ] ) . to be_blank
expect ( parser . errors [ :field_17 ] ) . to be_blank
@ -1044,6 +1083,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_4 : " 2 " , field_5 : " 2 " , field_16 : " S #{ managing_org_scheme . id } " , field_17 : managing_org_location . id , field_2 : managing_org . old_visible_id } }
it " clears the scheme answer " do
parser . valid?
expect ( parser . errors [ :field_15 ] ) . to be_blank
expect ( parser . errors [ :field_16 ] ) . to include ( " You must answer scheme name " )
expect ( parser . errors [ :field_17 ] ) . to be_blank
@ -1055,6 +1096,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_1 : owning_org . old_visible_id , field_2 : owning_org . old_visible_id , field_4 : " 2 " , field_5 : " 2 " , field_16 : " S #{ scheme . id } " , field_17 : incomplete_location . id } }
it " returns a setup error for scheme " do
parser . valid?
expect ( parser . errors [ :field_15 ] ) . to be_blank
expect ( parser . errors . where ( :field_16 ) . map ( & :message ) ) . to eq ( [ " This location is incomplete. Select another location or update this one " ] )
expect ( parser . errors . where ( :field_17 ) . map ( & :message ) ) . to eq ( [ " This location is incomplete. Select another location or update this one " ] )
@ -1066,14 +1109,12 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :scheme ) { create ( :scheme , :with_old_visible_id , owning_organisation : owning_org ) }
let! ( :location ) { create ( :location , :with_old_visible_id , scheme : ) }
before do
parser . valid?
end
context " when matching scheme cannot be found " do
let ( :attributes ) { { bulk_upload : , field_1 : owning_org . old_visible_id , field_2 : owning_org . old_visible_id , field_4 : " 2 " , field_5 : " 2 " , field_15 : " 123 " , field_16 : location . old_visible_id } }
it " returns a setup error " do
parser . valid?
expect ( parser . errors . where ( :field_15 , category : :setup ) . map ( & :message ) ) . to eq ( [ " This management group code does not belong to the owning organisation or managing organisation " ] )
expect ( parser . errors [ :field_16 ] ) . to be_blank
expect ( parser . errors [ :field_17 ] ) . to be_blank
@ -1084,6 +1125,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_1 : owning_org . old_visible_id , field_2 : owning_org . old_visible_id , field_4 : " 2 " , field_5 : " 2 " , field_15 : scheme . old_visible_id , field_16 : nil } }
it " returns a setup error " do
parser . valid?
expect ( parser . errors [ :field_15 ] ) . to be_blank
expect ( parser . errors . where ( :field_16 , category : :setup ) . map ( & :message ) ) . to eq ( [ " You must answer scheme code " ] )
expect ( parser . errors [ :field_17 ] ) . to be_blank
@ -1094,6 +1137,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_1 : owning_org . old_visible_id , field_2 : owning_org . old_visible_id , field_4 : " 2 " , field_5 : " 2 " , field_15 : scheme . old_visible_id , field_16 : " 123 " } }
it " returns a setup error " do
parser . valid?
expect ( parser . errors [ :field_15 ] ) . to be_blank
expect ( parser . errors . where ( :field_16 , category : :setup ) . map ( & :message ) ) . to eq ( [ " Scheme code must relate to a scheme that is owned by the owning organisation or managing organisation " ] )
expect ( parser . errors [ :field_17 ] ) . to be_blank
@ -1104,6 +1149,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_1 : owning_org . old_visible_id , field_2 : owning_org . old_visible_id , field_4 : " 2 " , field_5 : " 2 " , field_15 : scheme . old_visible_id , field_16 : location . old_visible_id } }
it " does not return an error " do
parser . valid?
expect ( parser . errors [ :field_15 ] ) . to be_blank
expect ( parser . errors [ :field_16 ] ) . to be_blank
expect ( parser . errors [ :field_17 ] ) . to be_blank
@ -1116,6 +1163,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_1 : owning_org . old_visible_id , field_2 : owning_org . old_visible_id , field_4 : " 2 " , field_5 : " 2 " , field_15 : scheme . old_visible_id , field_16 : other_location . old_visible_id } }
it " returns a setup error " do
parser . valid?
expect ( parser . errors [ :field_15 ] ) . to be_blank
expect ( parser . errors . where ( :field_16 , category : :setup ) . map ( & :message ) ) . to eq ( [ " Scheme code must relate to a scheme that is owned by the owning organisation or managing organisation " ] )
expect ( parser . errors [ :field_17 ] ) . to be_blank
@ -1128,6 +1177,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_4 : " 2 " , field_5 : " 2 " , field_15 : other_scheme . old_visible_id , field_16 : other_location . old_visible_id , field_1 : owning_org . old_visible_id , field_2 : owning_org . old_visible_id } }
it " returns a setup error " do
parser . valid?
expect ( parser . errors . where ( :field_15 , category : :setup ) . map ( & :message ) ) . to eq ( [ " This management group code does not belong to the owning organisation or managing organisation " ] )
expect ( parser . errors [ :field_16 ] ) . to be_blank
expect ( parser . errors [ :field_17 ] ) . to be_blank
@ -1138,6 +1189,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_4 : " 2 " , field_5 : " 2 " , field_15 : scheme . old_visible_id , field_16 : location . old_visible_id , field_1 : owning_org . old_visible_id , field_2 : owning_org . old_visible_id } }
it " does not return an error " do
parser . valid?
expect ( parser . errors [ :field_15 ] ) . to be_blank
expect ( parser . errors [ :field_16 ] ) . to be_blank
expect ( parser . errors [ :field_17 ] ) . to be_blank
@ -1150,6 +1203,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_4 : " 2 " , field_5 : " 2 " , field_15 : managing_org_scheme . old_visible_id , field_16 : managing_org_location . old_visible_id , field_2 : managing_org . old_visible_id } }
it " clears the scheme answer " do
parser . valid?
expect ( parser . errors [ :field_15 ] ) . to include ( " You must answer scheme name " )
expect ( parser . errors [ :field_16 ] ) . to be_blank
expect ( parser . errors [ :field_17 ] ) . to be_blank
@ -1164,6 +1219,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_102 : " 40 " , field_6 : " 1 " } }
it " is permitted " do
parser . valid?
expect ( parser . errors [ :field_102 ] ) . to be_blank
end
end
@ -1172,6 +1228,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_102 : " 42 " , field_6 : " 1 " } }
it " is permitted " do
parser . valid?
expect ( parser . errors [ :field_102 ] ) . to be_blank
end
end
@ -1180,6 +1237,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_102 : " 1 " , field_6 : " 1 " } }
it " is not permitted " do
parser . valid?
expect ( parser . errors [ :field_102 ] ) . to be_present
end
end
@ -1189,6 +1247,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { setup_section_params . merge ( { field_102 : " 7 " } ) }
it " returns an error " do
parser . valid?
expect ( parser . errors [ :field_102 ] ) . to include ( " Enter a valid value for What is the tenant’s main reason for the household leaving their last settled home? " )
end
end
@ -1199,6 +1258,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_83 : " 1 " } }
it " is permitted " do
parser . valid?
expect ( parser . errors [ :field_83 ] ) . to be_blank
expect ( parser . errors [ :field_84 ] ) . to be_blank
expect ( parser . errors [ :field_85 ] ) . to be_blank
@ -1209,6 +1270,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_83 : " 1 " , field_84 : " 1 " } }
it " is not permitted " do
parser . valid?
expect ( parser . errors [ :field_83 ] ) . to be_present
expect ( parser . errors [ :field_84 ] ) . to be_present
end
@ -1220,6 +1283,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_87 : " 1 " , field_86 : " 1 " } }
it " is not permitted " do
parser . valid?
expect ( parser . errors [ :field_87 ] ) . to be_present
end
end
@ -1230,6 +1294,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_88 : " 1 " , field_86 : " 1 " } }
it " is not permitted " do
parser . valid?
expect ( parser . errors [ :field_88 ] ) . to be_present
end
end
@ -1240,6 +1305,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_87 : " 1 " , field_88 : " 1 " } }
it " is not permitted " do
parser . valid?
expect ( parser . errors [ :field_87 ] ) . to be_present
expect ( parser . errors [ :field_88 ] ) . to be_present
end
@ -1251,6 +1318,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { setup_section_params . merge ( { field_83 : nil , field_84 : nil , field_85 : nil , field_86 : nil , field_87 : nil , field_88 : nil } ) }
it " adds errors to correct fields " do
parser . valid?
expect ( parser . errors [ :field_83 ] ) . to be_present
expect ( parser . errors [ :field_84 ] ) . to be_present
expect ( parser . errors [ :field_85 ] ) . to be_present
@ -1263,6 +1332,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { setup_section_params . merge ( { field_83 : " 1 " , field_86 : nil } ) }
it " sets other disabled access needs as no " do
parser . valid?
expect ( parser . errors [ :field_83 ] ) . to be_blank
expect ( parser . errors [ :field_86 ] ) . to be_blank
expect ( parser . log . housingneeds_other ) . to eq ( 0 )
@ -1275,6 +1346,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_89 : " 2 " , field_90 : " 1 " , field_91 : " 1 " , field_92 : " 1 " } }
it " errors added to correct fields " do
parser . valid?
expect ( parser . errors [ :field_90 ] ) . to be_present
expect ( parser . errors [ :field_91 ] ) . to be_present
expect ( parser . errors [ :field_92 ] ) . to be_present
@ -1292,6 +1365,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_89 : " 1 " , field_90 : nil , field_91 : nil , field_92 : nil , field_93 : nil , field_94 : nil , field_95 : nil , field_96 : nil , field_97 : nil , field_98 : nil , field_99 : nil } }
it " errors added to correct fields " do
parser . valid?
expect ( parser . errors [ :field_90 ] ) . to be_present
expect ( parser . errors [ :field_91 ] ) . to be_present
expect ( parser . errors [ :field_92 ] ) . to be_present
@ -1316,6 +1391,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
end
it " adds an error to #{ field } " do
parser . valid?
expect ( parser . errors [ field ] ) . to be_present
end
end
@ -1327,6 +1403,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_110 : " 1 " , field_111 : nil , field_112 : nil , field_113 : nil , field_114 : nil , field_115 : nil } }
it " is not permitted " do
parser . valid?
expect ( parser . errors [ :field_111 ] ) . to be_present
expect ( parser . errors [ :field_112 ] ) . to be_present
expect ( parser . errors [ :field_113 ] ) . to be_present
@ -1341,6 +1419,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_119 : " 3 " , field_1 : owning_org . old_visible_id , field_2 : owning_org . old_visible_id } }
it " is not permitted " do
parser . valid?
expect ( parser . errors [ :field_119 ] ) . to be_present
end
end
@ -1349,6 +1428,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_119 : " 4 " , field_1 : owning_org . old_visible_id , field_2 : owning_org . old_visible_id , field_4 : " 1 " } }
it " is not permitted " do
parser . valid?
expect ( parser . errors [ :field_119 ] ) . to be_present
end
end
@ -1359,6 +1439,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_119 : " 4 " , field_1 : owning_org . old_visible_id , field_2 : owning_org . old_visible_id } }
it " is permitted " do
parser . valid?
expect ( parser . errors [ :field_119 ] ) . to be_blank
end
end
@ -1368,6 +1449,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_119 : " 4 " , field_4 : " 2 " } }
it " is permitted " do
parser . valid?
expect ( parser . errors [ :field_119 ] ) . to be_blank
end
end
@ -1378,6 +1460,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_5 : " 1 " , field_7 : nil , field_8 : nil , field_9 : nil } }
it " returns an error " do
parser . valid?
expect ( parser . errors [ :field_7 ] ) . to be_present
expect ( parser . errors [ :field_8 ] ) . to be_present
expect ( parser . errors [ :field_9 ] ) . to be_present
@ -1388,6 +1472,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_9 : " 2022 " } }
it " returns an error " do
parser . valid?
expect ( parser . errors [ :field_9 ] ) . to include ( " Tenancy start year must be 2 digits " )
end
end
@ -1406,6 +1491,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :bulk_upload ) { create ( :bulk_upload , :lettings , user : , year : 2022 ) }
it " does not return errors " do
parser . valid?
expect ( parser . errors [ :field_7 ] ) . not_to be_present
expect ( parser . errors [ :field_8 ] ) . not_to be_present
expect ( parser . errors [ :field_9 ] ) . not_to be_present
@ -1424,6 +1511,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :bulk_upload ) { create ( :bulk_upload , :lettings , user : , year : 2022 ) }
it " returns setup errors " do
parser . valid?
expect ( parser . errors . where ( :field_7 , category : :setup ) ) . to be_present
expect ( parser . errors . where ( :field_8 , category : :setup ) ) . to be_present
expect ( parser . errors . where ( :field_9 , category : :setup ) ) . to be_present
@ -1436,10 +1525,12 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_1 : " " , field_4 : 1 } }
it " is not permitted as setup error " do
parser . valid?
expect ( parser . errors . where ( :field_1 , category : :setup ) . map ( & :message ) ) . to eql ( [ " You must answer owning organisation " ] )
end
it " blocks log creation " do
parser . valid?
expect ( parser ) . to be_block_log_creation
end
end
@ -1448,12 +1539,14 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_1 : " donotexist " } }
it " is not permitted as setup error " do
setup_errors = parser . errors . select { | e | e . options [ :category ] == :setup }
parser . valid?
setup_errors = parser . errors . select { | e | e . options [ :category ] == :setup }
expect ( setup_errors . find { | e | e . attribute == :field_1 } . message ) . to eql ( " The owning organisation code is incorrect " )
end
it " blocks log creation " do
parser . valid?
expect ( parser ) . to be_block_log_creation
end
end
@ -1464,12 +1557,14 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_1 : owning_org . old_visible_id , field_2 : owning_org . old_visible_id } }
it " is not permitted as setup error " do
setup_errors = parser . errors . select { | e | e . options [ :category ] == :setup }
parser . valid?
setup_errors = parser . errors . select { | e | e . options [ :category ] == :setup }
expect ( setup_errors . find { | e | e . attribute == :field_1 } . message ) . to eql ( " The owning organisation code provided is for an organisation that does not own stock " )
end
it " blocks log creation " do
parser . valid?
expect ( parser ) . to be_block_log_creation
end
end
@ -1480,12 +1575,14 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_1 : unaffiliated_org . old_visible_id } }
it " is not permitted as setup error " do
setup_errors = parser . errors . select { | e | e . options [ :category ] == :setup }
parser . valid?
setup_errors = parser . errors . select { | e | e . options [ :category ] == :setup }
expect ( setup_errors . find { | e | e . attribute == :field_1 } . message ) . to eql ( " You do not have permission to add logs for this owning organisation " )
end
it " blocks log creation " do
parser . valid?
expect ( parser ) . to be_block_log_creation
end
end
@ -1541,12 +1638,14 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_2 : " " , field_4 : 1 } }
it " is not permitted as setup error " do
setup_errors = parser . errors . select { | e | e . options [ :category ] == :setup }
parser . valid?
setup_errors = parser . errors . select { | e | e . options [ :category ] == :setup }
expect ( setup_errors . find { | e | e . attribute == :field_2 } . message ) . to eql ( " The managing organisation code is incorrect " )
end
it " blocks log creation " do
parser . valid?
expect ( parser ) . to be_block_log_creation
end
end
@ -1555,12 +1654,14 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_2 : " donotexist " } }
it " is not permitted as setup error " do
setup_errors = parser . errors . select { | e | e . options [ :category ] == :setup }
parser . valid?
setup_errors = parser . errors . select { | e | e . options [ :category ] == :setup }
expect ( setup_errors . find { | e | e . attribute == :field_2 } . message ) . to eql ( " The managing organisation code is incorrect " )
end
it " blocks log creation " do
parser . valid?
expect ( parser ) . to be_block_log_creation
end
end
@ -1571,12 +1672,14 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_1 : owning_org . old_visible_id , field_2 : unaffiliated_org . old_visible_id } }
it " is not permitted as setup error " do
setup_errors = parser . errors . select { | e | e . options [ :category ] == :setup }
parser . valid?
setup_errors = parser . errors . select { | e | e . options [ :category ] == :setup }
expect ( setup_errors . find { | e | e . attribute == :field_2 } . message ) . to eql ( " This managing organisation does not have a relationship with the owning organisation " )
end
it " blocks log creation " do
parser . valid?
expect ( parser ) . to be_block_log_creation
end
end
@ -1587,6 +1690,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_4 : nil , field_13 : " 123 " } }
it " is reported as a setup error " do
parser . valid?
expect ( parser . errors . where ( :field_4 , category : :setup ) . map ( & :message ) ) . to eql ( [ " You must answer needs type " ] )
end
end
@ -1597,6 +1701,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { { bulk_upload : , field_1 : owning_org . old_visible_id , field_2 : owning_org . old_visible_id , field_6 : " " } }
it " has setup errors on the field " do
parser . valid?
expect ( parser . errors . where ( :field_6 , category : :setup ) . map ( & :message ) ) . to eql ( [ " You must answer property renewal " ] )
end
end
@ -1605,6 +1710,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { setup_section_params . merge ( { field_6 : " 101 " } ) }
it " adds a setup error " do
parser . valid?
expect ( parser . errors . where ( :field_6 , category : :setup ) . map ( & :message ) ) . to include ( " Enter a valid value for Is this letting a renewal? " )
end
end
@ -1615,6 +1721,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { setup_section_params . merge ( { field_18 : " 1234567890123 " } ) }
it " adds an appropriate error " do
parser . valid?
expect ( parser . errors [ :field_18 ] ) . to eql ( [ " UPRN is not recognised. Check the number, or enter the address " ] )
end
end
@ -1623,6 +1730,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { setup_section_params }
it " adds appropriate errors " do
parser . valid?
expect ( parser . errors [ :field_18 ] ) . to eql ( [ " You must answer UPRN " ] )
expect ( parser . errors [ :field_19 ] ) . to eql ( [ " You must answer address line 1 " ] )
expect ( parser . errors [ :field_21 ] ) . to eql ( [ " You must answer town or city " ] )
@ -1641,6 +1750,8 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
end
it " does not add UPRN errors " do
parser . valid?
expect ( parser . errors [ :field_18 ] ) . to be_empty
expect ( parser . errors [ :field_19 ] ) . to be_empty
expect ( parser . errors [ :field_21 ] ) . to be_empty
@ -1656,6 +1767,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
end
it " doesn't add an error " do
parser . valid?
expect ( parser . errors [ :field_18 ] ) . to be_empty
end
end
@ -1670,6 +1782,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
end
it " doesn't add an error " do
parser . valid?
expect ( parser . errors [ :field_18 ] ) . to be_empty
end
end
@ -1680,6 +1793,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { setup_section_params . merge ( { field_26 : " 4 " } ) }
it " returns an error " do
parser . valid?
expect ( parser . errors [ :field_26 ] ) . to be_present
end
end
@ -1690,10 +1804,12 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { setup_section_params . merge ( { field_30 : nil } ) }
it " returns an error " do
parser . valid?
expect ( parser . errors [ :field_30 ] ) . to be_present
end
it " populates with correct error message " do
parser . valid?
expect ( parser . errors [ :field_30 ] ) . to eql ( [ " You must answer type of building " ] )
end
end
@ -1704,6 +1820,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { setup_section_params . merge ( { field_52 : " " , field_53 : " F " } ) }
it " returns an error " do
parser . valid?
expect ( parser . errors [ :field_52 ] ) . to be_present
end
end
@ -1714,11 +1831,15 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { setup_section_params . merge ( { field_46 : 22 , field_50 : 5 } ) }
it " adds an error to the relevant fields " do
parser . valid?
expect ( parser . errors . where ( :field_46 , category : :soft_validation ) ) . to be_present
expect ( parser . errors . where ( :field_50 , category : :soft_validation ) ) . to be_present
end
it " populates with correct error message " do
parser . valid?
expect ( parser . errors . where ( :field_46 , category : :soft_validation ) . first . message ) . to eql ( " You told us this person is aged 22 years and retired. " )
expect ( parser . errors . where ( :field_50 , category : :soft_validation ) . first . message ) . to eql ( " You told us this person is aged 22 years and retired. " )
end
@ -1728,11 +1849,15 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { setup_section_params . merge ( { field_82 : " 1 " , field_47 : " M " , field_53 : " M " , field_57 : " M " } ) }
it " adds errors to fields that are routed to " do
parser . valid?
expect ( parser . errors . where ( :field_53 , category : :soft_validation ) ) . to be_present
expect ( parser . errors . where ( :field_57 , category : :soft_validation ) ) . to be_present
end
it " does not add errors to fields that are not routed to " do
parser . valid?
expect ( parser . errors . where ( :field_61 , category : :soft_validation ) ) . not_to be_present
expect ( parser . errors . where ( :field_65 , category : :soft_validation ) ) . not_to be_present
end
@ -1742,10 +1867,13 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
let ( :attributes ) { setup_section_params . merge ( { field_128 : 120 , field_126 : 1 , field_32 : 1 , field_4 : 1 , field_5 : " 3 " , field_25 : " E09000008 " } ) }
it " adds an error to the relevant fields " do
parser . valid?
expect ( parser . errors . where ( :field_128 , category : :soft_validation ) ) . to be_present
end
it " populates with correct error message " do
parser . valid?
expect ( parser . errors . where ( :field_128 , category : :soft_validation ) . count ) . to be ( 1 )
expect ( parser . errors . where ( :field_128 , category : :soft_validation ) . first . message ) . to eql ( " You told us the rent is £120.00 every week. This is higher than we would expect. " )
end