Browse Source

CLDC-1304: Renaming refactor part 2

pull/650/head
Stéphane Meny 3 years ago
parent
commit
01916f93a9
No known key found for this signature in database
GPG Key ID: 9D0AFEA988527923
  1. 2
      app/models/form.rb
  2. 12
      app/models/form/question.rb
  3. 2
      app/models/validations/financial_validations.rb
  4. 8
      app/services/imports/case_logs_field_import_service.rb
  5. 2
      app/services/imports/case_logs_import_service.rb
  6. 4
      spec/features/form/check_answers_page_spec.rb
  7. 8
      spec/features/form/form_navigation_spec.rb
  8. 2
      spec/features/form/saving_data_spec.rb
  9. 2
      spec/features/form/tasklist_page_spec.rb
  10. 5
      spec/fixtures/complete_case_log.json
  11. 4
      spec/fixtures/exports/case_logs.csv
  12. 12
      spec/fixtures/exports/case_logs.xml
  13. 18
      spec/fixtures/forms/2021_2022.json
  14. 2
      spec/fixtures/forms/2022_2023.json
  15. 8
      spec/helpers/tasklist_helper_spec.rb
  16. 6
      spec/models/form/subsection_spec.rb
  17. 2
      spec/models/form_handler_spec.rb
  18. 4
      spec/models/form_spec.rb
  19. 5
      spec/models/validations/financial_validations_spec.rb
  20. 6
      spec/models/validations/local_authority_validations_spec.rb
  21. 24
      spec/requests/case_logs_controller_spec.rb
  22. 10
      spec/requests/form_controller_spec.rb
  23. 2
      spec/requests/organisations_controller_spec.rb
  24. 4
      spec/services/exports/case_log_export_service_spec.rb
  25. 12
      spec/services/imports/case_logs_field_import_service_spec.rb

2
app/models/form.rb

@ -119,7 +119,7 @@ class Form
def invalidated_page_questions(case_log)
# we're already treating address fields as a special case and reset their values upon saving a case_log
address_questions = %w[postcode_known la previous_postcode_known previous_la_known prevloc postcode_full ppostcode_full]
address_questions = %w[postcode_known la ppcodenk previous_la_known prevloc postcode_full ppostcode_full]
invalidated_pages(case_log).flat_map(&:questions).reject { |q| address_questions.include?(q.id) } || []
end

12
app/models/form/question.rb

