From 6493677d618d8d57d4f65075795c0b7e813c3001 Mon Sep 17 00:00:00 2001 From: natdeanlewissoftwire <94526761+natdeanlewissoftwire@users.noreply.github.com> Date: Mon, 11 Mar 2024 14:08:47 +0000 Subject: [PATCH 01/11] CLDC-2575 Allow searches by Log Id to include "log" (#2297) * feat: allow log id searches that include "log" before the id * feat: make filtering case insensitive * refactor: lint --- app/models/lettings_log.rb | 2 +- app/models/sales_log.rb | 2 +- spec/models/lettings_log_spec.rb | 12 +++++++++ spec/models/sales_log_spec.rb | 44 ++++++++++++++++++++++++++++++++ 4 files changed, 58 insertions(+), 2 deletions(-) diff --git a/app/models/lettings_log.rb b/app/models/lettings_log.rb index 5dc998bbb..88bc5a43e 100644 --- a/app/models/lettings_log.rb +++ b/app/models/lettings_log.rb @@ -62,7 +62,7 @@ class LettingsLog < Log .or(filter_by_tenant_code(param)) .or(filter_by_propcode(param)) .or(filter_by_postcode(param)) - .or(filter_by_id(param)) + .or(filter_by_id(param.gsub(/log/i, ""))) } scope :after_date, ->(date) { where("lettings_logs.startdate >= ?", date) } scope :before_date, ->(date) { where("lettings_logs.startdate < ?", date) } diff --git a/app/models/sales_log.rb b/app/models/sales_log.rb index b17956b3a..c22575aa5 100644 --- a/app/models/sales_log.rb +++ b/app/models/sales_log.rb @@ -47,7 +47,7 @@ class SalesLog < Log scope :search_by, lambda { |param| filter_by_purchaser_code(param) .or(filter_by_postcode(param)) - .or(filter_by_id(param)) + .or(filter_by_id(param.gsub(/log/i, ""))) } scope :age1_answered, -> { where.not(age1: nil).or(where(age1_known: [1, 2])) } scope :duplicate_logs, lambda { |log| diff --git a/spec/models/lettings_log_spec.rb b/spec/models/lettings_log_spec.rb index f27a7f7e5..225a25952 100644 --- a/spec/models/lettings_log_spec.rb +++ b/spec/models/lettings_log_spec.rb @@ -2828,6 +2828,18 @@ RSpec.describe LettingsLog do expect(result.first.id).to eq lettings_log_to_search.id end + it "allows searching by id including the word log" do + result = described_class.search_by("log#{lettings_log_to_search.id}") + expect(result.count).to eq(1) + expect(result.first.id).to eq lettings_log_to_search.id + end + + it "allows searching by id including the capitalised word Log" do + result = described_class.search_by("Log#{lettings_log_to_search.id}") + expect(result.count).to eq(1) + expect(result.first.id).to eq lettings_log_to_search.id + end + context "when lettings log is supported housing" do let(:location) { create(:location, postcode: "W6 0ST") } diff --git a/spec/models/sales_log_spec.rb b/spec/models/sales_log_spec.rb index 1ad889e84..18b5dc5e8 100644 --- a/spec/models/sales_log_spec.rb +++ b/spec/models/sales_log_spec.rb @@ -162,6 +162,50 @@ RSpec.describe SalesLog, type: :model do end end + describe "#search_by" do + let!(:sales_log_to_search) { create(:sales_log, :completed) } + + it "allows searching using ID" do + result = described_class.search_by(sales_log_to_search.id.to_s) + expect(result.count).to eq(1) + expect(result.first.id).to eq sales_log_to_search.id + end + + it "allows searching using purchaser code" do + result = described_class.search_by(sales_log_to_search.purchaser_code) + expect(result.count).to eq(1) + expect(result.first.id).to eq sales_log_to_search.id + end + + it "allows searching by a Property Postcode" do + result = described_class.search_by(sales_log_to_search.postcode_full) + expect(result.count).to eq(1) + expect(result.first.id).to eq sales_log_to_search.id + end + + it "allows searching by id including the word log" do + result = described_class.search_by("log#{sales_log_to_search.id}") + expect(result.count).to eq(1) + expect(result.first.id).to eq sales_log_to_search.id + end + + it "allows searching by id including the capitalised word Log" do + result = described_class.search_by("Log#{sales_log_to_search.id}") + expect(result.count).to eq(1) + expect(result.first.id).to eq sales_log_to_search.id + end + + context "when postcode has spaces and lower case letters" do + let(:matching_postcode_lower_case_with_spaces) { sales_log_to_search.postcode_full.downcase.chars.insert(3, " ").join } + + it "allows searching by a Property Postcode" do + result = described_class.search_by(matching_postcode_lower_case_with_spaces) + expect(result.count).to eq(1) + expect(result.first.id).to eq sales_log_to_search.id + end + end + end + context "when filtering by year or nil" do before do Timecop.freeze(Time.utc(2021, 5, 3)) From b4b85489593a0b34ebb34cbec590ea0c4c2f0d48 Mon Sep 17 00:00:00 2001 From: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com> Date: Mon, 11 Mar 2024 16:54:20 +0000 Subject: [PATCH 02/11] Update logs ordering (#2302) --- app/services/filter_manager.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/services/filter_manager.rb b/app/services/filter_manager.rb index 28962f0b6..ef74a5575 100644 --- a/app/services/filter_manager.rb +++ b/app/services/filter_manager.rb @@ -27,7 +27,7 @@ class FilterManager logs = logs.public_send("filter_by_#{category}", values, user) end - logs = logs.order(created_at: :desc) + logs = logs.order(id: :desc) if user.support? if logs.first&.lettings? logs.all.includes(:owning_organisation, :managing_organisation) From 840ca7c9275e86951bdb7083fc930cd3ab15dc43 Mon Sep 17 00:00:00 2001 From: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com> Date: Mon, 11 Mar 2024 17:24:11 +0000 Subject: [PATCH 03/11] Update lettings 24/25 resources (#2303) --- public/files/2024_25_lettings_paper_form.pdf | Bin 314602 -> 314852 bytes ...upload-lettings-specification-2024-25.xlsx | Bin 134384 -> 134580 bytes ...bulk-upload-lettings-template-2024-25.xlsx | Bin 30095 -> 30134 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/public/files/2024_25_lettings_paper_form.pdf b/public/files/2024_25_lettings_paper_form.pdf index 16eb2277f239ba11179494828260d8b889ab0bef..e65e6b52837f93165f410866df6dab0d3263038b 100644 GIT binary patch delta 39530 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 V7?pdb2WN{1-Nzdk*le-I{~wAtMhpM| delta 39243 zcma&NV{|25*EZVe*iJgOI_%h12OV|Hj%}-A+qP{x9ox2T>*T(l=l#z6{WxQsG4|Ls zSIwGpUDvhNnrl~$+PkT!$H}NsiXcqhO8!b9^-5pOT>vqjeDJ9}G$KNc{~X=fgi zm3vLm`@BG(>OHe8qp#K10Pj&6j13FMMm~z|#xh z`Mk!L46Fd}nKHL8QK#_ysVf^Fw?`A1@8E7<2p|gu;n<9H#5d#GRm0z?z|SH61P%Mn z-1c<7?VMSqTKUNMIzBYsMZxhNM`zthm%cn)Rh9xDBjV8zD$ihfV`6Sh2n1_{2wFG> zphDpgJVhonh79xhLc3C#jU8aZrS?o2Ui_!-K+tNT1*LZt#O;nan%$00)xkmkQFq7P zDxt{n>M9}2)mAeRf5Zel$ko0b>MY3#dDluMPTt{e3-mMmJUoc4yCqZ*TV`q=zA78^ zy5}092*m=t{LN#_e}m@jb`)K8)|_RnIxK^7>`wai2oNh%k)wL;n7)2y%$)&1Px^80 z_D=#RIU6m5QUVvopa!p+i3r!-EzRBa*A{Q@Px||7Px_15RM^1&<1w_fhe4$>PM_hE zpVpa_XoN$D$cBv-*@m#P2g}jDY<&5MirTv%p%o`X@s&;&6K#TLCHLh!zc=$Nn!A0x zUy%9WobGc+aUuFbbn^8#q+5yl(;y>7>GewC13mk(4~1(oIpelb zQJX@Uw@PHM!8rOCkzAR#!`ZW7m53hKf!#~ue4aOB{4%W@e*+N05XAyHJg3dG@CaJ* z>jtYpVN$Kl)5Hr3GRG(m3e#oOxWIyrH!0*Mr({+c&mNmzq}71btOz%15D;7LaIuhkhbKl#E#6$mhh%>#{mI5kJSnn3q=G z0O6U}2O7H0*ViK_zHGF9a3P@Q?0^sOaoOl8V9r{Xz);l+2dWeZ%BC7Kfj41kS*%F{ zx0fei)w8mz1mIise9z3>{=!c@t;4oMZ*RXt4|nW_VMaMqGFJ%qkauBmra0WaBADIaZ12CtQmAOFC2B z$?NVq!dUm8E{N6m{**Tmx#?et{Arx9SY)DYx=qECW4K0g>jTW#cD29V7`XP5@1$2e zR&1MFR`uoiuoxHJZrP|o$PoT8Y`6DlHIWhzmYl+wA)w)+?1Q1wNHVX5ab(ZGG-P4aU>U)hl`-cSg&y*F5BIV@BKRkB{$_GaFwHswZVsPmDuRb6HB{W?y#|vV6;)UJwH)_dLr}or;*CssVu0@7j09EO17%v zLA%tM`I4{P@5FFT-0++wEE^D!x~oQ0tmU$4*0Z@4lX^2g0`Q^p zb%2c2dY&--3}HPM*mcI(O`ClP=flyz9+a(^+XM z2T^`ems7GSMml>c{=p1wTkKi7aXV;``pQ&n5Ug$mZQWm2QjBoeG`GT35_wkX6NWPKZXPrKKN2u>68Vs9MCa-i&m(&lTkDMlHE=NVoo?kI-r`cC-sE8l*Sx>Kj z-32^7?`$)vSkt-vni{nNtMWJN0^DtiS#dQ}kwb59LUymIx|6j%ct_p`ZOBJP=mE5} z@hJ#aPR`g(VJ9kKSX`fS%uISV)&A4cKWVyp3cVZa*V<=RRy5!mBTzL)G~oF+4aqFz z3bq;zshQXMHivHZ*_g_g(v!;Ph0yx^^HfBs4Psu~p_{`SRhI<#w^z`qY*=bAhzz^XoBNT@i1m z?^>L=g1$^q;p=vOM%4YI0r3=9ZgTo>F4dWhbGBqK_E3Fis69uBvd(*{=R8UIwN02df5E+2EiwDk2HkhK*%9V z*s^j#tqsWwoG&vrt5V<8v5@rC?!}DMcz?7PDn9$ z7R%tQAye?Ku%*J=ConJn_|<*i#9@Y9ch_Ey*ruE}_8m@chF4tNP;2l;H=Ze~Ch5UR z0W`qxR8M;E7jwff>|DOwo;s4Ti9(`bx;>52Cn&{B9GiRHif%<)?3_?%G z&aixmnWr(Eb*0keskV-5= zI6~x)A0e@r_^03qU1EmGDgy+S;eSj6F()(a9Kr@+htR3-IADZ#?NDGHiIt8A4Ci+a#PW5<3fd!Pykoe5wIl zscb9K`=mB{Ig7kU!~5%yCe(acWUpgnw6gVIGwXm@HDQ{I>##W{)D~v7EQho5-*~tb zdsRFG2Yax0kitA*Cx5?3EIi8@Ly-+@H2yM&Y}eA0`xE|+A8tsJc^)&H;|pkr&o04T zk=oCVaUdNV2eF(ON%NRn7cEA5Lv8i&8)Y5ZU)zhaTDz`jBo!a72GC~AkZW#jeJ*#> z$T)exyNkmm-2Y)S3R{>01l_A7d>xPX+JwO-07*>cx@T^IccgeqI{WxedUF&l7?=XB4miL<5rk&wdV9be*5<+vjI#~8s z)Ek!(P*V_(Q`z+8ulmuKzaUd#RFWhdEVifsG%vQCJ5ADywXyIm1jt-m9f9R2A`E>m zIAsps%P>X$&|EG{CS#|!n(Pj3s%OK95;f^4$Uk9f^NR-03EBQ^n^u+3Pl3imN4J*d zbDuT2jE-2OiJmyln_)yA{S$MHhQwKUIG;7)6~ToykT)O|@hXf>Tj5*%LVU}F7aHRT z1dNd62Tiw}*Rf;G703p9Pn*m*4-T7&Ie@AS@!3RtaS^)XFR2x}lXIr4On>WhkAtYs zou^X@#797rJlc1ca(+Gec#iCRdw=MBc^v`XHa;FtCV*$)!{H?m_z3)PeCZ{y)b@NG z);D)4)vd#8OH1##na~clJh8CBw&n#Y{9usZ^0#%e71Ec!8pzgc!8!5r!Fp(r{shOX z_0qQ;UNqUYBXk|I;Lpc{`$cLWWMEQ)9$mo_H8q(IpF!Zd(O~S98{;_VJ$77lQ__J& zT^f^b-iMS)U%DL_uZWZoD;~ukx7<9+`b%Dz&}_#k~poFIdKsJ%5NVopjS(QfB|(BX70^FJv*-4{Z%qBjO3Bd??9wM?1nV| zyh@w0rgR8(h%OKG&G6Nw zsqCJ|a6d@|k=;g0kHdG?9xy?_7EthX~rsOn2`X)7X-N=rTsHE9(T66cs!b}kK( zXglxZ(jfJC7s|hg#dLV(emUd6c7RBI%0D*mO&ycA$oWI#ow!uNWoZhKx$NVx6VqSg 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 R5H!$uz(_+wM|T?X{{S`g650R& diff --git a/public/files/bulk-upload-lettings-specification-2024-25.xlsx b/public/files/bulk-upload-lettings-specification-2024-25.xlsx index e8f7602bd9297beff672cd9d8d07e0f6e3f0d696..700f72603c30dcd1008de1a32080b06bc1d847f0 100644 GIT binary patch delta 63663 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 Q?;x2Og8%>k delta 64109 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

0CJ|`8H3ldk;hO_uq{1V1`!j$K&tY^%!A?h={ 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 diff --git a/public/files/bulk-upload-lettings-template-2024-25.xlsx b/public/files/bulk-upload-lettings-template-2024-25.xlsx index d5930e8853ad87469ac8fbf9de68dd5c8038a78a..5074d32b24c9eef19c28c8ed799459b5e273b1bd 100644 GIT binary patch delta 15550 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 RtK&bSvnM`uxAVUo{4agFu7Lmm delta 15475 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 Date: Tue, 12 Mar 2024 16:45:20 +0000 Subject: [PATCH 04/11] CLDC-2692: Update breadcrumb usage (#2287) * CLDC-2692: Add breadcrumbs to log question pages * CLDC-2692: Remove final current page breadcrumbs * CLDC-2692: Use Home as the root of all breadcrumbs * CLDC-2692: Use a back link when accessing log question page from duplicate logs * Update tests --- app/helpers/form_page_helper.rb | 8 +++ app/helpers/review_helper.rb | 5 +- app/views/form/check_answers.html.erb | 2 +- app/views/form/page.html.erb | 16 ++++-- app/views/locations/index.html.erb | 2 +- app/views/logs/edit.html.erb | 2 +- app/views/schemes/show.html.erb | 2 +- app/views/users/show.html.erb | 2 +- .../form/accessible_autocomplete_spec.rb | 2 +- spec/features/form/form_navigation_spec.rb | 56 +++++++------------ spec/features/form/page_routing_spec.rb | 2 +- spec/features/lettings_log_spec.rb | 22 +++++--- spec/features/sales_log_spec.rb | 22 +++++--- spec/views/form/page_view_spec.rb | 1 + 14 files changed, 79 insertions(+), 65 deletions(-) diff --git a/app/helpers/form_page_helper.rb b/app/helpers/form_page_helper.rb index 99c5276bc..aefbed1c1 100644 --- a/app/helpers/form_page_helper.rb +++ b/app/helpers/form_page_helper.rb @@ -10,4 +10,12 @@ module FormPageHelper def accessed_from_duplicate_logs?(referrer) %w[duplicate_logs duplicate_logs_banner].include?(referrer) end + + def duplicate_log_set_path(log, original_log_id) + send("#{log.class.name.underscore}_duplicate_logs_path", log, original_log_id:) + end + + def relevant_check_answers_path(log, subsection) + send("#{log.class.name.underscore}_#{subsection.id}_check_answers_path", log) + end end diff --git a/app/helpers/review_helper.rb b/app/helpers/review_helper.rb index e76602a28..87fb691eb 100644 --- a/app/helpers/review_helper.rb +++ b/app/helpers/review_helper.rb @@ -11,17 +11,16 @@ module ReviewHelper end def review_breadcrumbs(log) - class_name = log.class.model_name.human.downcase if log.collection_closed_for_editing? content_for :breadcrumbs, govuk_breadcrumbs(breadcrumbs: { + "Home" => root_path, breadcrumb_logs_title(log, current_user) => breadcrumb_logs_link(log, current_user), - "Log #{log.id}" => "", }) else content_for :breadcrumbs, govuk_breadcrumbs(breadcrumbs: { + "Home" => root_path, breadcrumb_logs_title(log, current_user) => breadcrumb_logs_link(log, current_user), "Log #{log.id}" => url_for(log), - "Review #{class_name}" => "", }) end end diff --git a/app/views/form/check_answers.html.erb b/app/views/form/check_answers.html.erb index 9247f1aab..7c26dd123 100644 --- a/app/views/form/check_answers.html.erb +++ b/app/views/form/check_answers.html.erb @@ -1,8 +1,8 @@ <% content_for :title, "#{subsection.id.humanize} - Check your answers" %> <% content_for :breadcrumbs, govuk_breadcrumbs(breadcrumbs: { + "Home" => root_path, breadcrumb_logs_title(@log, current_user) => breadcrumb_logs_link(@log, current_user), "Log #{@log.id}" => url_for(@log), - subsection.label => "", }) %>

diff --git a/app/views/form/page.html.erb b/app/views/form/page.html.erb index a16c01c89..32ccdaed5 100644 --- a/app/views/form/page.html.erb +++ b/app/views/form/page.html.erb @@ -1,7 +1,15 @@ <% content_for :title, @page.header.presence || @page.questions.first.header.html_safe %> - -<% content_for :before_content do %> - <%= govuk_back_link(href: send(@log.form.previous_page_redirect_path(@page, @log, current_user, params[:referrer]), @log)) %> +<% if accessed_from_duplicate_logs?(request.query_parameters["referrer"]) %> + <% content_for :before_content do %> + <%= govuk_back_link(href: duplicate_log_set_path(@log, request.query_parameters["original_log_id"])) %> + <% end %> +<% else %> + <% content_for :breadcrumbs, govuk_breadcrumbs(breadcrumbs: { + "Home" => root_path, + breadcrumb_logs_title(@log, current_user) => breadcrumb_logs_link(@log, current_user), + "Log #{@log.id}" => url_for(@log), + @subsection.label => relevant_check_answers_path(@log, @subsection), + }) %> <% end %>
@@ -66,7 +74,7 @@ <% if !@page.interruption_screen? %> <% if accessed_from_duplicate_logs?(request.query_parameters["referrer"]) %> <%= f.govuk_submit "Save changes" %> - <%= govuk_link_to "Cancel", send("#{@log.class.name.underscore}_duplicate_logs_path", @log, original_log_id: request.query_parameters["original_log_id"]) %> + <%= govuk_link_to "Cancel", duplicate_log_set_path(@log, request.query_parameters["original_log_id"]) %> <% elsif returning_to_question_page?(@page, request.query_parameters["referrer"]) %> <%= f.govuk_submit "Save changes" %> <%= govuk_link_to "Cancel", send(@log.form.cancel_path(@page, @log), @log) %> diff --git a/app/views/locations/index.html.erb b/app/views/locations/index.html.erb index 1705724bb..88b17321e 100644 --- a/app/views/locations/index.html.erb +++ b/app/views/locations/index.html.erb @@ -4,9 +4,9 @@ <% if current_user.support? %> <% content_for :breadcrumbs, govuk_breadcrumbs(breadcrumbs: { + "Home" => root_path, "Schemes (#{@scheme.owning_organisation.name})" => schemes_organisation_path(@scheme.owning_organisation), content_for(:title) => scheme_path(@scheme), - "Locations" => "", }) %> <% else %> <% content_for :before_content do %> diff --git a/app/views/logs/edit.html.erb b/app/views/logs/edit.html.erb index b4769698b..68bf78e87 100644 --- a/app/views/logs/edit.html.erb +++ b/app/views/logs/edit.html.erb @@ -1,7 +1,7 @@ <% content_for :title, "Log #{@log.id}" %> <% content_for :breadcrumbs, govuk_breadcrumbs(breadcrumbs: { + "Home" => root_path, breadcrumb_logs_title(@log, current_user) => breadcrumb_logs_link(@log, current_user), - content_for(:title) => "", }) %>
diff --git a/app/views/schemes/show.html.erb b/app/views/schemes/show.html.erb index fee4b8a83..c45cefb14 100644 --- a/app/views/schemes/show.html.erb +++ b/app/views/schemes/show.html.erb @@ -3,8 +3,8 @@ <% if current_user.support? %> <% content_for :breadcrumbs, govuk_breadcrumbs(breadcrumbs: { + "Home" => root_path, "Schemes (#{@scheme.owning_organisation.name})" => schemes_organisation_path(@scheme.owning_organisation), - content_for(:title) => "", }) %> <% else %> <% content_for :before_content do %> diff --git a/app/views/users/show.html.erb b/app/views/users/show.html.erb index 895a2fe79..a8f12cd36 100644 --- a/app/views/users/show.html.erb +++ b/app/views/users/show.html.erb @@ -2,8 +2,8 @@ <% if current_user.support? %> <% content_for :breadcrumbs, govuk_breadcrumbs(breadcrumbs: { + "Home" => root_path, "Users (#{@user.organisation.name})" => users_organisation_path(@user.organisation), - content_for(:title) => "", }) %> <% else %> <% content_for :before_content do %> diff --git a/spec/features/form/accessible_autocomplete_spec.rb b/spec/features/form/accessible_autocomplete_spec.rb index 255f95f83..373d0232d 100644 --- a/spec/features/form/accessible_autocomplete_spec.rb +++ b/spec/features/form/accessible_autocomplete_spec.rb @@ -60,7 +60,7 @@ RSpec.describe "Accessible Autocomplete" do it "maintains enhancement state across back navigation", js: true do find("#lettings-log-prevloc-field").click.native.send_keys("T", "h", "a", "n", :down, :enter) click_button("Save and continue") - click_link(text: "Back") + page.go_back expect(page).to have_selector("input", class: "autocomplete__input", count: 1) end end diff --git a/spec/features/form/form_navigation_spec.rb b/spec/features/form/form_navigation_spec.rb index 256b16d74..bb326c76c 100644 --- a/spec/features/form/form_navigation_spec.rb +++ b/spec/features/form/form_navigation_spec.rb @@ -86,41 +86,18 @@ RSpec.describe "Form Navigation" do expect(page).to have_current_path("/lettings-logs/#{empty_lettings_log.id}/household-characteristics/check-answers") end - describe "Back link directs correctly", js: true do - it "go back to tasklist page from tenant code" do - visit("/lettings-logs/#{id}") - visit("/lettings-logs/#{id}/tenant-code-test") - 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("/lettings-logs/#{id}/tenant-code-test") - click_button("Save and continue") - visit("/lettings-logs/#{id}/person-1-age") - click_link(text: "Back") - expect(page).to have_field("lettings-log-tenancycode-field") - end - - it "doesn't get stuck in infinite loops", js: true do - visit("/lettings-logs") - visit("/lettings-logs/#{id}/net-income") - fill_in("lettings-log-earnings-field", with: 740) - choose("lettings-log-incfreq-1-field", allow_label_click: true) - click_button("Save and continue") - click_link(text: "Back") - click_link(text: "Back") - expect(page).to have_current_path("/lettings-logs/#{id}") - end - - context "when changing an answer from the check answers page", js: true do - it "the back button routes correctly" do - visit("/lettings-logs/#{id}/household-characteristics/check-answers") - first("a", text: /Answer/).click - click_link("Back") - expect(page).to have_current_path("/lettings-logs/#{id}/household-characteristics/check-answers") - end - end + it "has correct breadcrumbs" do + visit("/lettings-logs/#{id}/armed-forces") + breadcrumbs = page.find_all(".govuk-breadcrumbs__link") + expect(breadcrumbs.length).to eq 4 + expect(breadcrumbs[0].text).to eq "Home" + expect(breadcrumbs[0][:href]).to eq root_path + expect(breadcrumbs[1].text).to eq "Lettings logs" + expect(breadcrumbs[1][:href]).to eq lettings_logs_path + expect(breadcrumbs[2].text).to eq "Log #{lettings_log.id}" + expect(breadcrumbs[2][:href]).to eq lettings_log_path(lettings_log) + expect(breadcrumbs[3].text).to eq "Household needs" + expect(breadcrumbs[3][:href]).to eq lettings_log_household_needs_check_answers_path(lettings_log) end end @@ -198,5 +175,14 @@ RSpec.describe "Form Navigation" do lettings_log.reload expect(lettings_log.duplicates.count).to eq(1) end + + it "shows back link to duplicate logs page instead of log breadcrumbs" do + expect(lettings_log.duplicates.count).to eq(1) + visit("lettings-logs/#{id}/tenant-code-test?first_remaining_duplicate_id=#{id}&original_log_id=#{id}&referrer=duplicate_logs") + breadcrumbs = page.find_all(".govuk-breadcrumbs__link") + expect(breadcrumbs.length).to eq 0 + click_link(text: "Back") + expect(page).to have_current_path("/lettings-logs/#{id}/duplicate-logs?original_log_id=#{id}") + end end end diff --git a/spec/features/form/page_routing_spec.rb b/spec/features/form/page_routing_spec.rb index e6c821221..7409ff413 100644 --- a/spec/features/form/page_routing_spec.rb +++ b/spec/features/form/page_routing_spec.rb @@ -36,7 +36,7 @@ RSpec.describe "Form Page Routing" do choose("lettings-log-preg-occ-1-field", allow_label_click: true) click_button("Save and continue") expect(page).to have_current_path("/lettings-logs/#{id}/conditional-question-yes-page") - click_link(text: "Back") + page.go_back expect(page).to have_current_path("/lettings-logs/#{id}/conditional-question") choose("lettings-log-preg-occ-2-field", allow_label_click: true) click_button("Save and continue") diff --git a/spec/features/lettings_log_spec.rb b/spec/features/lettings_log_spec.rb index f5aefb6e4..f8740e6f8 100644 --- a/spec/features/lettings_log_spec.rb +++ b/spec/features/lettings_log_spec.rb @@ -157,10 +157,13 @@ RSpec.describe "Lettings Log Features" do it "has the correct breadcrumbs with the correct links" do visit lettings_log_setup_check_answers_path(lettings_log) breadcrumbs = page.find_all(".govuk-breadcrumbs__link") - expect(breadcrumbs.first.text).to eq "Lettings logs (DLUHC)" - expect(breadcrumbs.first[:href]).to eq lettings_logs_organisation_path(lettings_log.owning_organisation) - expect(breadcrumbs[1].text).to eq "Log #{lettings_log.id}" - expect(breadcrumbs[1][:href]).to eq lettings_log_path(lettings_log) + expect(breadcrumbs.length).to eq 3 + expect(breadcrumbs[0].text).to eq "Home" + expect(breadcrumbs[0][:href]).to eq root_path + expect(breadcrumbs[1].text).to eq "Lettings logs (DLUHC)" + expect(breadcrumbs[1][:href]).to eq lettings_logs_organisation_path(lettings_log.owning_organisation) + expect(breadcrumbs[2].text).to eq "Log #{lettings_log.id}" + expect(breadcrumbs[2][:href]).to eq lettings_log_path(lettings_log) end end @@ -170,10 +173,13 @@ RSpec.describe "Lettings Log Features" do it "has the correct breadcrumbs with the correct links" do visit review_lettings_log_path(lettings_log) breadcrumbs = page.find_all(".govuk-breadcrumbs__link") - expect(breadcrumbs.first.text).to eq "Lettings logs (DLUHC)" - expect(breadcrumbs.first[:href]).to eq lettings_logs_organisation_path(lettings_log.owning_organisation) - expect(breadcrumbs[1].text).to eq "Log #{lettings_log.id}" - expect(breadcrumbs[1][:href]).to eq lettings_log_path(lettings_log) + expect(breadcrumbs.length).to eq 3 + expect(breadcrumbs[0].text).to eq "Home" + expect(breadcrumbs[0][:href]).to eq root_path + expect(breadcrumbs[1].text).to eq "Lettings logs (DLUHC)" + expect(breadcrumbs[1][:href]).to eq lettings_logs_organisation_path(lettings_log.owning_organisation) + expect(breadcrumbs[2].text).to eq "Log #{lettings_log.id}" + expect(breadcrumbs[2][:href]).to eq lettings_log_path(lettings_log) end end diff --git a/spec/features/sales_log_spec.rb b/spec/features/sales_log_spec.rb index 83fd2f458..2fa221156 100644 --- a/spec/features/sales_log_spec.rb +++ b/spec/features/sales_log_spec.rb @@ -164,10 +164,13 @@ RSpec.describe "Sales Log Features" do it "has the correct breadcrumbs with the correct links" do visit sales_log_setup_check_answers_path(sales_log.id) breadcrumbs = page.find_all(".govuk-breadcrumbs__link") - expect(breadcrumbs.first.text).to eq "Sales logs (DLUHC)" - expect(breadcrumbs.first[:href]).to eq sales_logs_organisation_path(sales_log.owning_organisation) - expect(breadcrumbs[1].text).to eq "Log #{sales_log.id}" - expect(breadcrumbs[1][:href]).to eq sales_log_path(sales_log.id) + expect(breadcrumbs.length).to eq 3 + expect(breadcrumbs[0].text).to eq "Home" + expect(breadcrumbs[0][:href]).to eq root_path + expect(breadcrumbs[1].text).to eq "Sales logs (DLUHC)" + expect(breadcrumbs[1][:href]).to eq sales_logs_organisation_path(sales_log.owning_organisation) + expect(breadcrumbs[2].text).to eq "Log #{sales_log.id}" + expect(breadcrumbs[2][:href]).to eq sales_log_path(sales_log.id) end end @@ -175,10 +178,13 @@ RSpec.describe "Sales Log Features" do it "has the correct breadcrumbs with the correct links" do visit review_sales_log_path(sales_log.id, sales_log: true) breadcrumbs = page.find_all(".govuk-breadcrumbs__link") - expect(breadcrumbs.first.text).to eq "Sales logs (DLUHC)" - expect(breadcrumbs.first[:href]).to eq sales_logs_organisation_path(sales_log.owning_organisation) - expect(breadcrumbs[1].text).to eq "Log #{sales_log.id}" - expect(breadcrumbs[1][:href]).to eq sales_log_path(sales_log.id) + expect(breadcrumbs.length).to eq 3 + expect(breadcrumbs[0].text).to eq "Home" + expect(breadcrumbs[0][:href]).to eq root_path + expect(breadcrumbs[1].text).to eq "Sales logs (DLUHC)" + expect(breadcrumbs[1][:href]).to eq sales_logs_organisation_path(sales_log.owning_organisation) + expect(breadcrumbs[2].text).to eq "Log #{sales_log.id}" + expect(breadcrumbs[2][:href]).to eq sales_log_path(sales_log.id) end end end diff --git a/spec/views/form/page_view_spec.rb b/spec/views/form/page_view_spec.rb index 614f56562..6664981f9 100644 --- a/spec/views/form/page_view_spec.rb +++ b/spec/views/form/page_view_spec.rb @@ -25,6 +25,7 @@ RSpec.describe "form/page" do end before do + sign_in create(:user) assign(:log, lettings_log) assign(:page, page) assign(:subsection, subsection) From 09fb0bfd11e931e5457cefffcc3b4b887de26124 Mon Sep 17 00:00:00 2001 From: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com> Date: Wed, 13 Mar 2024 08:05:39 +0000 Subject: [PATCH 05/11] Update renewal reason BU validation (#2298) --- .../lettings/year2024/row_parser.rb | 4 +-- config/locales/en.yml | 1 + .../lettings/year2024/row_parser_spec.rb | 28 +++++++++++++++---- 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/app/services/bulk_upload/lettings/year2024/row_parser.rb b/app/services/bulk_upload/lettings/year2024/row_parser.rb index 6ba9ab69a..ba19acb8c 100644 --- a/app/services/bulk_upload/lettings/year2024/row_parser.rb +++ b/app/services/bulk_upload/lettings/year2024/row_parser.rb @@ -672,8 +672,8 @@ private end def validate_leaving_reason_for_renewal - if field_7 == 1 && ![40, 42].include?(field_98) - errors.add(:field_98, I18n.t("validations.household.reason.renewal_reason_needed")) + if field_7 == 1 && ![50, 51, 52, 53].include?(field_98) + errors.add(:field_98, I18n.t("validations.household.reason.renewal_reason_needed_2024")) end end diff --git a/config/locales/en.yml b/config/locales/en.yml index 9238347f8..655723e58 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -544,6 +544,7 @@ en: reason: not_internal_transfer: "Answer cannot be ‘permanently decanted from another property owned by this landlord’ as you told us the source of referral for this tenancy was not an internal transfer" renewal_reason_needed: 'The reason for leaving must be "End of assured shorthold tenancy - no fault" or "End of fixed term tenancy - no fault" if the letting is a renewal' + renewal_reason_needed_2024: 'The reason for leaving must be "End of social housing tenancy - no fault", "End of social housing tenancy - evicted due to anti-social behaviour (ASB)", "End of social housing tenancy - evicted due to rent arrears" or "End of social housing tenancy - evicted for any other reason"' other_not_settled: "Please give the reason for the tenant leaving their last settled home. This is where they were living before they became homeless, were living in temporary accommodation or sleeping rough" condition_effects: no_choices: "You cannot answer this question as you told us nobody in the household has a physical or mental health condition (or other illness) expected to last 12 months or more" diff --git a/spec/services/bulk_upload/lettings/year2024/row_parser_spec.rb b/spec/services/bulk_upload/lettings/year2024/row_parser_spec.rb index 73e639449..7b15d4381 100644 --- a/spec/services/bulk_upload/lettings/year2024/row_parser_spec.rb +++ b/spec/services/bulk_upload/lettings/year2024/row_parser_spec.rb @@ -976,27 +976,43 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do describe "#field_98" do # leaving reason context "when field_7 is 1 meaning it is a renewal" do - context "when field_98 is 40" do - let(:attributes) { { bulk_upload:, field_98: "40", field_7: "1" } } + context "when field_98 is 50" do + let(:attributes) { { bulk_upload:, field_98: "50", field_7: "1" } } it "is permitted" do expect(parser.errors[:field_98]).to be_blank end end - context "when field_98 is 42" do - let(:attributes) { { bulk_upload:, field_98: "42", field_7: "1" } } + context "when field_98 is 51" do + let(:attributes) { { bulk_upload:, field_98: "51", field_7: "1" } } it "is permitted" do expect(parser.errors[:field_98]).to be_blank end end - context "when field_98 is not 40 or 42" do + context "when field_98 is 52" do + let(:attributes) { { bulk_upload:, field_98: "52", field_7: "1" } } + + it "is permitted" do + expect(parser.errors[:field_98]).to be_blank + end + end + + context "when field_98 is 53" do + let(:attributes) { { bulk_upload:, field_98: "53", field_7: "1" } } + + it "is permitted" do + expect(parser.errors[:field_98]).to be_blank + end + end + + context "when field_98 is not 50, 51, 52 or 53" do let(:attributes) { { bulk_upload:, field_98: "1", field_7: "1" } } it "is not permitted" do - expect(parser.errors[:field_98]).to be_present + expect(parser.errors[:field_98]).to include('The reason for leaving must be "End of social housing tenancy - no fault", "End of social housing tenancy - evicted due to anti-social behaviour (ASB)", "End of social housing tenancy - evicted due to rent arrears" or "End of social housing tenancy - evicted for any other reason"') end end end From d1298ff10d30320c8a422b8f91b17bf09830e532 Mon Sep 17 00:00:00 2001 From: Rachael Booth Date: Wed, 13 Mar 2024 09:08:47 +0000 Subject: [PATCH 06/11] CLDC-3278: Restructure tenancy length validations to only error on relevant fields (#2295) * CLDC-3278: Restructure tenancy length validations to only error on relevant fields * Update error messages to reflect when length is allowed to be blank correctly * Don't depend on the rent_type for supported housing * Rename functions for clarity --- app/models/validations/tenancy_validations.rb | 105 +++-- config/locales/en.yml | 10 +- spec/models/lettings_log_spec.rb | 9 +- .../validations/tenancy_validations_spec.rb | 427 +++++++++--------- 4 files changed, 276 insertions(+), 275 deletions(-) diff --git a/app/models/validations/tenancy_validations.rb b/app/models/validations/tenancy_validations.rb index 26cccdd81..bd55203fb 100644 --- a/app/models/validations/tenancy_validations.rb +++ b/app/models/validations/tenancy_validations.rb @@ -3,48 +3,65 @@ module Validations::TenancyValidations # or 'validate_' to run on submit as well include Validations::SharedValidations - def validate_fixed_term_tenancy(record) - is_present = record.tenancylength.present? - is_in_range = record.tenancylength.to_i.between?(min_tenancy_length(record), 99) - rent_type_dependent_conditions = [ - { - condition: (record.is_assured_shorthold_tenancy? && !is_in_range) && is_present, - error: I18n.t( - "validations.tenancy.length.shorthold", - min_tenancy_length: min_tenancy_length(record), - ), - }, - { - condition: (record.is_secure_tenancy? && !is_in_range) && is_present, - error: I18n.t( - "validations.tenancy.length.secure", - min_tenancy_length: min_tenancy_length(record), - ), - }, - { - condition: (record.is_periodic_tenancy? && !is_in_range) && is_present, - error: I18n.t( - "validations.tenancy.length.secure", - min_tenancy_length: min_tenancy_length(record), - ), - }, - ] - rent_type_independent_conditions = [ - { - condition: !(record.is_secure_tenancy? || record.is_assured_shorthold_tenancy? || record.is_periodic_tenancy?) && is_present, - error: I18n.t("validations.tenancy.length.fixed_term_not_required"), - }, - ] - conditions = rent_type_dependent_conditions + rent_type_independent_conditions - - conditions.each do |condition| - next unless condition[:condition] - - record.errors.add :needstype, condition[:error] - record.errors.add :rent_type, condition[:error] if rent_type_dependent_conditions.include?(condition) - record.errors.add :tenancylength, :tenancylength_invalid, message: condition[:error] - record.errors.add :tenancy, condition[:error] - end + def validate_supported_housing_fixed_tenancy_length(record) + return unless record.tenancy_type_fixed_term? && record.is_supported_housing? + return if record.tenancylength.blank? + + min_tenancy_length = 1 + return if record.tenancylength.to_i.between?(min_tenancy_length, 99) + + message = I18n.t("validations.tenancy.length.invalid_fixed", min_tenancy_length:) + record.errors.add :needstype, message + record.errors.add :tenancylength, :tenancylength_invalid, message: message + record.errors.add :tenancy, message + end + + def validate_general_needs_fixed_tenancy_length_affordable_social_rent(record) + return unless record.tenancy_type_fixed_term? && record.affordable_or_social_rent? && record.is_general_needs? + return if record.tenancylength.blank? + + min_tenancy_length = 2 + return if record.tenancylength.to_i.between?(min_tenancy_length, 99) + + message = I18n.t("validations.tenancy.length.invalid_fixed", min_tenancy_length:) + record.errors.add :needstype, message + record.errors.add :rent_type, message + record.errors.add :tenancylength, :tenancylength_invalid, message: message + record.errors.add :tenancy, message + end + + def validate_general_needs_fixed_tenancy_length_intermediate_rent(record) + return unless record.tenancy_type_fixed_term? && !record.affordable_or_social_rent? && record.is_general_needs? + return if record.tenancylength.blank? + + min_tenancy_length = 1 + return if record.tenancylength.to_i.between?(min_tenancy_length, 99) + + message = I18n.t("validations.tenancy.length.invalid_fixed", min_tenancy_length:) + record.errors.add :needstype, message + record.errors.add :rent_type, message + record.errors.add :tenancylength, :tenancylength_invalid, message: message + record.errors.add :tenancy, message + end + + def validate_periodic_tenancy_length(record) + return unless record.is_periodic_tenancy? && record.tenancylength.present? + + min_tenancy_length = 1 + return if record.tenancylength.to_i.between?(min_tenancy_length, 99) + + message = I18n.t("validations.tenancy.length.invalid_periodic", min_tenancy_length:) + record.errors.add :tenancylength, :tenancylength_invalid, message: message + record.errors.add :tenancy, message + end + + def validate_tenancy_length_blank_when_not_required(record) + return if record.tenancylength.blank? + return if record.tenancy_type_fixed_term? || record.is_periodic_tenancy? + + message = I18n.t("validations.tenancy.length.fixed_term_not_required") + record.errors.add :tenancylength, :tenancylength_invalid, message: message + record.errors.add :tenancy, message end def validate_other_tenancy_type(record) @@ -59,8 +76,4 @@ module Validations::TenancyValidations record.errors.add :hhmemb, I18n.t("validations.tenancy.joint_more_than_one_member") end end - - def min_tenancy_length(record) - record.is_supported_housing? || record.renttype == 3 || record.is_periodic_tenancy? ? 1 : 2 - end end diff --git a/config/locales/en.yml b/config/locales/en.yml index 655723e58..f30de4119 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -558,8 +558,8 @@ en: tenancy: length: fixed_term_not_required: "You must only answer the length of the tenancy if it's fixed-term" - shorthold: "Enter a tenancy length between %{min_tenancy_length} and 99 years for a tenancy of this type" - secure: "Enter a tenancy length between %{min_tenancy_length} and 99 years (or don't specify the length) for a tenancy of this type" + invalid_fixed: "Enter a tenancy length between %{min_tenancy_length} and 99 years for a tenancy of this type" + invalid_periodic: "Enter a tenancy length between %{min_tenancy_length} and 99 years (or don't specify the length) for a tenancy of this type" internal_transfer: "Answer must be secure tenancy as this tenancy is an internal transfer" cannot_be_internal_transfer: "Answer cannot be internal transfer as this is not a secure tenancy" not_joint: "This cannot be a joint tenancy as you've told us there's only one person in the household" @@ -691,7 +691,7 @@ Make sure these answers are correct." shared_ownership_deposit: title_text: "You told us that the %{mortgage_deposit_and_discount_error_fields} add up to %{mortgage_deposit_and_discount_total}" old_persons_shared_ownership: - title_text: + title_text: one: "You told us the buyer is using the Older Persons Shared Ownership scheme." two: "You told us the buyers are using the Older Persons Shared Ownership scheme." hint_text: "At least one buyer must be aged 65 years and over to use this scheme." @@ -718,12 +718,12 @@ Make sure these answers are correct." title_text: "You told us that the percentage discount is %{discount}." hint_text: "This is higher than we would expect." savings: - title_text: + title_text: one: "You told us the buyer’s savings were %{savings}." two: "You told us the buyers’ savings were %{savings}." hint_text: "This is higher than we would expect." deposit: - title_text: + title_text: one: "You told us the buyer’s deposit was %{deposit} and their savings were %{savings}." two: "You told us the buyers’ deposit was %{deposit} and their savings were %{savings}." hint_text: "The deposit amount is higher than we would expect for the amount of savings they have." diff --git a/spec/models/lettings_log_spec.rb b/spec/models/lettings_log_spec.rb index 225a25952..d702a3805 100644 --- a/spec/models/lettings_log_spec.rb +++ b/spec/models/lettings_log_spec.rb @@ -112,10 +112,17 @@ RSpec.describe LettingsLog do end it "validates tenancy type" do - expect(validator).to receive(:validate_fixed_term_tenancy) expect(validator).to receive(:validate_other_tenancy_type) end + it "validates tenancy length" do + expect(validator).to receive(:validate_supported_housing_fixed_tenancy_length) + expect(validator).to receive(:validate_general_needs_fixed_tenancy_length_affordable_social_rent) + expect(validator).to receive(:validate_general_needs_fixed_tenancy_length_intermediate_rent) + expect(validator).to receive(:validate_periodic_tenancy_length) + expect(validator).to receive(:validate_tenancy_length_blank_when_not_required) + end + it "validates the previous postcode" do expect(validator).to receive(:validate_previous_accommodation_postcode) end diff --git a/spec/models/validations/tenancy_validations_spec.rb b/spec/models/validations/tenancy_validations_spec.rb index 3d39e1e39..f5ffc05b0 100644 --- a/spec/models/validations/tenancy_validations_spec.rb +++ b/spec/models/validations/tenancy_validations_spec.rb @@ -3,280 +3,272 @@ require "rails_helper" RSpec.describe Validations::TenancyValidations do subject(:tenancy_validator) { validator_class.new } - before do - Timecop.freeze(Time.zone.local(2021, 5, 1)) - end + let(:validator_class) { Class.new { include Validations::TenancyValidations } } - after do - Timecop.unfreeze - end + describe "tenancy length validations" do + let(:record) { FactoryBot.create(:lettings_log, :setup_completed) } - let(:validator_class) { Class.new { include Validations::TenancyValidations } } - let(:record) { FactoryBot.create(:lettings_log, startdate: Time.zone.local(2021, 5, 1), needstype: 1, rent_type: 1) } - - describe "fixed term tenancy validations" do - context "when fixed term tenancy" do - context "when type of tenancy is not assured or assured shorthold" do - let(:expected_error) { I18n.t("validations.tenancy.length.fixed_term_not_required") } - - it "tenancy length should not be present" do - record.tenancy = 3 - record.tenancylength = 10 - tenancy_validator.validate_fixed_term_tenancy(record) - expect(record.errors["needstype"]).to include(match(expected_error)) - expect(record.errors["rent_type"]).not_to include(match(expected_error)) - expect(record.errors["tenancylength"]).to include(match(expected_error)) - expect(record.errors["tenancy"]).to include(match(expected_error)) - end - end + shared_examples "adds expected errors based on the tenancy length" do |tenancy_type_case, error_fields, min_tenancy_length| + context "and tenancy type is #{tenancy_type_case[:name]}" do + let(:expected_error) { tenancy_type_case[:expected_error].call(min_tenancy_length) } - context "when type of tenancy is assured shorthold" do - let(:expected_error) do - I18n.t( - "validations.tenancy.length.shorthold", - min_tenancy_length: 2, - ) - end + before { record.tenancy = tenancy_type_case[:code] } - before { record.tenancy = 4 } + context "and tenancy length is less than #{min_tenancy_length}" do + before { record.tenancylength = min_tenancy_length - 1 } - context "when tenancy length is less than 2" do - it "adds an error" do - record.tenancylength = 1 - tenancy_validator.validate_fixed_term_tenancy(record) - expect(record.errors["needstype"]).to include(match(expected_error)) - expect(record.errors["rent_type"]).to include(match(expected_error)) - expect(record.errors["tenancylength"]).to include(match(expected_error)) - expect(record.errors["tenancy"]).to include(match(expected_error)) + it "adds errors to #{error_fields.join(', ')}" do + validation.call(record) + error_fields.each do |field| + expect(record.errors[field]).to include(match(expected_error)) + end + expect(record.errors.size).to be(error_fields.length) end end - context "when tenancy length is greater than 99" do - it "adds an error" do - record.tenancylength = 100 - tenancy_validator.validate_fixed_term_tenancy(record) - expect(record.errors["needstype"]).to include(match(expected_error)) - expect(record.errors["rent_type"]).to include(match(expected_error)) - expect(record.errors["tenancylength"]).to include(match(expected_error)) - expect(record.errors["tenancy"]).to include(match(expected_error)) + context "and tenancy length is more than 99" do + before { record.tenancylength = 100 } + + it "adds errors to #{error_fields.join(', ')}" do + validation.call(record) + error_fields.each do |field| + expect(record.errors[field]).to include(match(expected_error)) + end + expect(record.errors.size).to be(error_fields.length) end end - context "when tenancy length is between 2-99" do - it "does not add an error" do - record.tenancylength = 3 - tenancy_validator.validate_fixed_term_tenancy(record) + context "and tenancy length is between #{min_tenancy_length} and 99" do + before { record.tenancylength = min_tenancy_length } + + it "does not add errors" do + validation.call(record) expect(record.errors).to be_empty end end - context "when tenancy length has not been answered" do - it "does not add an error" do - record.tenancylength = nil - tenancy_validator.validate_fixed_term_tenancy(record) + context "and tenancy length is not set" do + before { record.tenancylength = nil } + + it "does not add errors" do + validation.call(record) expect(record.errors).to be_empty end end end + end - context "when the collection start year is before 2022" do - context "when type of tenancy is secure" do - let(:expected_error) do - I18n.t( - "validations.tenancy.length.secure", - min_tenancy_length: 2, - ) - end + shared_examples "does not add errors when tenancy type is not fixed term" do + context "and tenancy type is not fixed term" do + before do + record.tenancy = 8 + record.tenancylength = 0 + end + + it "does not add errors" do + validation.call(record) + expect(record.errors).to be_empty + end + end + end - before { record.tenancy = 1 } + fixed_term_tenancy_type_cases = [ + { + name: "assured shorthold", + code: 4, + expected_error: ->(min_tenancy_length) { I18n.t("validations.tenancy.length.invalid_fixed", min_tenancy_length:) }, + }, + { + name: "secure fixed term", + code: 6, + expected_error: ->(min_tenancy_length) { I18n.t("validations.tenancy.length.invalid_fixed", min_tenancy_length:) }, + }, + ] + + describe "#validate_supported_housing_fixed_tenancy_length" do + subject(:validation) { ->(record) { tenancy_validator.validate_supported_housing_fixed_tenancy_length(record) } } + + context "when needs type is supported housing" do + before { record.needstype = 2 } + + error_fields = %w[needstype tenancylength tenancy] + fixed_term_tenancy_type_cases.each do |tenancy_type_case| + include_examples "adds expected errors based on the tenancy length", tenancy_type_case, error_fields, 1 + end - context "when tenancy length is less than 2" do - it "adds an error" do - record.tenancylength = 1 - tenancy_validator.validate_fixed_term_tenancy(record) - expect(record.errors["needstype"]).to include(match(expected_error)) - expect(record.errors["tenancylength"]).to include(match(expected_error)) - expect(record.errors["tenancy"]).to include(match(expected_error)) - end - end + include_examples "does not add errors when tenancy type is not fixed term" + end - context "when tenancy length is greater than 99" do - it "adds an error" do - record.tenancylength = 100 - tenancy_validator.validate_fixed_term_tenancy(record) - expect(record.errors["needstype"]).to include(match(expected_error)) - expect(record.errors["tenancylength"]).to include(match(expected_error)) - expect(record.errors["tenancy"]).to include(match(expected_error)) - end + context "when needs type is general needs" do + before do + record.needstype = 1 + record.tenancy = 4 + record.tenancylength = 0 + end + + it "does not add errors" do + validation.call(record) + expect(record.errors).to be_empty + end + end + end + + describe "#validate_general_needs_fixed_tenancy_length_affordable_social_rent" do + subject(:validation) { ->(record) { tenancy_validator.validate_general_needs_fixed_tenancy_length_affordable_social_rent(record) } } + + context "when needs type is general needs" do + before { record.needstype = 1 } + + context "and rent type is affordable or social rent" do + before { record.renttype = 1 } + + error_fields = %w[needstype rent_type tenancylength tenancy] + fixed_term_tenancy_type_cases.each do |tenancy_type_case| + include_examples "adds expected errors based on the tenancy length", tenancy_type_case, error_fields, 2 end - context "when tenancy length is between 2-99" do - it "does not add an error" do - record.tenancylength = 3 - tenancy_validator.validate_fixed_term_tenancy(record) - expect(record.errors).to be_empty - end + include_examples "does not add errors when tenancy type is not fixed term" + end + + context "and rent type is intermediate rent" do + before do + record.renttype = 3 + record.tenancy = 4 + record.tenancylength = 0 end - context "when tenancy length has not been answered" do - it "does not add an error" do - record.tenancylength = nil - tenancy_validator.validate_fixed_term_tenancy(record) - expect(record.errors).to be_empty - end + it "does not add errors" do + validation.call(record) + expect(record.errors).to be_empty end end end - context "when the collection start year is 2022 or later" do + context "when needs type is supported housing" do before do - Timecop.freeze(2022, 5, 1) + record.needstype = 2 + record.renttype = 1 + record.tenancy = 4 + record.tenancylength = 0 end - after do - Timecop.unfreeze + it "does not add errors" do + validation.call(record) + expect(record.errors).to be_empty end + end + end - let(:record) { FactoryBot.create(:lettings_log, startdate: Time.zone.local(2022, 5, 1), needstype: 1, rent_type: 1) } + describe "#validate_general_needs_fixed_tenancy_length_intermediate_rent" do + subject(:validation) { ->(record) { tenancy_validator.validate_general_needs_fixed_tenancy_length_intermediate_rent(record) } } - context "when type of tenancy is Secure - fixed term" do - let(:expected_error) do - I18n.t( - "validations.tenancy.length.secure", - min_tenancy_length: 2, - ) - end + context "when needs type is general needs" do + before { record.needstype = 1 } - before { record.tenancy = 6 } + context "and rent type is intermediate rent" do + before { record.renttype = 3 } - context "when tenancy length is less than 2" do - it "adds an error" do - record.tenancylength = 1 - tenancy_validator.validate_fixed_term_tenancy(record) - expect(record.errors["needstype"]).to include(match(expected_error)) - expect(record.errors["tenancylength"]).to include(match(expected_error)) - expect(record.errors["tenancy"]).to include(match(expected_error)) - end + error_fields = %w[needstype rent_type tenancylength tenancy] + fixed_term_tenancy_type_cases.each do |tenancy_type_case| + include_examples "adds expected errors based on the tenancy length", tenancy_type_case, error_fields, 1 end - context "when tenancy length is greater than 99" do - it "adds an error" do - record.tenancylength = 100 - tenancy_validator.validate_fixed_term_tenancy(record) - expect(record.errors["needstype"]).to include(match(expected_error)) - expect(record.errors["tenancylength"]).to include(match(expected_error)) - expect(record.errors["tenancy"]).to include(match(expected_error)) - end - end + include_examples "does not add errors when tenancy type is not fixed term" + end - context "when tenancy length is between 2-99" do - it "does not add an error" do - record.tenancylength = 3 - tenancy_validator.validate_fixed_term_tenancy(record) - expect(record.errors).to be_empty - end + context "and rent type is not intermediate rent" do + before do + record.renttype = 2 + record.tenancy = 4 + record.tenancylength = 0 end - context "when tenancy length has not been answered" do - it "does not add an error" do - record.tenancylength = nil - tenancy_validator.validate_fixed_term_tenancy(record) - expect(record.errors).to be_empty - end + it "does not add errors" do + validation.call(record) + expect(record.errors).to be_empty end end + end - context "when type of tenancy is Secure - lifetime" do - let(:expected_error) do - I18n.t( - "validations.tenancy.length.secure", - min_tenancy_length: 2, - ) - end + context "when needs type is supported housing" do + before do + record.needstype = 2 + record.renttype = 3 + record.tenancy = 4 + record.tenancylength = 0 + end - before { record.tenancy = 7 } + it "does not add errors" do + validation.call(record) + expect(record.errors).to be_empty + end + end + end - context "when tenancy length is less than 2" do - it "adds an error" do - record.tenancylength = 1 - tenancy_validator.validate_fixed_term_tenancy(record) - expect(record.errors["needstype"]).to include(match(expected_error)) - expect(record.errors["tenancylength"]).to include(match(expected_error)) - expect(record.errors["tenancy"]).to include(match(expected_error)) - end - end + describe "#validate_periodic_tenancy_length" do + subject(:validation) { ->(record) { tenancy_validator.validate_periodic_tenancy_length(record) } } - context "when tenancy length is greater than 99" do - it "adds an error" do - record.tenancylength = 100 - tenancy_validator.validate_fixed_term_tenancy(record) - expect(record.errors["needstype"]).to include(match(expected_error)) - expect(record.errors["tenancylength"]).to include(match(expected_error)) - expect(record.errors["tenancy"]).to include(match(expected_error)) - end - end + periodic_tenancy_case = { + name: "periodic", + code: 8, + expected_error: ->(min_tenancy_length) { I18n.t("validations.tenancy.length.invalid_periodic", min_tenancy_length:) }, + } + error_fields = %w[tenancylength tenancy] + include_examples "adds expected errors based on the tenancy length", periodic_tenancy_case, error_fields, 1 - context "when tenancy length is between 2-99" do - it "does not add an error" do - record.tenancylength = 3 - tenancy_validator.validate_fixed_term_tenancy(record) - expect(record.errors).to be_empty - end - end + context "when tenancy type is not periodic" do + before do + record.tenancy = 6 + record.tenancylength = 0 + end - context "when tenancy length has not been answered" do - it "does not add an error" do - record.tenancylength = nil - tenancy_validator.validate_fixed_term_tenancy(record) - expect(record.errors).to be_empty - end - end + it "does not add errors" do + validation.call(record) + expect(record.errors).to be_empty end + end - context "when type of tenancy is periodic" do - let(:expected_error) do - I18n.t( - "validations.tenancy.length.secure", - min_tenancy_length: 1, - ) - end + describe "#validate_tenancy_length_blank_when_not_required" do + context "when a tenancy length is provided" do + before { record.tenancylength = 10 } - before { record.tenancy = 8 } + context "and tenancy type is not fixed term or periodic" do + before { record.tenancy = 5 } - context "when tenancy length is less than 1" do - it "adds an error" do - record.tenancylength = 0 - tenancy_validator.validate_fixed_term_tenancy(record) - expect(record.errors["needstype"]).to include(match(expected_error)) - expect(record.errors["tenancylength"]).to include(match(expected_error)) - expect(record.errors["tenancy"]).to include(match(expected_error)) + it "adds errors to tenancylength and tenancy" do + tenancy_validator.validate_tenancy_length_blank_when_not_required(record) + expected_error = I18n.t("validations.tenancy.length.fixed_term_not_required") + expect(record.errors["tenancylength"]).to include(expected_error) + expect(record.errors["tenancy"]).to include(expected_error) end end - context "when tenancy length is greater than 99" do - it "adds an error" do - record.tenancylength = 100 - tenancy_validator.validate_fixed_term_tenancy(record) - expect(record.errors["needstype"]).to include(match(expected_error)) - expect(record.errors["tenancylength"]).to include(match(expected_error)) - expect(record.errors["tenancy"]).to include(match(expected_error)) + tenancy_types_with_length = [ + { name: "assured shorthold", code: 4 }, + { name: "secure fixed term", code: 6 }, + { name: "periodic", code: 8 }, + ] + tenancy_types_with_length.each do |type| + context "and tenancy type is #{type[:name]}" do + before { record.tenancy = type[:code] } + + it "does not add errors" do + tenancy_validator.validate_tenancy_length_blank_when_not_required(record) + expect(record.errors).to be_empty + end end end + end - context "when tenancy length is between 2-99" do - it "does not add an error" do - record.tenancylength = 3 - tenancy_validator.validate_fixed_term_tenancy(record) - expect(record.errors).to be_empty - end + context "when tenancy length is not provided" do + before do + record.tenancylength = nil + record.tenancy = 5 end - context "when tenancy length has not been answered" do - it "does not add an error" do - record.tenancylength = nil - tenancy_validator.validate_fixed_term_tenancy(record) - expect(record.errors).to be_empty - end + it "does not add errors" do + tenancy_validator.validate_tenancy_length_blank_when_not_required(record) + expect(record.errors).to be_empty end end end @@ -284,6 +276,7 @@ RSpec.describe Validations::TenancyValidations do end describe "tenancy type validations" do + let(:record) { FactoryBot.create(:lettings_log, :setup_completed) } let(:field) { "validations.other_field_missing" } let(:main_field_label) { "tenancy type" } let(:other_field) { "tenancyother" } @@ -327,20 +320,11 @@ RSpec.describe Validations::TenancyValidations do describe "joint tenancy validation" do context "when the data inputter has said that there is only one member in the household" do - before do - Timecop.freeze(2022, 5, 1) - end - - after do - Timecop.unfreeze - end - - let(:record) { FactoryBot.create(:lettings_log, startdate: Time.zone.local(2022, 5, 1)) } + let(:record) { FactoryBot.create(:lettings_log, :setup_completed, hhmemb: 1) } let(:expected_error) { I18n.t("validations.tenancy.not_joint") } let(:hhmemb_expected_error) { I18n.t("validations.tenancy.joint_more_than_one_member") } it "displays an error if the data inputter says the letting is a joint tenancy" do - record.hhmemb = 1 record.joint = 1 tenancy_validator.validate_joint_tenancy(record) expect(record.errors["joint"]).to include(match(expected_error)) @@ -348,7 +332,6 @@ RSpec.describe Validations::TenancyValidations do end it "does not display an error if the data inputter says the letting is not a joint tenancy" do - record.hhmemb = 1 record.joint = 2 tenancy_validator.validate_joint_tenancy(record) expect(record.errors["joint"]).to be_empty @@ -356,7 +339,6 @@ RSpec.describe Validations::TenancyValidations do end it "does not display an error if the data inputter has given the household members but not input if it is a joint tenancy" do - record.hhmemb = 1 record.joint = nil tenancy_validator.validate_joint_tenancy(record) expect(record.errors["joint"]).to be_empty @@ -364,7 +346,6 @@ RSpec.describe Validations::TenancyValidations do end it "does not error when don't know answer to joint" do - record.hhmemb = 1 record.joint = 3 tenancy_validator.validate_joint_tenancy(record) From 7c30c3386893cc27abe95e16e203090e818394f6 Mon Sep 17 00:00:00 2001 From: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com> Date: Wed, 13 Mar 2024 09:21:55 +0000 Subject: [PATCH 07/11] CLDC-3283 Validate allocation values (#2294) * Validate allocation values for 2024 * Validate allocation values for 2023 --- .../lettings/year2023/row_parser.rb | 24 +++++++++ .../lettings/year2024/row_parser.rb | 32 +++++++++++ .../lettings/year2023/row_parser_spec.rb | 27 ++++++++++ .../lettings/year2024/row_parser_spec.rb | 54 +++++++++++++++++++ 4 files changed, 137 insertions(+) diff --git a/app/services/bulk_upload/lettings/year2023/row_parser.rb b/app/services/bulk_upload/lettings/year2023/row_parser.rb index 9fda600b5..3c48bc141 100644 --- a/app/services/bulk_upload/lettings/year2023/row_parser.rb +++ b/app/services/bulk_upload/lettings/year2023/row_parser.rb @@ -337,6 +337,30 @@ class BulkUpload::Lettings::Year2023::RowParser }, on: :after_log + validates :field_116, + inclusion: { + in: [1, 2], + message: I18n.t("validations.invalid_option", question: "was the letting made under the Choice-Based Lettings (CBL)"), + if: -> { field_116.present? }, + }, + on: :after_log + + validates :field_117, + inclusion: { + in: [1, 2], + message: I18n.t("validations.invalid_option", question: "was the letting made under the Common Allocation Policy (CAP)"), + if: -> { field_117.present? }, + }, + on: :after_log + + validates :field_118, + inclusion: { + in: [1, 2], + message: I18n.t("validations.invalid_option", question: "was the letting made under the Common Housing Register (CHR)"), + if: -> { field_118.present? }, + }, + on: :after_log + validates :field_46, format: { with: /\A\d{1,3}\z|\AR\z/, message: "Age of person 1 must be a number or the letter R" }, on: :after_log validates :field_52, format: { with: /\A\d{1,3}\z|\AR\z/, message: "Age of person 2 must be a number or the letter R" }, on: :after_log, if: proc { details_known?(2).zero? } validates :field_56, format: { with: /\A\d{1,3}\z|\AR\z/, message: "Age of person 3 must be a number or the letter R" }, on: :after_log, if: proc { details_known?(3).zero? } diff --git a/app/services/bulk_upload/lettings/year2024/row_parser.rb b/app/services/bulk_upload/lettings/year2024/row_parser.rb index ba19acb8c..d2e0d88ca 100644 --- a/app/services/bulk_upload/lettings/year2024/row_parser.rb +++ b/app/services/bulk_upload/lettings/year2024/row_parser.rb @@ -337,6 +337,38 @@ class BulkUpload::Lettings::Year2024::RowParser }, on: :after_log + validates :field_112, + inclusion: { + in: [1, 2], + message: I18n.t("validations.invalid_option", question: "was the letting made under the Choice-Based Lettings (CBL)"), + if: -> { field_112.present? }, + }, + on: :after_log + + validates :field_113, + inclusion: { + in: [1, 2], + message: I18n.t("validations.invalid_option", question: "was the letting made under the Common Allocation Policy (CAP)"), + if: -> { field_113.present? }, + }, + on: :after_log + + validates :field_114, + inclusion: { + in: [1, 2], + message: I18n.t("validations.invalid_option", question: "was the letting made under the Common Housing Register (CHR)"), + if: -> { field_114.present? }, + }, + on: :after_log + + validates :field_115, + inclusion: { + in: [1, 2], + message: I18n.t("validations.invalid_option", question: "was the letting made under the Accessible Register"), + if: -> { field_115.present? }, + }, + on: :after_log + validates :field_42, format: { with: /\A\d{1,3}\z|\AR\z/, message: "Age of person 1 must be a number or the letter R" }, on: :after_log validates :field_48, format: { with: /\A\d{1,3}\z|\AR\z/, message: "Age of person 2 must be a number or the letter R" }, on: :after_log, if: proc { details_known?(2).zero? } validates :field_52, format: { with: /\A\d{1,3}\z|\AR\z/, message: "Age of person 3 must be a number or the letter R" }, on: :after_log, if: proc { details_known?(3).zero? } diff --git a/spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb b/spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb index 7435a3d74..a5dd076aa 100644 --- a/spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb +++ b/spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb @@ -1997,6 +1997,15 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do expect(parser.log.cbl).to be(0) end end + + context "when field_116 is not a permitted value" do + let(:attributes) { { bulk_upload:, field_116: 3 } } + + it "adds an error" do + parser.valid? + expect(parser.errors[:field_116]).to include("Enter a valid value for was the letting made under the Choice-Based Lettings (CBL)") + end + end end describe "#chr" do @@ -2015,6 +2024,15 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do expect(parser.log.chr).to be(0) end end + + context "when field_118 is not a permitted value" do + let(:attributes) { { bulk_upload:, field_118: 3 } } + + it "adds an error" do + parser.valid? + expect(parser.errors[:field_118]).to include("Enter a valid value for was the letting made under the Common Housing Register (CHR)") + end + end end describe "#cap" do @@ -2033,6 +2051,15 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do expect(parser.log.cap).to be(0) end end + + context "when field_117 is not a permitted value" do + let(:attributes) { { bulk_upload:, field_117: 3 } } + + it "adds an error" do + parser.valid? + expect(parser.errors[:field_117]).to include("Enter a valid value for was the letting made under the Common Allocation Policy (CAP)") + end + end end describe "#letting_allocation_unknown" do diff --git a/spec/services/bulk_upload/lettings/year2024/row_parser_spec.rb b/spec/services/bulk_upload/lettings/year2024/row_parser_spec.rb index 7b15d4381..733bb6b6c 100644 --- a/spec/services/bulk_upload/lettings/year2024/row_parser_spec.rb +++ b/spec/services/bulk_upload/lettings/year2024/row_parser_spec.rb @@ -1889,6 +1889,15 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do expect(parser.log.cbl).to be(0) end end + + context "when field_112 is not a permitted value" do + let(:attributes) { { bulk_upload:, field_112: 3 } } + + it "adds an error" do + parser.valid? + expect(parser.errors[:field_112]).to include("Enter a valid value for was the letting made under the Choice-Based Lettings (CBL)") + end + end end describe "#chr" do @@ -1907,6 +1916,15 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do expect(parser.log.chr).to be(0) end end + + context "when field_114 is not a permitted value" do + let(:attributes) { { bulk_upload:, field_114: 3 } } + + it "adds an error" do + parser.valid? + expect(parser.errors[:field_114]).to include("Enter a valid value for was the letting made under the Common Housing Register (CHR)") + end + end end describe "#cap" do @@ -1925,6 +1943,42 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do expect(parser.log.cap).to be(0) end end + + context "when field_113 is not a permitted value" do + let(:attributes) { { bulk_upload:, field_113: 3 } } + + it "adds an error" do + parser.valid? + expect(parser.errors[:field_113]).to include("Enter a valid value for was the letting made under the Common Allocation Policy (CAP)") + end + end + end + + describe "#accessible_register" do + context "when field_115 is yes ie 1" do + let(:attributes) { { bulk_upload:, field_115: 1 } } + + it "sets value to 1" do + expect(parser.log.accessible_register).to be(1) + end + end + + context "when field_115 is no ie 2" do + let(:attributes) { { bulk_upload:, field_115: 2 } } + + it "sets value to 0" do + expect(parser.log.accessible_register).to be(0) + end + end + + context "when field_115 is not a permitted value" do + let(:attributes) { { bulk_upload:, field_115: 3 } } + + it "adds an error" do + parser.valid? + expect(parser.errors[:field_115]).to include("Enter a valid value for was the letting made under the Accessible Register") + end + end end describe "#letting_allocation_unknown" do From 7faf3056bedc92e5965e0a297de51428b70ae8fa Mon Sep 17 00:00:00 2001 From: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com> Date: Wed, 13 Mar 2024 11:20:55 +0000 Subject: [PATCH 08/11] Add autocomplete placeholder (#2300) --- .../controllers/accessible_autocomplete_controller.js | 1 + spec/features/form/accessible_autocomplete_spec.rb | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/app/frontend/controllers/accessible_autocomplete_controller.js b/app/frontend/controllers/accessible_autocomplete_controller.js index b510a6b02..f3a6ca1d8 100644 --- a/app/frontend/controllers/accessible_autocomplete_controller.js +++ b/app/frontend/controllers/accessible_autocomplete_controller.js @@ -22,6 +22,7 @@ export default class extends Controller { } }, autoselect: true, + placeholder: 'Start typing to search', templates: { suggestion: (value) => suggestion(value, options) }, name: rawFieldName, onConfirm: (val) => { diff --git a/spec/features/form/accessible_autocomplete_spec.rb b/spec/features/form/accessible_autocomplete_spec.rb index 373d0232d..e525da46f 100644 --- a/spec/features/form/accessible_autocomplete_spec.rb +++ b/spec/features/form/accessible_autocomplete_spec.rb @@ -63,6 +63,10 @@ RSpec.describe "Accessible Autocomplete" do page.go_back expect(page).to have_selector("input", class: "autocomplete__input", count: 1) end + + it "displays the placeholder text", js: true do + expect(find("#lettings-log-prevloc-field")["placeholder"]).to eq("Start typing to search") + end end context "when searching schemes" do From 7dba4b56ba8f08770bce9af6449fbb5ea5c871e8 Mon Sep 17 00:00:00 2001 From: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com> Date: Wed, 13 Mar 2024 11:28:23 +0000 Subject: [PATCH 09/11] Clear/error all charges if any charges are missing (#2296) --- .../lettings/year2024/row_parser.rb | 30 +++++++++----- .../lettings/year2024/row_parser_spec.rb | 40 +++++++++++++++---- 2 files changed, 53 insertions(+), 17 deletions(-) diff --git a/app/services/bulk_upload/lettings/year2024/row_parser.rb b/app/services/bulk_upload/lettings/year2024/row_parser.rb index d2e0d88ca..b23a6b57d 100644 --- a/app/services/bulk_upload/lettings/year2024/row_parser.rb +++ b/app/services/bulk_upload/lettings/year2024/row_parser.rb @@ -408,13 +408,13 @@ class BulkUpload::Lettings::Year2024::RowParser validate :validate_created_by_exists, on: :after_log validate :validate_created_by_related, on: :after_log + validate :validate_all_charges_given, on: :after_log, if: proc { is_carehome.zero? } validate :validate_nulls, on: :after_log validate :validate_uprn_exists_if_any_key_address_fields_are_blank, on: :after_log, unless: -> { supported_housing? } validate :validate_incomplete_soft_validations, on: :after_log - validate :validate_all_charges_given, on: :after_log, if: proc { is_carehome.zero? } validate :validate_nationality, on: :after_log def self.question_for_field(field) @@ -853,16 +853,28 @@ private def validate_all_charges_given return if supported_housing? && field_125 == 1 - { field_125: "basic rent", + blank_charge_fields, other_charge_fields = { + field_125: "basic rent", field_126: "service charge", field_127: "personal service charge", - field_128: "support charge" }.each do |field, charge| - if public_send(field.to_sym).blank? - errors.add(field, I18n.t("validations.financial.charges.missing_charges", question: charge)) + field_128: "support charge", + }.partition { |field, _| public_send(field).blank? }.map(&:to_h) + + blank_charge_fields.each do |field, charge| + errors.add(field, I18n.t("validations.financial.charges.missing_charges", question: charge)) + end + + other_charge_fields.each do |field, _charge| + blank_charge_fields.each do |_blank_field, blank_charge| + errors.add(field, I18n.t("validations.financial.charges.missing_charges", question: blank_charge)) end end end + def all_charges_given? + field_125.present? && field_126.present? && field_127.present? && field_128.present? + end + def setup_question?(question) log.form.setup_sections[0].subsections[0].questions.include?(question) end @@ -1201,10 +1213,10 @@ private attributes["benefits"] = field_121 attributes["period"] = field_123 - attributes["brent"] = field_125 - attributes["scharge"] = field_126 - attributes["pscharge"] = field_127 - attributes["supcharg"] = field_128 + attributes["brent"] = field_125 if all_charges_given? + attributes["scharge"] = field_126 if all_charges_given? + attributes["pscharge"] = field_127 if all_charges_given? + attributes["supcharg"] = field_128 if all_charges_given? attributes["chcharge"] = field_124 attributes["is_carehome"] = is_carehome attributes["household_charge"] = supported_housing? ? field_122 : nil diff --git a/spec/services/bulk_upload/lettings/year2024/row_parser_spec.rb b/spec/services/bulk_upload/lettings/year2024/row_parser_spec.rb index 733bb6b6c..145610889 100644 --- a/spec/services/bulk_upload/lettings/year2024/row_parser_spec.rb +++ b/spec/services/bulk_upload/lettings/year2024/row_parser_spec.rb @@ -1653,7 +1653,7 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do end context "when soft validation is triggered and not required" do - let(:attributes) { setup_section_params.merge({ field_125: 120, field_123: 1, field_29: 1, field_4: 1, field_11: "1", field_23: "E09000008" }) } + let(:attributes) { setup_section_params.merge({ field_125: 120, field_126: 120, field_127: 120, field_128: 120, field_123: 1, field_29: 1, field_4: 1, field_11: "1", field_23: "E09000008" }) } it "adds an error to the relevant fields" do expect(parser.errors.where(:field_125, category: :soft_validation)).to be_present @@ -2240,7 +2240,7 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do end describe "#chcharge" do - let(:attributes) { { bulk_upload:, field_124: "123.45", field_125: "123.45", field_126: "123.45", field_127: "123.45", field_128: "123.45" } } + let(:attributes) { setup_section_params.merge({ field_124: "123.45", field_125: "123.45", field_126: "123.45", field_127: "123.45", field_128: "123.45" }) } it "sets value given" do expect(parser.log.chcharge).to eq(123.45) @@ -2261,7 +2261,7 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do end describe "#supcharg" do - let(:attributes) { { bulk_upload:, field_128: "123.45" } } + let(:attributes) { setup_section_params.merge({ field_125: "330", field_126: "0", field_127: "0", field_128: "123.45" }) } it "sets value given" do expect(parser.log.supcharg).to eq(123.45) @@ -2269,7 +2269,7 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do context "when other charges are not given" do context "and it is carehome" do - let(:attributes) { { bulk_upload:, field_128: "123.45", field_124: "123.45", field_125: nil, field_126: nil, field_127: nil } } + let(:attributes) { setup_section_params.merge({ field_128: "123.45", field_124: "123.45", field_125: nil, field_126: nil, field_127: nil }) } it "does not set charges values" do parser.log.save! @@ -2290,7 +2290,7 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do end context "and it is not carehome" do - let(:attributes) { { bulk_upload:, field_128: "123.45", field_124: nil, field_125: nil, field_126: nil, field_127: nil } } + let(:attributes) { setup_section_params.merge({ field_128: "123.45", field_124: nil, field_125: nil, field_126: nil, field_127: nil }) } it "does not set charges values" do parser.log.save! @@ -2306,14 +2306,38 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do expect(parser.errors[:field_125]).to eql(["Please enter the basic rent. If there is no basic rent, please enter '0'."]) expect(parser.errors[:field_126]).to eql(["Please enter the service charge. If there is no service charge, please enter '0'."]) expect(parser.errors[:field_127]).to eql(["Please enter the personal service charge. If there is no personal service charge, please enter '0'."]) - expect(parser.errors[:field_128]).to be_empty + expect(parser.errors[:field_128]).to eql(["Please enter the basic rent. If there is no basic rent, please enter '0'.", "Please enter the service charge. If there is no service charge, please enter '0'.", "Please enter the personal service charge. If there is no personal service charge, please enter '0'."]) + end + end + end + + context "when supscharg is not given" do + context "and it is not carehome" do + let(:attributes) { setup_section_params.merge({ field_123: 1, field_124: nil, field_125: "350.45", field_126: "0", field_127: "0", field_128: nil }) } + + it "does not set charges values" do + parser.log.save! + expect(parser.log.period).not_to be_nil + expect(parser.log.tcharge).to be_nil + expect(parser.log.brent).to be_nil + expect(parser.log.supcharg).to be_nil + expect(parser.log.pscharge).to be_nil + expect(parser.log.scharge).to be_nil + end + + it "adds an error to all charges" do + parser.valid? + expect(parser.errors[:field_125]).to eql(["Please enter the support charge. If there is no support charge, please enter '0'."]) + expect(parser.errors[:field_126]).to eql(["Please enter the support charge. If there is no support charge, please enter '0'."]) + expect(parser.errors[:field_127]).to eql(["Please enter the support charge. If there is no support charge, please enter '0'."]) + expect(parser.errors[:field_128]).to eql(["Please enter the support charge. If there is no support charge, please enter '0'."]) end end end end describe "#pscharge" do - let(:attributes) { { bulk_upload:, field_127: "123.45" } } + let(:attributes) { { bulk_upload:, field_125: "111.45", field_126: "0", field_127: "123.45", field_128: "0" } } it "sets value given" do expect(parser.log.pscharge).to eq(123.45) @@ -2321,7 +2345,7 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do end describe "#scharge" do - let(:attributes) { { bulk_upload:, field_126: "123.45" } } + let(:attributes) { { bulk_upload:, field_125: "111.45", field_126: "123.45", field_127: "0", field_128: "0" } } it "sets value given" do expect(parser.log.scharge).to eq(123.45) From 48a18627c4e01a7d4dcf6a2153712d6bc586199d Mon Sep 17 00:00:00 2001 From: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com> Date: Wed, 13 Mar 2024 11:29:09 +0000 Subject: [PATCH 10/11] Only run 103 validation for shared ownership (#2289) --- .../bulk_upload/sales/year2024/row_parser.rb | 2 +- .../sales/year2024/row_parser_spec.rb | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/app/services/bulk_upload/sales/year2024/row_parser.rb b/app/services/bulk_upload/sales/year2024/row_parser.rb index f5697135b..48f451843 100644 --- a/app/services/bulk_upload/sales/year2024/row_parser.rb +++ b/app/services/bulk_upload/sales/year2024/row_parser.rb @@ -344,7 +344,7 @@ class BulkUpload::Sales::Year2024::RowParser validates :field_103, inclusion: { in: [1, 2], - if: proc { field_88 != 100 }, + if: proc { field_88.present? && field_88 != 100 && shared_ownership? }, question: QUESTIONS[:field_103], }, on: :before_log diff --git a/spec/services/bulk_upload/sales/year2024/row_parser_spec.rb b/spec/services/bulk_upload/sales/year2024/row_parser_spec.rb index b45dfe10d..58d6b2849 100644 --- a/spec/services/bulk_upload/sales/year2024/row_parser_spec.rb +++ b/spec/services/bulk_upload/sales/year2024/row_parser_spec.rb @@ -1005,6 +1005,22 @@ RSpec.describe BulkUpload::Sales::Year2024::RowParser do end end + context "when value is 3 and stairowned is not answered" do + let(:attributes) { setup_section_params.merge(field_103: "3", field_86: "1", field_87: "50", field_88: nil, field_109: nil) } + + it "does not add errors" do + expect(parser.errors[:field_103]).not_to include("Enter a valid value for Was a mortgage used for the purchase of this property? - Shared ownership") + end + end + + context "when it's not shared ownership" do + let(:attributes) { setup_section_params.merge(field_8: "2", field_103: "3", field_86: "1", field_87: "50", field_88: "99", field_109: nil) } + + it "does not add errors" do + expect(parser.errors[:field_103]).not_to include("Enter a valid value for Was a mortgage used for the purchase of this property? - Shared ownership") + end + end + context "when value is 3 and stairowned is 100" do let(:attributes) { setup_section_params.merge(field_103: "3", field_86: "1", field_87: "50", field_88: "100", field_109: nil) } From e117f2e991c5cfc9b1fd2b93b8c472b04165b580 Mon Sep 17 00:00:00 2001 From: natdeanlewissoftwire <94526761+natdeanlewissoftwire@users.noreply.github.com> Date: Wed, 13 Mar 2024 13:51:56 +0000 Subject: [PATCH 11/11] CLDC-1874 Unit test depends_on_met (#2309) * feat: unit test depends_on_met * refactor: lint --- spec/features/form/page_routing_spec.rb | 107 ++++++++++++++++++++++++ 1 file changed, 107 insertions(+) diff --git a/spec/features/form/page_routing_spec.rb b/spec/features/form/page_routing_spec.rb index 7409ff413..0ecb8f5f1 100644 --- a/spec/features/form/page_routing_spec.rb +++ b/spec/features/form/page_routing_spec.rb @@ -155,4 +155,111 @@ RSpec.describe "Form Page Routing" do end end end + + describe "#depends_on_met" do + it "returns true if there is no depends_on" do + depends_on = nil + + expect(lettings_log.form.depends_on_met(depends_on, lettings_log)).to eq(true) + end + + it "returns true if the depends_on is met" do + depends_on = [{ "armedforces" => 1 }] + lettings_log.armedforces = 1 + + expect(lettings_log.form.depends_on_met(depends_on, lettings_log)).to eq(true) + end + + it "returns false if the depends_on is not met" do + depends_on = [{ "armedforces" => 1 }] + lettings_log.armedforces = 0 + + expect(lettings_log.form.depends_on_met(depends_on, lettings_log)).to eq(false) + end + + it "returns true if a complex depends_on is met" do + depends_on = [{ "is_la_inferred" => false, "is_general_needs?" => true }] + lettings_log.is_la_inferred = false + lettings_log.needstype = 1 + + expect(lettings_log.form.depends_on_met(depends_on, lettings_log)).to eq(true) + end + + it "returns false if any part of a complex depends_on is not met" do + depends_on = [{ "is_la_inferred" => false, "is_general_needs?" => true }] + lettings_log.is_la_inferred = false + lettings_log.needstype = 2 + + expect(lettings_log.form.depends_on_met(depends_on, lettings_log)).to eq(false) + end + + it "returns true if the first of multiple depends_ons are met" do + depends_on = [{ "is_la_inferred" => false }, { "is_general_needs?" => true }] + lettings_log.is_la_inferred = false + lettings_log.needstype = 2 + + expect(lettings_log.form.depends_on_met(depends_on, lettings_log)).to eq(true) + end + + it "returns true if the last of multiple depends_ons are met" do + depends_on = [{ "is_la_inferred" => false }, { "is_general_needs?" => true }] + lettings_log.is_la_inferred = true + lettings_log.needstype = 1 + + expect(lettings_log.form.depends_on_met(depends_on, lettings_log)).to eq(true) + end + + context "with operator-based depends_ons" do + it "returns true if an operator-based depends_on is met" do + depends_on = [ + { + "details_known_2" => 0, + "age2" => { + "operator" => ">", + "operand" => 15, + }, + }, + { "details_known_2" => 0, "age2" => nil }, + ] + lettings_log.details_known_2 = 0 + lettings_log.age2 = 16 + + expect(lettings_log.form.depends_on_met(depends_on, lettings_log)).to eq(true) + end + + it "returns false if an operator-based depends_on is not met" do + depends_on = [ + { + "details_known_2" => 0, + "age2" => { + "operator" => ">", + "operand" => 15, + }, + }, + { "details_known_2" => 0, "age2" => nil }, + ] + lettings_log.details_known_2 = 0 + lettings_log.age2 = 15 + + expect(lettings_log.form.depends_on_met(depends_on, lettings_log)).to eq(false) + end + + it "returns true if an operator-based depends_on is met on an inequality threshold" do + depends_on = [ + { + "details_known_2" => 0, + "age2" => { + "operator" => ">=", + "operand" => 15, + }, + }, + { "details_known_2" => 0, "age2" => nil }, + ] + lettings_log.details_known_2 = 0 + lettings_log.age2 = 15 + + expect(lettings_log.form.depends_on_met(depends_on, lettings_log)).to eq(true) + end + end + end end