From 85e4b98c99ece58351a57f56172a24eb5f5514c4 Mon Sep 17 00:00:00 2001 From: natdeanlewissoftwire Date: Tue, 30 Jan 2024 16:55:07 +0000 Subject: [PATCH] refactor: save lines --- app/models/form/lettings/questions/reason.rb | 272 +++++------------- .../form/lettings/questions/reason_renewal.rb | 48 +--- .../lettings/questions/reason_renewal_spec.rb | 50 +--- .../form/lettings/questions/reason_spec.rb | 272 +++++------------- 4 files changed, 160 insertions(+), 482 deletions(-) diff --git a/app/models/form/lettings/questions/reason.rb b/app/models/form/lettings/questions/reason.rb index 7ad889bf6..a60cc3b3f 100644 --- a/app/models/form/lettings/questions/reason.rb +++ b/app/models/form/lettings/questions/reason.rb @@ -18,213 +18,77 @@ class Form::Lettings::Questions::Reason < ::Form::Question def answer_options if form.start_year_after_2024? { - "50" => { - "value" => "End of social housing tenancy - no fault", - }, - "51" => { - "value" => "End of social housing tenancy - evicted due to anti-social behaviour (ASB)", - }, - "52" => { - "value" => "End of social housing tenancy - evicted due to rent arrears", - }, - "53" => { - "value" => "End of social housing tenancy - evicted for any other reason", - }, - "1" => { - "value" => "Permanently decanted from another property owned by this landlord", - }, - "2" => { - "value" => "Left home country as a refugee", - }, - "45" => { - "value" => "Discharged from prison", - }, - "46" => { - "value" => "Discharged from long-stay hospital or similar institution", - }, - "4" => { - "value" => "Loss of tied accommodation", - }, - "9" => { - "value" => "Asked to leave by family or friends", - }, - "8" => { - "value" => "Relationship breakdown (non-violent) with partner", - }, - "44" => { - "value" => "Death of household member in last settled accommodation", - }, - "16" => { - "value" => "To move nearer to family, friends or school", - }, - "17" => { - "value" => "To move nearer to work", - }, - "48" => { - "value" => "Domestic abuse - previously joint tenancy with partner", - }, - "49" => { - "value" => "Domestic abuse - other", - }, - "10" => { - "value" => "Racial harassment", - }, - "31" => { - "value" => "Hate crime", - }, - "11" => { - "value" => "Other problems with neighbours", - }, - "34" => { - "value" => "Repossession", - }, - "54" => { - "value" => "Could no longer afford rent or mortgage", - }, - "12" => { - "value" => "Property unsuitable because of overcrowding", - }, - "13" => { - "value" => "Property unsuitable because of ill health or disability", - }, - "14" => { - "value" => "Property unsuitable because of poor condition", - }, - "29" => { - "value" => "Under occupation (offered incentive to downsize)", - }, - "30" => { - "value" => "Under occupation (no incentive)", - }, - "18" => { - "value" => "To move to accommodation with support", - }, - "19" => { - "value" => "To move to independent accommodation", - }, - "20" => { - "value" => "Other", - }, - "28" => { - "value" => "Don’t know", - }, - "divider" => { - "value" => true, - }, - "47" => { - "value" => "Tenant prefers not to say", - }, + "50" => { "value" => "End of social housing tenancy - no fault" }, + "51" => { "value" => "End of social housing tenancy - evicted due to anti-social behaviour (ASB)" }, + "52" => { "value" => "End of social housing tenancy - evicted due to rent arrears" }, + "53" => { "value" => "End of social housing tenancy - evicted for any other reason" }, + "1" => { "value" => "Permanently decanted from another property owned by this landlord" }, + "2" => { "value" => "Left home country as a refugee" }, + "45" => { "value" => "Discharged from prison" }, + "46" => { "value" => "Discharged from long-stay hospital or similar institution" }, + "4" => { "value" => "Loss of tied accommodation" }, + "9" => { "value" => "Asked to leave by family or friends" }, + "8" => { "value" => "Relationship breakdown (non-violent) with partner" }, + "44" => { "value" => "Death of household member in last settled accommodation" }, + "16" => { "value" => "To move nearer to family, friends or school" }, + "17" => { "value" => "To move nearer to work" }, + "48" => { "value" => "Domestic abuse - previously joint tenancy with partner" }, + "49" => { "value" => "Domestic abuse - other" }, + "10" => { "value" => "Racial harassment" }, + "31" => { "value" => "Hate crime" }, + "11" => { "value" => "Other problems with neighbours" }, + "34" => { "value" => "Repossession" }, + "54" => { "value" => "Could no longer afford rent or mortgage" }, + "12" => { "value" => "Property unsuitable because of overcrowding" }, + "13" => { "value" => "Property unsuitable because of ill health or disability" }, + "14" => { "value" => "Property unsuitable because of poor condition" }, + "29" => { "value" => "Under occupation (offered incentive to downsize)" }, + "30" => { "value" => "Under occupation (no incentive)" }, + "18" => { "value" => "To move to accommodation with support" }, + "19" => { "value" => "To move to independent accommodation" }, + "20" => { "value" => "Other" }, + "28" => { "value" => "Don’t know" }, + "divider" => { "value" => true }, + "47" => { "value" => "Tenant prefers not to say" }, }.freeze else { - "40" => { - "value" => "End of assured shorthold tenancy (no fault)", - }, - "41" => { - "value" => "End of assured shorthold tenancy (eviction or tenant at fault)", - }, - "42" => { - "value" => "End of fixed term tenancy (no fault)", - }, - "43" => { - "value" => "End of fixed term tenancy (eviction or tenant at fault)", - }, - "1" => { - "value" => "Permanently decanted from another property owned by this landlord", - }, - "46" => { - "value" => "Discharged from long-stay hospital or similar institution", - }, - "45" => { - "value" => "Discharged from prison", - }, - "2" => { - "value" => "Left home country as a refugee", - }, - "4" => { - "value" => "Loss of tied accommodation", - }, - "9" => { - "value" => "Asked to leave by family or friends", - }, - "44" => { - "value" => "Death of household member in last settled accommodation", - }, - "8" => { - "value" => "Relationship breakdown (non-violent) with partner", - }, - "16" => { - "value" => "To move nearer to family, friends or school", - }, - "17" => { - "value" => "To move nearer to work", - }, - "48" => { - "value" => "Domestic abuse - previously joint tenancy with partner", - }, - "49" => { - "value" => "Domestic abuse - other", - }, - "31" => { - "value" => "Hate crime", - }, - "10" => { - "value" => "Racial harassment", - }, - "11" => { - "value" => "Other problems with neighbours", - }, - "35" => { - "value" => "Couldn’t afford fees attached to renewing the tenancy", - }, - "36" => { - "value" => "Couldn’t afford increase in rent", - }, - "38" => { - "value" => "Couldn’t afford rent or mortgage (employment)", - }, - "37" => { - "value" => "Couldn’t afford rent or mortgage (welfare reforms)", - }, - "39" => { - "value" => "Couldn’t afford rent or mortgage (other)", - }, - "34" => { - "value" => "Repossession", - }, - "12" => { - "value" => "Property unsuitable because of overcrowding", - }, - "13" => { - "value" => "Property unsuitable because of ill health or disability", - }, - "14" => { - "value" => "Property unsuitable because of poor condition", - }, - "18" => { - "value" => "To move to accommodation with support", - }, - "19" => { - "value" => "To move to independent accommodation", - }, - "30" => { - "value" => "Under occupation (no incentive)", - }, - "29" => { - "value" => "Under occupation (offered incentive to downsize)", - }, - "20" => { - "value" => "Other", - }, - "47" => { - "value" => "Tenant prefers not to say", - }, - "divider" => { - "value" => true, - }, - "28" => { - "value" => "Don’t know", - }, + "40" => { "value" => "End of assured shorthold tenancy (no fault)" }, + "41" => { "value" => "End of assured shorthold tenancy (eviction or tenant at fault)" }, + "42" => { "value" => "End of fixed term tenancy (no fault)" }, + "43" => { "value" => "End of fixed term tenancy (eviction or tenant at fault)" }, + "1" => { "value" => "Permanently decanted from another property owned by this landlord" }, + "46" => { "value" => "Discharged from long-stay hospital or similar institution" }, + "45" => { "value" => "Discharged from prison" }, + "2" => { "value" => "Left home country as a refugee" }, + "4" => { "value" => "Loss of tied accommodation" }, + "9" => { "value" => "Asked to leave by family or friends" }, + "44" => { "value" => "Death of household member in last settled accommodation" }, + "8" => { "value" => "Relationship breakdown (non-violent) with partner" }, + "16" => { "value" => "To move nearer to family, friends or school" }, + "17" => { "value" => "To move nearer to work" }, + "48" => { "value" => "Domestic abuse - previously joint tenancy with partner" }, + "49" => { "value" => "Domestic abuse - other" }, + "31" => { "value" => "Hate crime" }, + "10" => { "value" => "Racial harassment" }, + "11" => { "value" => "Other problems with neighbours" }, + "35" => { "value" => "Couldn’t afford fees attached to renewing the tenancy" }, + "36" => { "value" => "Couldn’t afford increase in rent" }, + "38" => { "value" => "Couldn’t afford rent or mortgage (employment)" }, + "37" => { "value" => "Couldn’t afford rent or mortgage (welfare reforms)" }, + "39" => { "value" => "Couldn’t afford rent or mortgage (other)" }, + "34" => { "value" => "Repossession" }, + "12" => { "value" => "Property unsuitable because of overcrowding" }, + "13" => { "value" => "Property unsuitable because of ill health or disability" }, + "14" => { "value" => "Property unsuitable because of poor condition" }, + "18" => { "value" => "To move to accommodation with support" }, + "19" => { "value" => "To move to independent accommodation" }, + "30" => { "value" => "Under occupation (no incentive)" }, + "29" => { "value" => "Under occupation (offered incentive to downsize)" }, + "20" => { "value" => "Other" }, + "47" => { "value" => "Tenant prefers not to say" }, + "divider" => { "value" => true }, + "28" => { "value" => "Don’t know" }, }.freeze end end diff --git a/app/models/form/lettings/questions/reason_renewal.rb b/app/models/form/lettings/questions/reason_renewal.rb index f647260f3..526df044c 100644 --- a/app/models/form/lettings/questions/reason_renewal.rb +++ b/app/models/form/lettings/questions/reason_renewal.rb @@ -18,47 +18,23 @@ class Form::Lettings::Questions::ReasonRenewal < ::Form::Question def answer_options if form.start_year_after_2024? { - "50" => { - "value" => "End of social housing tenancy - no fault", - }, - "51" => { - "value" => "End of social housing tenancy - evicted due to anti-social behaviour (ASB)", - }, - "52" => { - "value" => "End of social housing tenancy - evicted due to rent arrears", - }, - "53" => { - "value" => "End of social housing tenancy - evicted for any other reason", - }, - "20" => { - "value" => "Other", - }, - "47" => { - "value" => "Tenant prefers not to say", - }, - "divider" => { - "value" => true, - }, - "28" => { - "value" => "Don’t know", - }, + "50" => { "value" => "End of social housing tenancy - no fault" }, + "51" => { "value" => "End of social housing tenancy - evicted due to anti-social behaviour (ASB)" }, + "52" => { "value" => "End of social housing tenancy - evicted due to rent arrears" }, + "53" => { "value" => "End of social housing tenancy - evicted for any other reason" }, + "20" => { "value" => "Other" }, + "47" => { "value" => "Tenant prefers not to say" }, + "divider" => { "value" => true }, + "28" => { "value" => "Don’t know" }, }.freeze else { "40" => { "value" => "End of assured shorthold tenancy (no fault)" }, "42" => { "value" => "End of fixed term tenancy (no fault)" }, - "20" => { - "value" => "Other", - }, - "47" => { - "value" => "Tenant prefers not to say", - }, - "divider" => { - "value" => true, - }, - "28" => { - "value" => "Don’t know", - }, + "20" => { "value" => "Other" }, + "47" => { "value" => "Tenant prefers not to say" }, + "divider" => { "value" => true }, + "28" => { "value" => "Don’t know" }, }.freeze end end diff --git a/spec/models/form/lettings/questions/reason_renewal_spec.rb b/spec/models/form/lettings/questions/reason_renewal_spec.rb index 13691e09d..f861fc2af 100644 --- a/spec/models/form/lettings/questions/reason_renewal_spec.rb +++ b/spec/models/form/lettings/questions/reason_renewal_spec.rb @@ -56,19 +56,10 @@ RSpec.describe Form::Lettings::Questions::ReasonRenewal, type: :model do expect(question.answer_options).to eq({ "40" => { "value" => "End of assured shorthold tenancy (no fault)" }, "42" => { "value" => "End of fixed term tenancy (no fault)" }, - "20" => { - "value" => "Other", - }, - "47" => { - "value" => "Tenant prefers not to say", - }, - "divider" => { - "value" => true, - }, - "28" => { - "value" => "Don’t know", - }, - + "20" => { "value" => "Other" }, + "47" => { "value" => "Tenant prefers not to say" }, + "divider" => { "value" => true }, + "28" => { "value" => "Don’t know" }, }) end end @@ -80,31 +71,14 @@ RSpec.describe Form::Lettings::Questions::ReasonRenewal, type: :model do it "has the correct answer_options" do expect(question.answer_options).to eq({ - "50" => { - "value" => "End of social housing tenancy - no fault", - }, - "51" => { - "value" => "End of social housing tenancy - evicted due to anti-social behaviour (ASB)", - }, - "52" => { - "value" => "End of social housing tenancy - evicted due to rent arrears", - }, - "53" => { - "value" => "End of social housing tenancy - evicted for any other reason", - }, - "20" => { - "value" => "Other", - }, - "47" => { - "value" => "Tenant prefers not to say", - }, - "divider" => { - "value" => true, - }, - "28" => { - "value" => "Don’t know", - }, - + "50" => { "value" => "End of social housing tenancy - no fault" }, + "51" => { "value" => "End of social housing tenancy - evicted due to anti-social behaviour (ASB)" }, + "52" => { "value" => "End of social housing tenancy - evicted due to rent arrears" }, + "53" => { "value" => "End of social housing tenancy - evicted for any other reason" }, + "20" => { "value" => "Other" }, + "47" => { "value" => "Tenant prefers not to say" }, + "divider" => { "value" => true }, + "28" => { "value" => "Don’t know" }, }) end end diff --git a/spec/models/form/lettings/questions/reason_spec.rb b/spec/models/form/lettings/questions/reason_spec.rb index de2a4d422..4ea1a4a35 100644 --- a/spec/models/form/lettings/questions/reason_spec.rb +++ b/spec/models/form/lettings/questions/reason_spec.rb @@ -54,114 +54,42 @@ RSpec.describe Form::Lettings::Questions::Reason, type: :model do it "has the correct answer_options" do expect(question.answer_options).to eq({ - "40" => { - "value" => "End of assured shorthold tenancy (no fault)", - }, - "41" => { - "value" => "End of assured shorthold tenancy (eviction or tenant at fault)", - }, - "42" => { - "value" => "End of fixed term tenancy (no fault)", - }, - "43" => { - "value" => "End of fixed term tenancy (eviction or tenant at fault)", - }, - "1" => { - "value" => "Permanently decanted from another property owned by this landlord", - }, - "46" => { - "value" => "Discharged from long-stay hospital or similar institution", - }, - "45" => { - "value" => "Discharged from prison", - }, - "2" => { - "value" => "Left home country as a refugee", - }, - "4" => { - "value" => "Loss of tied accommodation", - }, - "9" => { - "value" => "Asked to leave by family or friends", - }, - "44" => { - "value" => "Death of household member in last settled accommodation", - }, - "8" => { - "value" => "Relationship breakdown (non-violent) with partner", - }, - "16" => { - "value" => "To move nearer to family, friends or school", - }, - "17" => { - "value" => "To move nearer to work", - }, - "48" => { - "value" => "Domestic abuse - previously joint tenancy with partner", - }, - "49" => { - "value" => "Domestic abuse - other", - }, - "31" => { - "value" => "Hate crime", - }, - "10" => { - "value" => "Racial harassment", - }, - "11" => { - "value" => "Other problems with neighbours", - }, - "35" => { - "value" => "Couldn’t afford fees attached to renewing the tenancy", - }, - "36" => { - "value" => "Couldn’t afford increase in rent", - }, - "38" => { - "value" => "Couldn’t afford rent or mortgage (employment)", - }, - "37" => { - "value" => "Couldn’t afford rent or mortgage (welfare reforms)", - }, - "39" => { - "value" => "Couldn’t afford rent or mortgage (other)", - }, - "34" => { - "value" => "Repossession", - }, - "12" => { - "value" => "Property unsuitable because of overcrowding", - }, - "13" => { - "value" => "Property unsuitable because of ill health or disability", - }, - "14" => { - "value" => "Property unsuitable because of poor condition", - }, - "18" => { - "value" => "To move to accommodation with support", - }, - "19" => { - "value" => "To move to independent accommodation", - }, - "30" => { - "value" => "Under occupation (no incentive)", - }, - "29" => { - "value" => "Under occupation (offered incentive to downsize)", - }, - "20" => { - "value" => "Other", - }, - "47" => { - "value" => "Tenant prefers not to say", - }, - "divider" => { - "value" => true, - }, - "28" => { - "value" => "Don’t know", - }, + "40" => { "value" => "End of assured shorthold tenancy (no fault)" }, + "41" => { "value" => "End of assured shorthold tenancy (eviction or tenant at fault)" }, + "42" => { "value" => "End of fixed term tenancy (no fault)" }, + "43" => { "value" => "End of fixed term tenancy (eviction or tenant at fault)" }, + "1" => { "value" => "Permanently decanted from another property owned by this landlord" }, + "46" => { "value" => "Discharged from long-stay hospital or similar institution" }, + "45" => { "value" => "Discharged from prison" }, + "2" => { "value" => "Left home country as a refugee" }, + "4" => { "value" => "Loss of tied accommodation" }, + "9" => { "value" => "Asked to leave by family or friends" }, + "44" => { "value" => "Death of household member in last settled accommodation" }, + "8" => { "value" => "Relationship breakdown (non-violent) with partner" }, + "16" => { "value" => "To move nearer to family, friends or school" }, + "17" => { "value" => "To move nearer to work" }, + "48" => { "value" => "Domestic abuse - previously joint tenancy with partner" }, + "49" => { "value" => "Domestic abuse - other" }, + "31" => { "value" => "Hate crime" }, + "10" => { "value" => "Racial harassment" }, + "11" => { "value" => "Other problems with neighbours" }, + "35" => { "value" => "Couldn’t afford fees attached to renewing the tenancy" }, + "36" => { "value" => "Couldn’t afford increase in rent" }, + "38" => { "value" => "Couldn’t afford rent or mortgage (employment)" }, + "37" => { "value" => "Couldn’t afford rent or mortgage (welfare reforms)" }, + "39" => { "value" => "Couldn’t afford rent or mortgage (other)" }, + "34" => { "value" => "Repossession" }, + "12" => { "value" => "Property unsuitable because of overcrowding" }, + "13" => { "value" => "Property unsuitable because of ill health or disability" }, + "14" => { "value" => "Property unsuitable because of poor condition" }, + "18" => { "value" => "To move to accommodation with support" }, + "19" => { "value" => "To move to independent accommodation" }, + "30" => { "value" => "Under occupation (no incentive)" }, + "29" => { "value" => "Under occupation (offered incentive to downsize)" }, + "20" => { "value" => "Other" }, + "47" => { "value" => "Tenant prefers not to say" }, + "divider" => { "value" => true }, + "28" => { "value" => "Don’t know" }, }) end end @@ -177,102 +105,38 @@ RSpec.describe Form::Lettings::Questions::Reason, type: :model do it "has the correct answer_options" do expect(question.answer_options).to eq({ - "50" => { - "value" => "End of social housing tenancy - no fault", - }, - "51" => { - "value" => "End of social housing tenancy - evicted due to anti-social behaviour (ASB)", - }, - "52" => { - "value" => "End of social housing tenancy - evicted due to rent arrears", - }, - "53" => { - "value" => "End of social housing tenancy - evicted for any other reason", - }, - "1" => { - "value" => "Permanently decanted from another property owned by this landlord", - }, - "2" => { - "value" => "Left home country as a refugee", - }, - "45" => { - "value" => "Discharged from prison", - }, - "46" => { - "value" => "Discharged from long-stay hospital or similar institution", - }, - "4" => { - "value" => "Loss of tied accommodation", - }, - "9" => { - "value" => "Asked to leave by family or friends", - }, - "8" => { - "value" => "Relationship breakdown (non-violent) with partner", - }, - "44" => { - "value" => "Death of household member in last settled accommodation", - }, - "16" => { - "value" => "To move nearer to family, friends or school", - }, - "17" => { - "value" => "To move nearer to work", - }, - "48" => { - "value" => "Domestic abuse - previously joint tenancy with partner", - }, - "49" => { - "value" => "Domestic abuse - other", - }, - "10" => { - "value" => "Racial harassment", - }, - "31" => { - "value" => "Hate crime", - }, - "11" => { - "value" => "Other problems with neighbours", - }, - "34" => { - "value" => "Repossession", - }, - "54" => { - "value" => "Could no longer afford rent or mortgage", - }, - "12" => { - "value" => "Property unsuitable because of overcrowding", - }, - "13" => { - "value" => "Property unsuitable because of ill health or disability", - }, - "14" => { - "value" => "Property unsuitable because of poor condition", - }, - "29" => { - "value" => "Under occupation (offered incentive to downsize)", - }, - "30" => { - "value" => "Under occupation (no incentive)", - }, - "18" => { - "value" => "To move to accommodation with support", - }, - "19" => { - "value" => "To move to independent accommodation", - }, - "20" => { - "value" => "Other", - }, - "28" => { - "value" => "Don’t know", - }, - "divider" => { - "value" => true, - }, - "47" => { - "value" => "Tenant prefers not to say", - }, + "50" => { "value" => "End of social housing tenancy - no fault" }, + "51" => { "value" => "End of social housing tenancy - evicted due to anti-social behaviour (ASB)" }, + "52" => { "value" => "End of social housing tenancy - evicted due to rent arrears" }, + "53" => { "value" => "End of social housing tenancy - evicted for any other reason" }, + "1" => { "value" => "Permanently decanted from another property owned by this landlord" }, + "2" => { "value" => "Left home country as a refugee" }, + "45" => { "value" => "Discharged from prison" }, + "46" => { "value" => "Discharged from long-stay hospital or similar institution" }, + "4" => { "value" => "Loss of tied accommodation" }, + "9" => { "value" => "Asked to leave by family or friends" }, + "8" => { "value" => "Relationship breakdown (non-violent) with partner" }, + "44" => { "value" => "Death of household member in last settled accommodation" }, + "16" => { "value" => "To move nearer to family, friends or school" }, + "17" => { "value" => "To move nearer to work" }, + "48" => { "value" => "Domestic abuse - previously joint tenancy with partner" }, + "49" => { "value" => "Domestic abuse - other" }, + "10" => { "value" => "Racial harassment" }, + "31" => { "value" => "Hate crime" }, + "11" => { "value" => "Other problems with neighbours" }, + "34" => { "value" => "Repossession" }, + "54" => { "value" => "Could no longer afford rent or mortgage" }, + "12" => { "value" => "Property unsuitable because of overcrowding" }, + "13" => { "value" => "Property unsuitable because of ill health or disability" }, + "14" => { "value" => "Property unsuitable because of poor condition" }, + "29" => { "value" => "Under occupation (offered incentive to downsize)" }, + "30" => { "value" => "Under occupation (no incentive)" }, + "18" => { "value" => "To move to accommodation with support" }, + "19" => { "value" => "To move to independent accommodation" }, + "20" => { "value" => "Other" }, + "28" => { "value" => "Don’t know" }, + "divider" => { "value" => true }, + "47" => { "value" => "Tenant prefers not to say" }, }) end end