Browse Source
* Validate API created case logs * Validate record completion * Set complete or in progress status based on field presence validation * Make autogenerated fields a named constant * Test the whole validation * Add some hated code comments to explain some things * Be stricter about the params we allow mass updates onpull/47/head
Daniel Baark
3 years ago
committed by
GitHub
8 changed files with 214 additions and 23 deletions
@ -0,0 +1,9 @@
|
||||
class RemoveRedundantField < ActiveRecord::Migration[6.1] |
||||
def up |
||||
remove_column :case_logs, :prior_homelessness |
||||
end |
||||
|
||||
def down |
||||
add_column :case_logs, :prior_homelessness, :string |
||||
end |
||||
end |
@ -0,0 +1,117 @@
|
||||
{ |
||||
"case_log": |
||||
{ |
||||
"tenant_code": "T657", |
||||
"tenant_age": 35, |
||||
"tenant_gender": "Female", |
||||
"tenant_ethnic_group": "White: English/Scottish/Welsh/Northern Irish/British", |
||||
"tenant_nationality": "UK national resident in UK", |
||||
"previous_housing_situation": "Private sector tenancy", |
||||
"armed_forces": "Yes - a regular", |
||||
"tenant_economic_status": "Full-time - 30 hours or more", |
||||
"household_number_of_other_members": 7, |
||||
"person_2_relationship": "Partner", |
||||
"person_2_age": 32, |
||||
"person_2_gender": "Male", |
||||
"person_2_economic_status": "Not seeking work", |
||||
"person_3_relationship": "Child - includes young adult and grown-up", |
||||
"person_3_age": 12, |
||||
"person_3_gender": "Male", |
||||
"person_3_economic_status": "Child under 16", |
||||
"person_4_relationship": "Child - includes young adult and grown-up", |
||||
"person_4_age": 12, |
||||
"person_4_gender": "Female", |
||||
"person_4_economic_status": "Child under 16", |
||||
"person_5_relationship": "Child - includes young adult and grown-up", |
||||
"person_5_age": 10, |
||||
"person_5_gender": "Non-binary", |
||||
"person_5_economic_status": "Child under 16", |
||||
"person_6_relationship": "Child - includes young adult and grown-up", |
||||
"person_6_age": 5, |
||||
"person_6_gender": "Prefer not to say", |
||||
"person_6_economic_status": "Child under 16", |
||||
"person_7_relationship": "Child - includes young adult and grown-up", |
||||
"person_7_age": 5, |
||||
"person_7_gender": "Prefer not to say", |
||||
"person_7_economic_status": "Child under 16", |
||||
"person_8_relationship": "Child - includes young adult and grown-up", |
||||
"person_8_age": 2, |
||||
"person_8_gender": "Prefer not to say", |
||||
"person_8_economic_status": "Child under 16", |
||||
"homelessness": "No", |
||||
"reason_for_leaving_last_settled_home": "Other problems with neighbours", |
||||
"benefit_cap_spare_room_subsidy": "No", |
||||
"armed_forces_active": "No", |
||||
"armed_forces_injured": "No", |
||||
"armed_forces_partner": "No", |
||||
"medical_conditions": "Yes", |
||||
"pregnancy": "No", |
||||
"accessibility_requirements": "No", |
||||
"condition_effects": "dummy", |
||||
"tenancy_code": "BZ757", |
||||
"tenancy_start_date": "12/03/2019", |
||||
"starter_tenancy": "No", |
||||
"fixed_term_tenancy": "No", |
||||
"tenancy_type": "Fixed term – Secure", |
||||
"letting_type": "Affordable Rent - General Needs", |
||||
"letting_provider": "This landlord", |
||||
"property_location": "Barnet", |
||||
"previous_postcode": "NW1 5TY", |
||||
"property_relet": "No", |
||||
"property_vacancy_reason": "Relet - tenant abandoned property", |
||||
"property_reference": "P9876", |
||||
"property_unit_type": "House", |
||||
"property_building_type": "dummy", |
||||
"property_number_of_bedrooms": 3, |
||||
"property_void_date": "03/11/2019", |
||||
"property_major_repairs": "Yes", |
||||
"property_major_repairs_date": "05/05/2020", |
||||
"property_number_of_times_relet": 2, |
||||
"property_wheelchair_accessible": true, |
||||
"net_income": 1000, |
||||
"net_income_frequency": "Monthly", |
||||
"net_income_uc_proportion": "Some", |
||||
"housing_benefit": "Universal Credit with housing element, but not Housing Benefit", |
||||
"rent_frequency": "Weekly", |
||||
"basic_rent": 200, |
||||
"service_charge": 50, |
||||
"personal_service_charge": 40, |
||||
"support_charge": 35, |
||||
"total_charge": 325, |
||||
"outstanding_amount": "Yes", |
||||
"time_lived_in_la": "1 to 2 years", |
||||
"time_on_la_waiting_list": "Less than 1 year", |
||||
"previous_la": "Ashford", |
||||
"property_postcode": "SE2 6RT", |
||||
"reasonable_preference": "Yes", |
||||
"reasonable_preference_reason": "dummy", |
||||
"cbl_letting": true, |
||||
"chr_letting": false, |
||||
"cap_letting": false, |
||||
"outstanding_rent_or_charges": 25, |
||||
"other_reason_for_leaving_last_settled_home": "Other reason", |
||||
"accessibility_requirements_fully_wheelchair_accessible_housing": true, |
||||
"accessibility_requirements_wheelchair_access_to_essential_rooms": false, |
||||
"accessibility_requirements_level_access_housing": false, |
||||
"accessibility_requirements_other_disability_requirements": false, |
||||
"accessibility_requirements_no_disability_requirements": false, |
||||
"accessibility_requirements_do_not_know": false, |
||||
"accessibility_requirements_prefer_not_to_say": false, |
||||
"condition_effects_vision": false, |
||||
"condition_effects_hearing": true, |
||||
"condition_effects_mobility": false, |
||||
"condition_effects_dexterity": false, |
||||
"condition_effects_stamina": false, |
||||
"condition_effects_learning": false, |
||||
"condition_effects_memory": false, |
||||
"condition_effects_mental_health": false, |
||||
"condition_effects_social_or_behavioral": false, |
||||
"condition_effects_other": false, |
||||
"condition_effects_prefer_not_to_say": false, |
||||
"reasonable_preference_reason_homeless": false, |
||||
"reasonable_preference_reason_unsatisfactory_housing": false, |
||||
"reasonable_preference_reason_medical_grounds": false, |
||||
"reasonable_preference_reason_avoid_hardship": false, |
||||
"reasonable_preference_reason_do_not_know": true |
||||
} |
||||
} |
@ -1,4 +1,17 @@
|
||||
require "rails_helper" |
||||
|
||||
RSpec.describe Form, type: :model do |
||||
describe "#new" do |
||||
it "validates age is a number" do |
||||
expect { CaseLog.create!(tenant_age: "random") }.to raise_error(ActiveRecord::RecordInvalid) |
||||
end |
||||
|
||||
it "validates age is under 120" do |
||||
expect { CaseLog.create!(tenant_age: 121) }.to raise_error(ActiveRecord::RecordInvalid) |
||||
end |
||||
|
||||
it "validates age is over 0" do |
||||
expect { CaseLog.create!(tenant_age: 0) }.to raise_error(ActiveRecord::RecordInvalid) |
||||
end |
||||
end |
||||
end |
||||
|
Loading…
Reference in new issue