@ -235,13 +235,13 @@ private
RADIO_YES_VALUE = {
renewal: [1],
postcode_known: [1],
previous_postcode_known: [1],
ppcodenk: [1],
previous_la_known: [1],
first_time_property_let_as_social_housing: [1],
wchair: [1],
majorrepairs: [1],
startertenancy: [0],
shelteredaccom: [0, 1],
sheltered: [0, 1],
armedforces: [1, 4, 5],
leftreg: [0],
reservist: [0],
@ -259,13 +259,13 @@ private
RADIO_NO_VALUE = {
renewal: [0],
postcode_known: [0],
previous_postcode_known: [0],
ppcodenk: [0],
previous_la_known: [0],
first_time_property_let_as_social_housing: [0],
wchair: [0],
majorrepairs: [0],
startertenancy: [1],
shelteredaccom: [2],
sheltered: [2],
armedforces: [2],
leftreg: [1],
reservist: [1],
@ -281,7 +281,7 @@ private
}.freeze
RADIO_DONT_KNOW_VALUE = {
shelteredaccom: [3],
sheltered: [3],
underoccupation_benefitcap: [3],
reasonpref: [3],
hbrentshortfall: [3],
@ -317,7 +317,7 @@ private
ecstat6: [10],
ecstat7: [10],
ecstat8: [10],
shelteredaccom: [3],
sheltered: [3],
armedforces: [3],
leftreg: [3],
reservist: [2],

2
app/models/validations/financial_validations.rb

@ -62,7 +62,7 @@ module Validations::FinancialValidations
cannot_have_outstanding_amount = record.has_hbrentshortfall? &&
(record.benefits_unknown? ||
record.receives_no_benefits? ||
tenant_refuses_to_say_benefits?)
record.tenant_refuses_to_say_benefits?)
end
if cannot_have_outstanding_amount

8
app/services/imports/case_logs_field_import_service.rb

@ -2,7 +2,7 @@ module Imports
class CaseLogsFieldImportService < ImportService
def update_field(field, folder)
case field
when "tenant_code"
when "tenancycode"
import_from(folder, :update_tenant_code)
when "major_repairs"
import_from(folder, :update_major_repairs)
@ -42,10 +42,10 @@ module Imports
if record.present?
tenant_code = string_or_nil(xml_doc, "_2bTenCode")
if tenant_code.present? && record.tenant_code.blank?
record.update!(tenant_code:)
if tenant_code.present? && record.tenancycode.blank?
record.update!(tenancycode: tenant_code)
else
@logger.info("Case Log #{record.id} has a value for tenant_code, skipping update")
@logger.info("Case Log #{record.id} has a value for tenancycode, skipping update")
end
else
@logger.warn("Could not find record matching legacy ID #{old_id}")

2
app/services/imports/case_logs_import_service.rb

@ -111,7 +111,7 @@ module Imports
attributes["prevten"] = unsafe_string_as_integer(xml_doc, "Q11")
attributes["prevloc"] = string_or_nil(xml_doc, "Q12aONS")
attributes["ppostcode_full"] = compose_postcode(xml_doc, "PPOSTC1", "PPOSTC2")
attributes["previous_postcode_known"] = previous_postcode_known(xml_doc, attributes["ppostcode_full"], attributes["prevloc"])
attributes["ppcodenk"] = previous_postcode_known(xml_doc, attributes["ppostcode_full"], attributes["prevloc"])
attributes["layear"] = unsafe_string_as_integer(xml_doc, "Q12c")
attributes["waityear"] = unsafe_string_as_integer(xml_doc, "Q12d")
attributes["homeless"] = unsafe_string_as_integer(xml_doc, "Q13")

4
spec/features/form/check_answers_page_spec.rb

@ -220,13 +220,13 @@ RSpec.describe "Form Check Answers Page" do
it "they can click a button to skip sections until the next incomplete section" do
visit("/logs/#{skip_section_case_log.id}/household-characteristics/check-answers")
click_link("Save and go to next incomplete section")
expect(page).to have_current_path("/logs/#{skip_section_case_log.id}/tenancy-code")
expect(page).to have_current_path("/logs/#{skip_section_case_log.id}/property-information/check-answers")
end
it "they can click a button to cycle around to the next incomplete section" do
visit("/logs/#{cycle_sections_case_log.id}/declaration/check-answers")
click_link("Save and go to next incomplete section")
expect(page).to have_current_path("/logs/#{cycle_sections_case_log.id}/tenant-code")
expect(page).to have_current_path("/logs/#{cycle_sections_case_log.id}/tenancycode")
end
end
end

8
spec/features/form/form_navigation_spec.rb

@ -16,7 +16,7 @@ RSpec.describe "Form Navigation" do
let(:id) { case_log.id }
let(:question_answers) do
{
tenant_code: { type: "text", answer: "BZ737", path: "tenant-code" },
tenancycode: { type: "text", answer: "BZ737", path: "tenancycode" },
age1: { type: "numeric", answer: 25, path: "person-1-age" },
sex1: { type: "radio", answer: "Female", path: "person-1-gender" },
ecstat1: { type: "radio", answer: 3, path: "person-1-working-situation" },
@ -55,17 +55,17 @@ RSpec.describe "Form Navigation" do
describe "Back link directs correctly", js: true do
it "go back to tasklist page from tenant code" do
visit("/logs/#{id}")
visit("/logs/#{id}/tenant-code")
visit("/logs/#{id}/tenancycode")
click_link(text: "Back")
expect(page).to have_content("Log #{id}")
end
it "go back to tenant code page from tenant age page", js: true do
visit("/logs/#{id}/tenant-code")
visit("/logs/#{id}/tenancycode")
click_button("Save and continue")
visit("/logs/#{id}/person-1-age")
click_link(text: "Back")
expect(page).to have_field("case-log-tenant-code-field")
expect(page).to have_field("case-log-tenancycode-field")
end
it "doesn't get stuck in infinite loops", js: true do

2
spec/features/form/saving_data_spec.rb

@ -23,7 +23,7 @@ RSpec.describe "Form Saving Data" do
end
let(:question_answers) do
{
tenant_code: { type: "text", answer: "BZ737", path: "tenant_code" },
tenancycode: { type: "text", answer: "BZ737", path: "tenancycode" },
age1: { type: "numeric", answer: 25, path: "person_1_age" },
sex1: { type: "radio", answer: { "F" => "Female" }, path: "person_1_gender" },
hhmemb: { type: "numeric", answer: 3, path: "household_number_of_members" },

2
spec/features/form/tasklist_page_spec.rb

@ -42,7 +42,7 @@ RSpec.describe "Task List" do
it "shows number of completed sections if one section is completed" do
answer_all_questions_in_income_subsection(empty_case_log)
visit("/logs/#{empty_case_log.id}")
expect(page).to have_content("1 of 9 sections completed.")
expect(page).to have_content("1 of 8 sections completed.")
end
it "show skip link for next incomplete section" do

5
spec/fixtures/complete_case_log.json vendored

@ -1,6 +1,6 @@
{
"case_log": {
"tenant_code": "T657",
"tenancycode": "T657",
"age1": 35,
"sex1": "F",
"ethnic": 0,
@ -44,7 +44,6 @@
"reservist": 0,
"illness": 1,
"preg_occ": 1,
"tenancy_code": "BZ757",
"startdate": "12/12/2021",
"startertenancy": 0,
"tenancylength": 5,
@ -132,7 +131,7 @@
"has_benefits": 1,
"household_charge": 0,
"is_carehome": 1,
"shelteredaccom": 0,
"sheltered": 0,
"declaration": 1,
"referral": 1
}

4
spec/fixtures/exports/case_logs.csv vendored

@ -1,2 +1,2 @@
status,age1,sex1,ethnic,national,prevten,ecstat1,hhmemb,age2,sex2,ecstat2,age3,sex3,ecstat3,age4,sex4,ecstat4,age5,sex5,ecstat5,age6,sex6,ecstat6,age7,sex7,ecstat7,age8,sex8,ecstat8,homeless,underoccupation_benefitcap,leftreg,reservist,illness,preg_occ,startertenancy,tenancylength,tenancy,ppostcode_full,rsnvac,unittype_gn,beds,offered,wchair,earnings,incfreq,benefits,period,layear,waityear,postcode_full,reasonpref,cbl,chr,cap,reasonother,housingneeds_a,housingneeds_b,housingneeds_c,housingneeds_f,housingneeds_g,housingneeds_h,illness_type_1,illness_type_2,illness_type_3,illness_type_4,illness_type_8,illness_type_5,illness_type_6,illness_type_7,illness_type_9,illness_type_10,rp_homeless,rp_insan_unsat,rp_medwel,rp_hardship,rp_dontknow,tenancyother,irproduct_other,reason,propcode,la,prevloc,hb,hbrentshortfall,mrcdate,incref,startdate,armedforces,unitletas,builtype,voiddate,renttype,needstype,lettype,totchild,totelder,totadult,nocharge,referral,brent,scharge,pscharge,supcharg,tcharge,tshortfall,chcharge,has_benefits,renewal,wrent,wscharge,wpschrge,wsupchrg,wtcharge,wtshortfall,refused,housingneeds,wchchrg,newprop,relat2,relat3,relat4,relat5,relat6,relat7,relat8,lar,irproduct,joint,form,owningorgid,owningorgname,hcnum,maningorgid,maningorgname,manhcnum,createddate,uploaddate,tenancycode,ppcodenk,sheltered,hhtype,new_old,vacdays
2,35,F,2,4,6,0,2,32,M,6,,,,,,,,,,,,,,,,,,,1,0,1,0,1,2,0,5,1,SE26RT,6,7,3,2,1,68,1,1,2,2,1,NW15TY,1,1,1,0,,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,,,4,123,E09000003,E07000105,6,1,2020-05-05 10:36:49 UTC,0,2022-02-02 10:36:49 UTC,1,2,1,2019-11-03 00:00:00 UTC,2,1,7,0,0,2,0,,200.0,50.0,40.0,35.0,325.0,12.0,,1,0,100.0,25.0,20.0,17.5,162.5,6.0,0,1,,2,P,,,,,,,,,,{id},{owning_org_id},DLUHC,1234,{managing_org_id},DLUHC,1234,2022-02-08 16:52:15 UTC,2022-02-08 16:52:15 UTC,BZ737,1,0,4,2,638
status,tenancycode,age1,sex1,ethnic,national,prevten,ecstat1,hhmemb,age2,sex2,ecstat2,age3,sex3,ecstat3,age4,sex4,ecstat4,age5,sex5,ecstat5,age6,sex6,ecstat6,age7,sex7,ecstat7,age8,sex8,ecstat8,homeless,underoccupation_benefitcap,leftreg,reservist,illness,preg_occ,startertenancy,tenancylength,tenancy,ppostcode_full,rsnvac,unittype_gn,beds,offered,wchair,earnings,incfreq,benefits,period,layear,waityear,postcode_full,reasonpref,cbl,chr,cap,reasonother,housingneeds_a,housingneeds_b,housingneeds_c,housingneeds_f,housingneeds_g,housingneeds_h,illness_type_1,illness_type_2,illness_type_3,illness_type_4,illness_type_8,illness_type_5,illness_type_6,illness_type_7,illness_type_9,illness_type_10,rp_homeless,rp_insan_unsat,rp_medwel,rp_hardship,rp_dontknow,tenancyother,irproduct_other,reason,propcode,la,prevloc,hb,hbrentshortfall,mrcdate,incref,startdate,armedforces,unitletas,builtype,voiddate,renttype,needstype,lettype,totchild,totelder,totadult,nocharge,referral,brent,scharge,pscharge,supcharg,tcharge,tshortfall,chcharge,ppcodenk,has_benefits,renewal,wrent,wscharge,wpschrge,wsupchrg,wtcharge,wtshortfall,refused,housingneeds,wchchrg,newprop,relat2,relat3,relat4,relat5,relat6,relat7,relat8,lar,irproduct,joint,sheltered,hhtype,new_old,vacdays,form,owningorgid,owningorgname,hcnum,maningorgid,maningorgname,manhcnum,createddate,uploaddate
2,BZ737,35,F,2,4,6,0,2,32,M,6,,,,,,,,,,,,,,,,,,,1,0,1,0,1,2,0,5,1,SE26RT,6,7,3,2,1,68,1,1,2,2,1,NW15TY,1,1,1,0,,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,,,4,123,E09000003,E07000105,6,1,2020-05-05 10:36:49 UTC,0,2022-02-02 10:36:49 UTC,1,2,1,2019-11-03 00:00:00 UTC,2,1,7,0,0,2,0,,200.0,50.0,40.0,35.0,325.0,12.0,,1,1,0,100.0,25.0,20.0,17.5,162.5,6.0,0,1,,2,P,,,,,,,,,,0,4,2,638,{id},{owning_org_id},DLUHC,1234,{managing_org_id},DLUHC,1234,2022-02-08 16:52:15 UTC,2022-02-08 16:52:15 UTC

1 status tenancycode age1 sex1 ethnic national prevten ecstat1 hhmemb age2 sex2 ecstat2 age3 sex3 ecstat3 age4 sex4 ecstat4 age5 sex5 ecstat5 age6 sex6 ecstat6 age7 sex7 ecstat7 age8 sex8 ecstat8 homeless underoccupation_benefitcap leftreg reservist illness preg_occ startertenancy tenancylength tenancy ppostcode_full rsnvac unittype_gn beds offered wchair earnings incfreq benefits period layear waityear postcode_full reasonpref cbl chr cap reasonother housingneeds_a housingneeds_b housingneeds_c housingneeds_f housingneeds_g housingneeds_h illness_type_1 illness_type_2 illness_type_3 illness_type_4 illness_type_8 illness_type_5 illness_type_6 illness_type_7 illness_type_9 illness_type_10 rp_homeless rp_insan_unsat rp_medwel rp_hardship rp_dontknow tenancyother irproduct_other reason propcode la prevloc hb hbrentshortfall mrcdate incref startdate armedforces unitletas builtype voiddate renttype needstype lettype totchild totelder totadult nocharge referral brent scharge pscharge supcharg tcharge tshortfall chcharge ppcodenk has_benefits renewal wrent wscharge wpschrge wsupchrg wtcharge wtshortfall refused housingneeds wchchrg newprop relat2 relat3 relat4 relat5 relat6 relat7 relat8 lar irproduct joint sheltered hhtype new_old vacdays form owningorgid owningorgname hcnum maningorgid maningorgname manhcnum createddate uploaddate
2 2 BZ737 35 F 2 4 6 0 2 32 M 6 1 0 1 0 1 2 0 5 1 SE26RT 6 7 3 2 1 68 1 1 2 2 1 NW15TY 1 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 4 123 E09000003 E07000105 6 1 2020-05-05 10:36:49 UTC 0 2022-02-02 10:36:49 UTC 1 2 1 2019-11-03 00:00:00 UTC 2 1 7 0 0 2 0 200.0 50.0 40.0 35.0 325.0 12.0 1 1 0 100.0 25.0 20.0 17.5 162.5 6.0 0 1 2 P 0 4 2 638 {id} {owning_org_id} DLUHC 1234 {managing_org_id} DLUHC 1234 2022-02-08 16:52:15 UTC 2022-02-08 16:52:15 UTC

12
spec/fixtures/exports/case_logs.xml vendored

@ -2,6 +2,7 @@
<forms>
<form>
<status>2</status>
<tenancycode>BZ737</tenancycode>
<age1>35</age1>
<sex1>F</sex1>
<ethnic>2</ethnic>
@ -108,6 +109,7 @@
<tcharge>325.0</tcharge>
<tshortfall>12.0</tshortfall>
<chcharge/>
<ppcodenk>1</ppcodenk>
<has_benefits>1</has_benefits>
<renewal>0</renewal>
<wrent>100.0</wrent>
@ -129,6 +131,10 @@
<relat8/>
<lar/>
<irproduct/>
<sheltered>0</sheltered>
<hhtype>4</hhtype>
<new_old>2</new_old>
<vacdays>638</vacdays>
<form>{id}</form>
<owningorgid>{owning_org_id}</owningorgid>
<owningorgname>DLUHC</owningorgname>
@ -138,12 +144,6 @@
<manhcnum>1234</manhcnum>
<createddate>2022-02-08 16:52:15 UTC</createddate>
<uploaddate>2022-02-08 16:52:15 UTC</uploaddate>
<tenancycode>BZ737</tenancycode>
<ppcodenk>1</ppcodenk>
<sheltered>0</sheltered>
<hhtype>4</hhtype>
<new_old>2</new_old>
<vacdays>638</vacdays>
<providertype>1</providertype>
</form>
</forms>

18
spec/fixtures/forms/2021_2022.json vendored

@ -10,7 +10,7 @@
"household_characteristics": {
"label": "Household characteristics",
"pages": {
"tenant_code": {
"tenancycode": {
"questions": {
"tenancycode": {
"check_answer_label": "Tenant code",
@ -359,21 +359,6 @@
"tenancy_and_property": {
"label": "Tenancy and property information",
"subsections": {
"tenancy_information": {
"label": "Tenancy information",
"pages": {
"tenancy_code": {
"questions": {
"tenancy_code": {
"check_answer_label": "What is the tenancy code?",
"header": "What is the tenancy code?",
"type": "text",
"width": 10
}
}
}
}
},
"property_information": {
"label": "Property information",
"pages": {
@ -975,7 +960,6 @@
"depends_on": [{
"household_characteristics": "completed",
"household_needs": "completed",
"tenancy_information": "completed",
"property_information": "completed"
}],
"pages": {

2
spec/fixtures/forms/2022_2023.json vendored

@ -85,7 +85,7 @@
"household_characteristics": {
"label": "Household characteristics",
"pages": {
"tenant_code": {
"tenancycode": {
"questions": {
"tenancycode": {
"check_answer_label": "Tenant code",

8
spec/helpers/tasklist_helper_spec.rb

@ -10,14 +10,14 @@ RSpec.describe TasklistHelper do
end
it "returns the first subsection name if it is partially completed" do
case_log["tenant_code"] = 123
case_log["tenancycode"] = 123
expect(get_next_incomplete_section(case_log).id).to eq("household_characteristics")
end
end
describe "get sections count" do
it "returns the total of sections if no status is given" do
expect(get_subsections_count(empty_case_log)).to eq(9)
expect(get_subsections_count(empty_case_log)).to eq(8)
end
it "returns 0 sections for completed sections if no sections are completed" do
@ -25,7 +25,7 @@ RSpec.describe TasklistHelper do
end
it "returns the number of not started sections" do
expect(get_subsections_count(empty_case_log, :not_started)).to eq(8)
expect(get_subsections_count(empty_case_log, :not_started)).to eq(7)
end
it "returns the number of sections in progress" do
@ -45,7 +45,7 @@ RSpec.describe TasklistHelper do
end
it "returns the first question page path for the section if it has not been started yet" do
expect(next_page_or_check_answers(subsection, empty_case_log)).to match(/tenant-code/)
expect(next_page_or_check_answers(subsection, empty_case_log)).to match(/tenancycode/)
end
it "when first question being not routed to returns the second question link" do

6
spec/models/form/subsection_spec.rb

@ -25,12 +25,12 @@ RSpec.describe Form::Subsection, type: :model do
end
it "has pages" do
expected_pages = %w[teanncycode person_1_age person_1_gender person_1_working_situation household_number_of_members person_2_working_situation propcode]
expected_pages = %w[tenancycode person_1_age person_1_gender person_1_working_situation household_number_of_members person_2_working_situation propcode]
expect(subsection.pages.map(&:id)).to eq(expected_pages)
end
it "has questions" do
expected_questions = %w[teanncycode age1 sex1 ecstat1 hhmemb relat2 age2 sex2 ecstat2 propcode]
expected_questions = %w[tenancycode age1 sex1 ecstat1 hhmemb relat2 age2 sex2 ecstat2 propcode]
expect(subsection.questions.map(&:id)).to eq(expected_questions)
end
@ -73,7 +73,7 @@ RSpec.describe Form::Subsection, type: :model do
end
it "has question helpers for the number of applicable questions" do
expected_questions = %w[teanncycode age1 sex1 ecstat1 hhmemb ecstat2 propcode]
expected_questions = %w[tenancycode age1 sex1 ecstat1 hhmemb ecstat2 propcode]
expect(subsection.applicable_questions(case_log).map(&:id)).to eq(expected_questions)
expect(subsection.applicable_questions_count(case_log)).to eq(7)
end

2
spec/models/form_handler_spec.rb

@ -17,7 +17,7 @@ RSpec.describe FormHandler do
form_handler = described_class.instance
form = form_handler.get_form(test_form_name)
expect(form).to be_a(Form)
expect(form.pages.count).to eq(35)
expect(form.pages.count).to eq(34)
end
end

4
spec/models/form_spec.rb

@ -88,7 +88,7 @@ RSpec.describe Form, type: :model do
end
def answer_tenancy_information(case_log)
case_log.tenancy_code = "1234"
case_log.tenancycode = "1234"
end
def answer_property_information(case_log)
@ -148,7 +148,7 @@ RSpec.describe Form, type: :model do
it "returns the first page of the next incomplete subsection (skipping completed subsections)" do
answer_household_needs(case_log)
expect(form.next_incomplete_section_redirect_path(subsection, case_log)).to eq("tenancy-code")
expect(form.next_incomplete_section_redirect_path(subsection, case_log)).to eq("accessible-select-too")
end
it "returns the declaration section for a completed case log" do

5
spec/models/validations/financial_validations_spec.rb

@ -109,6 +109,8 @@ RSpec.describe Validations::FinancialValidations do
end
describe "housing benefit rent shortfall validations" do
before { record.startdate = Time.zone.local(2022, 5, 1) }
context "when shortfall is yes" do
it "validates that housing benefit is not none" do
record.hbrentshortfall = 1
@ -126,7 +128,8 @@ RSpec.describe Validations::FinancialValidations do
.to include(match I18n.t("validations.financial.hbrentshortfall.outstanding_no_benefits"))
end
it "validates that housing benefit is not Universal Credit without housing benefit" do
it "validates that housing benefit is not Universal Credit without housing benefit (prior to 22/23)" do
record.startdate = Time.zone.local(2022, 3, 1)
record.hbrentshortfall = 1
record.hb = 7
financial_validator.validate_tshortfall(record)

6
spec/models/validations/local_authority_validations_spec.rb

@ -14,21 +14,21 @@ RSpec.describe Validations::LocalAuthorityValidations do
end
it "does not add an error if the record ppostcode_full is valid (uppercase space)" do
record.previous_postcode_known = 1
record.ppcodenk = 1
record.ppostcode_full = "M1 1AE"
local_auth_validator.validate_previous_accommodation_postcode(record)
expect(record.errors).to be_empty
end
it "does not add an error if the record ppostcode_full is valid (lowercase no space)" do
record.previous_postcode_known = 1
record.ppcodenk = 1
record.ppostcode_full = "m11ae"
local_auth_validator.validate_previous_accommodation_postcode(record)
expect(record.errors).to be_empty
end
it "does add an error when the postcode is invalid" do
record.previous_postcode_known = 1
record.ppcodenk = 1
record.ppostcode_full = "invalid"
local_auth_validator.validate_previous_accommodation_postcode(record)
expect(record.errors).not_to be_empty

24
spec/requests/case_logs_controller_spec.rb

@ -40,7 +40,7 @@ RSpec.describe CaseLogsController, type: :request do
"owning_organisation_id": owning_organisation.id,
"managing_organisation_id": managing_organisation.id,
"created_by_id": user.id,
"tenant_code": tenant_code,
"tenancycode": tenant_code,
"age1": age1,
"postcode_full": postcode_full,
"offered": offered,
@ -63,7 +63,7 @@ RSpec.describe CaseLogsController, type: :request do
it "creates a case log with the values passed" do
json_response = JSON.parse(response.body)
expect(json_response["tenant_code"]).to eq(tenant_code)
expect(json_response["tenancycode"]).to eq(tenant_code)
expect(json_response["age1"]).to eq(age1)
expect(json_response["postcode_full"]).to eq(postcode_full)
end
@ -338,7 +338,7 @@ RSpec.describe CaseLogsController, type: :request do
end
it "shows case logs matching the tenant code" do
get "/logs?search=#{log_to_search.tenant_code}", headers: headers, params: {}
get "/logs?search=#{log_to_search.tenancycode}", headers: headers, params: {}
expect(page).to have_link(log_to_search.id.to_s)
logs.each do |log|
expect(page).not_to have_link(log.id.to_s)
@ -486,8 +486,8 @@ RSpec.describe CaseLogsController, type: :request do
let(:tenant_code_2) { "TC8745" }
before do
FactoryBot.create(:case_log, :in_progress, owning_organisation: org_1, tenant_code: tenant_code_1)
FactoryBot.create(:case_log, :in_progress, owning_organisation: org_2, tenant_code: tenant_code_2)
FactoryBot.create(:case_log, :in_progress, owning_organisation: org_1, tenancycode: tenant_code_1)
FactoryBot.create(:case_log, :in_progress, owning_organisation: org_2, tenancycode: tenant_code_2)
allow(user).to receive(:need_two_factor_authentication?).and_return(false)
sign_in user
end
@ -622,7 +622,7 @@ RSpec.describe CaseLogsController, type: :request do
end
it "displays a section status for a case log" do
assert_select ".govuk-tag", text: /Not started/, count: 7
assert_select ".govuk-tag", text: /Not started/, count: 6
assert_select ".govuk-tag", text: /In progress/, count: 1
assert_select ".govuk-tag", text: /Completed/, count: 0
assert_select ".govuk-tag", text: /Cannot start yet/, count: 1
@ -645,7 +645,7 @@ RSpec.describe CaseLogsController, type: :request do
end
it "displays a section status for a case log" do
assert_select ".govuk-tag", text: /Not started/, count: 7
assert_select ".govuk-tag", text: /Not started/, count: 6
assert_select ".govuk-tag", text: /Completed/, count: 1
assert_select ".govuk-tag", text: /Cannot start yet/, count: 1
end
@ -751,7 +751,7 @@ RSpec.describe CaseLogsController, type: :request do
expect(csv.second[10]).to eq("Full-time – 30 hours or more")
end
it "dowloads filtered logs" do
it "downloads filtered logs" do
get "/logs?status[]=completed", headers:, params: {}
csv = CSV.parse(response.body)
expect(csv.count).to eq(2)
@ -771,7 +771,7 @@ RSpec.describe CaseLogsController, type: :request do
FactoryBot.create(:case_log, :completed, postcode_full: postcode, owning_organisation: organisation)
end
it "dowloads logs matching both csv and filter logs" do
it "downloads logs matching both csv and filter logs" do
get "/logs?status[]=completed&search=#{postcode}", headers:, params: {}
csv = CSV.parse(response.body)
expect(csv.count).to eq(2)
@ -798,7 +798,7 @@ RSpec.describe CaseLogsController, type: :request do
FactoryBot.create(:case_log, :in_progress, tenancycode: "Old Value", postcode_full: "M1 1AE")
end
let(:params) do
{ tenant_code: "New Value" }
{ tenancycode: "New Value" }
end
let(:id) { case_log.id }
@ -812,7 +812,7 @@ RSpec.describe CaseLogsController, type: :request do
it "updates the case log with the given fields and keeps original values where none are passed" do
case_log.reload
expect(case_log.tenant_code).to eq("New Value")
expect(case_log.tenancycode).to eq("New Value")
expect(case_log.postcode_full).to eq("M11AE")
end
@ -870,7 +870,7 @@ RSpec.describe CaseLogsController, type: :request do
it "updates the case log with the given fields and keeps original values where none are passed" do
case_log.reload
expect(case_log.tenant_code).to eq("New Value")
expect(case_log.tenancycode).to eq("New Value")
expect(case_log.postcode_full).to eq("SW1A2AA")
end

10
spec/requests/form_controller_spec.rb

@ -80,9 +80,9 @@ RSpec.describe FormController, type: :request do
let(:case_log_year_2) { FactoryBot.create(:case_log, :about_completed, startdate: Time.zone.local(2022, 5, 1), owning_organisation: organisation) }
it "displays the correct question details for each case log based on form year" do
get "/logs/#{case_log_year_1.id}/tenant-code", headers: headers, params: {}
get "/logs/#{case_log_year_1.id}/tenancycode", headers: headers, params: {}
expect(response.body).to include("What is the tenant code?")
get "/logs/#{case_log_year_2.id}/tenant-code", headers: headers, params: {}
get "/logs/#{case_log_year_2.id}/tenancycode", headers: headers, params: {}
expect(response.body).to match("Different question header text for this year - 2023")
end
end
@ -275,7 +275,7 @@ RSpec.describe FormController, type: :request do
accessibility_requirements:
%w[ housingneeds_a
housingneeds_f],
tenant_code:,
tenancycode: tenant_code,
},
}
end
@ -295,7 +295,7 @@ RSpec.describe FormController, type: :request do
"housingneeds_h" => "Don’t know" },
}, nil
),
Form::Question.new("tenant_code", { "type" => "text" }, nil),
Form::Question.new("tenancycode", { "type" => "text" }, nil),
]
end
let(:page) { case_log.form.get_page("accessibility_requirements") }
@ -307,7 +307,7 @@ RSpec.describe FormController, type: :request do
expect(case_log.housingneeds_a).to eq(1)
expect(case_log.housingneeds_f).to eq(1)
expect(case_log.tenant_code).to eq(tenant_code)
expect(case_log.tenancycode).to eq(tenant_code)
end
end
end

2
spec/requests/organisations_controller_spec.rb

@ -493,7 +493,7 @@ RSpec.describe OrganisationsController, type: :request do
end
it "shows case logs matching the tenant code" do
get "/organisations/#{organisation.id}/logs?search=#{log_to_search.tenant_code}", headers: headers, params: {}
get "/organisations/#{organisation.id}/logs?search=#{log_to_search.tenancycode}", headers: headers, params: {}
expect(page).to have_link(log_to_search.id.to_s)
logs.each do |log|
expect(page).not_to have_link(log.id.to_s)

4
spec/services/exports/case_log_export_service_spec.rb

@ -47,7 +47,7 @@ RSpec.describe Exports::CaseLogExportService do
end
context "and one case log is available for export" do
let!(:case_log) { FactoryBot.create(:case_log, :completed, tenancy_code: "BZ757", propcode: "123", ppostcode_full: "SE2 6RT", postcode_full: "NW1 5TY", tenant_code: "BZ737") }
let!(:case_log) { FactoryBot.create(:case_log, :completed, propcode: "123", ppostcode_full: "SE2 6RT", postcode_full: "NW1 5TY", tenancycode: "BZ737") }
let(:expected_data_filename) { "core_2021_2022_jan_mar_f0001_inc0001_pt001.xml" }
it "generates a ZIP export file with the expected filename" do
@ -226,7 +226,7 @@ RSpec.describe Exports::CaseLogExportService do
let(:csv_export_file) { File.open("spec/fixtures/exports/case_logs.csv", "r:UTF-8") }
let(:expected_csv_filename) { "export_2022_05_01.csv" }
let(:case_log) { FactoryBot.create(:case_log, :completed, tenancy_code: "BZ757", propcode: "123", ppostcode_full: "SE2 6RT", postcode_full: "NW1 5TY", tenant_code: "BZ737") }
let(:case_log) { FactoryBot.create(:case_log, :completed, propcode: "123", ppostcode_full: "SE2 6RT", postcode_full: "NW1 5TY", tenancycode: "BZ737") }
it "generates an CSV export file with the expected content" do
expected_content = replace_entity_ids(case_log, csv_export_file.read)

12
spec/services/imports/case_logs_field_import_service_spec.rb

@ -41,7 +41,7 @@ RSpec.describe Imports::CaseLogsFieldImportService do
end
context "when updating tenant code" do
let(:field) { "tenant_code" }
let(:field) { "tenancycode" }
context "and the case log was previously imported" do
let(:case_log) { CaseLog.find_by(old_id: case_log_id) }
@ -51,10 +51,10 @@ RSpec.describe Imports::CaseLogsFieldImportService do
case_log_file.rewind
end
it "logs that the tenant_code already has a value and does not update the case_log" do
expect(logger).to receive(:info).with(/Case Log \d+ has a value for tenant_code, skipping update/)
it "logs that the tenancycode already has a value and does not update the case_log" do
expect(logger).to receive(:info).with(/Case Log \d+ has a value for tenancycode, skipping update/)
expect { import_service.send(:update_field, field, remote_folder) }
.not_to(change { case_log.reload.tenant_code })
.not_to(change { case_log.reload.tenancycode })
end
end
@ -64,12 +64,12 @@ RSpec.describe Imports::CaseLogsFieldImportService do
before do
Imports::CaseLogsImportService.new(storage_service, logger).create_logs(fixture_directory)
case_log_file.rewind
case_log.update!(tenant_code: nil)
case_log.update!(tenancycode: nil)
end
it "updates the case_log" do
expect { import_service.send(:update_field, field, remote_folder) }
.to(change { case_log.reload.tenant_code })
.to(change { case_log.reload.tenancycode })
end
end
end

Loading…
Cancel
Save