|
|
|
require "rails_helper"
|
|
|
|
|
|
|
|
RSpec.describe Csv::LettingsLogCsvService do
|
|
|
|
context "when the user is support" do
|
|
|
|
let(:user) { create(:user, :support) }
|
|
|
|
let(:real_2021_2022_form) { Form.new("config/forms/2021_2022.json") }
|
|
|
|
|
|
|
|
before do
|
|
|
|
LettingsLog.create!(startdate: Time.zone.today, created_at: Time.utc(2022, 2, 8, 16, 52, 15))
|
|
|
|
allow(FormHandler.instance).to receive(:get_form).and_return(real_2021_2022_form)
|
|
|
|
end
|
|
|
|
|
|
|
|
it "sets csv attributes in correct order" do
|
|
|
|
expected_csv_attributes = %w[
|
|
|
|
id
|
|
|
|
status
|
|
|
|
created_at
|
|
|
|
updated_at
|
|
|
|
created_by_name
|
|
|
|
is_dpo
|
|
|
|
owning_organisation_name
|
|
|
|
managing_organisation_name
|
|
|
|
collection_start_year
|
|
|
|
needstype
|
|
|
|
renewal
|
|
|
|
startdate
|
|
|
|
rent_type_detail
|
|
|
|
irproduct_other
|
|
|
|
tenancycode
|
|
|
|
propcode
|
|
|
|
postcode_known
|
|
|
|
postcode_full
|
|
|
|
is_la_inferred
|
|
|
|
la_label
|
|
|
|
la
|
|
|
|
first_time_property_let_as_social_housing
|
|
|
|
unitletas
|
|
|
|
rsnvac
|
|
|
|
offered
|
|
|
|
unittype_gn
|
|
|
|
builtype
|
|
|
|
wchair
|
|
|
|
beds
|
|
|
|
voiddate
|
|
|
|
void_date_value_check
|
|
|
|
majorrepairs
|
|
|
|
mrcdate
|
|
|
|
major_repairs_date_value_check
|
|
|
|
startertenancy
|
|
|
|
tenancy
|
|
|
|
tenancyother
|
|
|
|
tenancylength
|
|
|
|
sheltered
|
|
|
|
declaration
|
|
|
|
hhmemb
|
|
|
|
pregnancy_value_check
|
|
|
|
age1_known
|
|
|
|
age1
|
|
|
|
sex1
|
|
|
|
ethnic_group
|
|
|
|
ethnic
|
|
|
|
national
|
|
|
|
ecstat1
|
|
|
|
retirement_value_check
|
|
|
|
details_known_2
|
|
|
|
relat2
|
|
|
|
age2_known
|
|
|
|
age2
|
|
|
|
sex2
|
|
|
|
ecstat2
|
|
|
|
details_known_3
|
|
|
|
relat3
|
|
|
|
age3_known
|
|
|
|
age3
|
|
|
|
sex3
|
|
|
|
ecstat3
|
|
|
|
details_known_4
|
|
|
|
relat4
|
|
|
|
age4_known
|
|
|
|
age4
|
|
|
|
sex4
|
|
|
|
ecstat4
|
|
|
|
details_known_5
|
|
|
|
relat5
|
|
|
|
age5_known
|
|
|
|
age5
|
|
|
|
sex5
|
|
|
|
ecstat5
|
|
|
|
details_known_6
|
|
|
|
relat6
|
|
|
|
age6_known
|
|
|
|
age6
|
|
|
|
sex6
|
|
|
|
ecstat6
|
|
|
|
details_known_7
|
|
|
|
relat7
|
|
|
|
age7_known
|
|
|
|
age7
|
|
|
|
sex7
|
|
|
|
ecstat7
|
|
|
|
details_known_8
|
|
|
|
relat8
|
|
|
|
age8_known
|
|
|
|
age8
|
|
|
|
sex8
|
|
|
|
ecstat8
|
|
|
|
armedforces
|
|
|
|
leftreg
|
|
|
|
reservist
|
|
|
|
preg_occ
|
|
|
|
housingneeds
|
|
|
|
housingneeds_type
|
|
|
|
housingneeds_other
|
|
|
|
illness
|
|
|
|
illness_type_4
|
|
|
|
illness_type_5
|
|
|
|
illness_type_2
|
|
|
|
illness_type_6
|
|
|
|
illness_type_7
|
|
|
|
illness_type_3
|
|
|
|
illness_type_9
|
|
|
|
illness_type_8
|
|
|
|
illness_type_1
|
|
|
|
illness_type_10
|
|
|
|
layear
|
|
|
|
waityear
|
|
|
|
reason
|
|
|
|
reasonother
|
|
|
|
prevten
|
|
|
|
underoccupation_benefitcap
|
|
|
|
homeless
|
|
|
|
ppcodenk
|
|
|
|
ppostcode_full
|
|
|
|
previous_la_known
|
|
|
|
is_previous_la_inferred
|
|
|
|
prevloc_label
|
|
|
|
prevloc
|
|
|
|
reasonpref
|
|
|
|
rp_homeless
|
|
|
|
rp_insan_unsat
|
|
|
|
rp_medwel
|
|
|
|
rp_hardship
|
|
|
|
rp_dontknow
|
|
|
|
cbl
|
|
|
|
cap
|
|
|
|
chr
|
|
|
|
letting_allocation_unknown
|
|
|
|
referral
|
|
|
|
net_income_known
|
|
|
|
earnings
|
|
|
|
incfreq
|
|
|
|
net_income_value_check
|
|
|
|
hb
|
|
|
|
benefits
|
|
|
|
household_charge
|
|
|
|
period
|
|
|
|
is_carehome
|
|
|
|
chcharge
|
|
|
|
carehome_charges_value_check
|
|
|
|
brent
|
|
|
|
scharge
|
|
|
|
pscharge
|
|
|
|
supcharg
|
|
|
|
tcharge
|
|
|
|
rent_value_check
|
|
|
|
hbrentshortfall
|
|
|
|
tshortfall_known
|
|
|
|
tshortfall
|
|
|
|
housingneeds_a
|
|
|
|
housingneeds_b
|
|
|
|
housingneeds_c
|
|
|
|
housingneeds_f
|
|
|
|
housingneeds_g
|
|
|
|
housingneeds_h
|
|
|
|
property_owner_organisation
|
|
|
|
property_manager_organisation
|
|
|
|
purchaser_code
|
|
|
|
property_relet
|
|
|
|
incref
|
|
|
|
renttype
|
|
|
|
lettype
|
|
|
|
totchild
|
|
|
|
totelder
|
|
|
|
totadult
|
|
|
|
nocharge
|
|
|
|
has_benefits
|
|
|
|
wrent
|
|
|
|
wscharge
|
|
|
|
wpschrge
|
|
|
|
wsupchrg
|
|
|
|
wtcharge
|
|
|
|
wtshortfall
|
|
|
|
refused
|
|
|
|
wchchrg
|
|
|
|
newprop
|
|
|
|
old_form_id
|
|
|
|
lar
|
|
|
|
irproduct
|
|
|
|
old_id
|
|
|
|
joint
|
|
|
|
hhtype
|
|
|
|
new_old
|
|
|
|
vacdays
|
|
|
|
unresolved
|
|
|
|
updated_by_id
|
|
|
|
uprn
|
|
|
|
uprn_known
|
|
|
|
uprn_confirmed
|
|
|
|
address_line1
|
|
|
|
address_line2
|
|
|
|
town_or_city
|
|
|
|
county
|
|
|
|
status_cache
|
|
|
|
discarded_at
|
|
|
|
unittype_sh
|
|
|
|
scheme_code
|
|
|
|
scheme_service_name
|
|
|
|
scheme_sensitive
|
|
|
|
scheme_type
|
|
|
|
scheme_registered_under_care_act
|
|
|
|
scheme_owning_organisation_name
|
|
|
|
scheme_primary_client_group
|
|
|
|
scheme_has_other_client_group
|
|
|
|
scheme_secondary_client_group
|
|
|
|
scheme_support_type
|
|
|
|
scheme_intended_stay
|
|
|
|
scheme_created_at
|
|
|
|
location_code
|
|
|
|
location_postcode
|
|
|
|
location_name
|
|
|
|
location_units
|
|
|
|
location_type_of_unit
|
|
|
|
location_mobility_type
|
|
|
|
location_admin_district
|
|
|
|
location_startdate
|
|
|
|
]
|
|
|
|
|
|
|
|
csv = CSV.parse(described_class.new(user, export_type: "labels").to_csv)
|
|
|
|
|
|
|
|
expect(csv.first).to eq(expected_csv_attributes)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
context "when the user is not support" do
|
|
|
|
let(:user) { FactoryBot.create(:user) }
|
|
|
|
let(:real_2021_2022_form) { Form.new("config/forms/2021_2022.json") }
|
|
|
|
|
|
|
|
before do
|
|
|
|
LettingsLog.create!(startdate: Time.zone.today, created_at: Time.utc(2022, 2, 8, 16, 52, 15))
|
|
|
|
allow(FormHandler.instance).to receive(:get_form).and_return(real_2021_2022_form)
|
|
|
|
end
|
|
|
|
|
|
|
|
it "sets csv attributes in correct order and without omitted values" do
|
|
|
|
expected_csv_attributes = %w[
|
|
|
|
id
|
|
|
|
status
|
|
|
|
created_at
|
|
|
|
updated_at
|
|
|
|
created_by_name
|
|
|
|
is_dpo
|
|
|
|
owning_organisation_name
|
|
|
|
managing_organisation_name
|
|
|
|
collection_start_year
|
|
|
|
renewal
|
|
|
|
startdate
|
|
|
|
irproduct_other
|
|
|
|
tenancycode
|
|
|
|
propcode
|
|
|
|
postcode_full
|
|
|
|
la_label
|
|
|
|
unitletas
|
|
|
|
rsnvac
|
|
|
|
offered
|
|
|
|
unittype_gn
|
|
|
|
builtype
|
|
|
|
wchair
|
|
|
|
beds
|
|
|
|
voiddate
|
|
|
|
void_date_value_check
|
|
|
|
majorrepairs
|
|
|
|
mrcdate
|
|
|
|
major_repairs_date_value_check
|
|
|
|
startertenancy
|
|
|
|
tenancy
|
|
|
|
tenancyother
|
|
|
|
tenancylength
|
|
|
|
sheltered
|
|
|
|
declaration
|
|
|
|
age1
|
|
|
|
sex1
|
|
|
|
ethnic_group
|
|
|
|
ethnic
|
|
|
|
national
|
|
|
|
ecstat1
|
|
|
|
relat2
|
|
|
|
age2
|
|
|
|
sex2
|
|
|
|
ecstat2
|
|
|
|
relat3
|
|
|
|
age3
|
|
|
|
sex3
|
|
|
|
ecstat3
|
|
|
|
relat4
|
|
|
|
age4
|
|
|
|
sex4
|
|
|
|
ecstat4
|
|
|
|
relat5
|
|
|
|
age5
|
|
|
|
sex5
|
|
|
|
ecstat5
|
|
|
|
relat6
|
|
|
|
age6
|
|
|
|
sex6
|
|
|
|
ecstat6
|
|
|
|
relat7
|
|
|
|
age7
|
|
|
|
sex7
|
|
|
|
ecstat7
|
|
|
|
relat8
|
|
|
|
age8
|
|
|
|
sex8
|
|
|
|
ecstat8
|
|
|
|
armedforces
|
|
|
|
leftreg
|
|
|
|
reservist
|
|
|
|
preg_occ
|
|
|
|
housingneeds
|
|
|
|
housingneeds_type
|
|
|
|
housingneeds_other
|
|
|
|
illness
|
|
|
|
illness_type_4
|
|
|
|
illness_type_5
|
|
|
|
illness_type_2
|
|
|
|
illness_type_6
|
|
|
|
illness_type_7
|
|
|
|
illness_type_3
|
|
|
|
illness_type_9
|
|
|
|
illness_type_8
|
|
|
|
illness_type_1
|
|
|
|
illness_type_10
|
|
|
|
layear
|
|
|
|
waityear
|
|
|
|
reason
|
|
|
|
reasonother
|
|
|
|
prevten
|
|
|
|
underoccupation_benefitcap
|
|
|
|
homeless
|
|
|
|
ppcodenk
|
|
|
|
ppostcode_full
|
|
|
|
prevloc_label
|
|
|
|
reasonpref
|
|
|
|
rp_homeless
|
|
|
|
rp_insan_unsat
|
|
|
|
rp_medwel
|
|
|
|
rp_hardship
|
|
|
|
rp_dontknow
|
|
|
|
cbl
|
|
|
|
cap
|
|
|
|
chr
|
|
|
|
referral
|
|
|
|
earnings
|
|
|
|
incfreq
|
|
|
|
hb
|
|
|
|
benefits
|
|
|
|
household_charge
|
|
|
|
period
|
|
|
|
chcharge
|
|
|
|
carehome_charges_value_check
|
|
|
|
brent
|
|
|
|
scharge
|
|
|
|
pscharge
|
|
|
|
supcharg
|
|
|
|
tcharge
|
|
|
|
hbrentshortfall
|
|
|
|
tshortfall
|
|
|
|
housingneeds_a
|
|
|
|
housingneeds_b
|
|
|
|
housingneeds_c
|
|
|
|
housingneeds_f
|
|
|
|
housingneeds_g
|
|
|
|
housingneeds_h
|
|
|
|
property_owner_organisation
|
|
|
|
property_manager_organisation
|
|
|
|
purchaser_code
|
|
|
|
property_relet
|
|
|
|
incref
|
|
|
|
lettype
|
|
|
|
nocharge
|
|
|
|
has_benefits
|
|
|
|
refused
|
|
|
|
wchchrg
|
|
|
|
newprop
|
|
|
|
lar
|
|
|
|
irproduct
|
|
|
|
joint
|
|
|
|
uprn
|
|
|
|
uprn_known
|
|
|
|
address_line1
|
|
|
|
address_line2
|
|
|
|
town_or_city
|
|
|
|
county
|
|
|
|
unittype_sh
|
|
|
|
scheme_code
|
|
|
|
scheme_service_name
|
|
|
|
scheme_sensitive
|
|
|
|
scheme_type
|
|
|
|
scheme_registered_under_care_act
|
|
|
|
scheme_owning_organisation_name
|
|
|
|
scheme_primary_client_group
|
|
|
|
scheme_has_other_client_group
|
|
|
|
scheme_secondary_client_group
|
|
|
|
scheme_support_type
|
|
|
|
scheme_intended_stay
|
|
|
|
scheme_created_at
|
|
|
|
location_code
|
|
|
|
location_postcode
|
|
|
|
location_name
|
|
|
|
location_units
|
|
|
|
location_type_of_unit
|
|
|
|
location_mobility_type
|
|
|
|
location_admin_district
|
|
|
|
location_startdate
|
|
|
|
]
|
|
|
|
|
|
|
|
csv = CSV.parse(described_class.new(user, export_type: "labels").to_csv)
|
|
|
|
|
|
|
|
expect(csv.first).to eq(expected_csv_attributes)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|