From 7419663342e5b514ed642e741e2be1e4dda159a5 Mon Sep 17 00:00:00 2001 From: Samuel Young Date: Fri, 19 Dec 2025 13:51:53 +0000 Subject: [PATCH] CLDC-3501: Audit temporarily paused tests (#3127) * CLDC-3501: Remove unfinished LogCreator tests seems unclear what the test looked to verify, an existing log cannot be created * CLDC-3501: Remove charge not provided test this was moved to a soft validation in #1359 * CLDC-3501: Remove some year dependencies on LettingsLogController tests no need to store a json of a complete log, we can generate this dynamically * CLDC-3501: Reinstate skipped setup test add some new time helpers to do with crossover periods * CLDC-3501: Reinstate skipped schemes test Can be made non specific to the year * CLDC-3501: Reinstate skipped managing org rake test the log can never be completed as it is missing info * CLDC-3501: Reinstate row parser completed test no changes needed, it already passes --- app/helpers/collection_time_helper.rb | 8 + spec/features/schemes_spec.rb | 4 +- spec/fixtures/complete_lettings_log.json | 179 ------------------ .../set_sales_managing_organisation_spec.rb | 6 +- .../validations/financial_validations_spec.rb | 12 -- .../validations/setup_validations_spec.rb | 20 +- .../requests/lettings_logs_controller_spec.rb | 53 ++---- .../bulk_upload/lettings/log_creator_spec.rb | 4 - .../lettings/year2025/row_parser_spec.rb | 2 +- .../bulk_upload/sales/log_creator_spec.rb | 4 - 10 files changed, 40 insertions(+), 252 deletions(-) delete mode 100644 spec/fixtures/complete_lettings_log.json diff --git a/app/helpers/collection_time_helper.rb b/app/helpers/collection_time_helper.rb index d33f99dd7..5f7305bf3 100644 --- a/app/helpers/collection_time_helper.rb +++ b/app/helpers/collection_time_helper.rb @@ -58,6 +58,14 @@ module CollectionTimeHelper current_collection_start_year - 2 end + def previous_collection_new_logs_end_date + FormHandler.instance.lettings_form_for_start_year(previous_collection_start_year).new_logs_end_date + end + + def previous_collection_edit_end_date + FormHandler.instance.lettings_form_for_start_year(previous_collection_start_year).edit_end_date + end + def generate_different_date_within_collection_year(date, start_date_override: nil, end_date_override: nil) start_date = [start_date_override&.to_date, collection_start_date(date).to_date].compact.max.to_date end_date = [end_date_override&.to_date, collection_end_date(date).to_date].compact.min.to_date diff --git a/spec/features/schemes_spec.rb b/spec/features/schemes_spec.rb index 91ee69738..e9cb23770 100644 --- a/spec/features/schemes_spec.rb +++ b/spec/features/schemes_spec.rb @@ -833,12 +833,12 @@ RSpec.describe "Schemes scheme Features" do expect(page).to have_content("Deactivated") end - xit "allows to reactivate a location" do + it "allows to reactivate a location" do click_link("Reactivate this location") expect(page).to have_current_path("/schemes/#{scheme.id}/locations/#{deactivated_location.id}/new-reactivation") expect(page).to have_content("Reactivate #{deactivated_location.name}") expect(page).to have_content("You’ll be able to add logs with this location if their tenancy start date is on or after the date you enter.") - expect(page).to have_content("If the date is before 1 April 2022, select ‘From the start of the open collection period’ because the previous period has now closed.") + expect(page).to have_content(/If the date is before 1 April \d{4}, select ‘From the start of the open collection period’ because the previous period has now closed./) end context "when I press the back button" do diff --git a/spec/fixtures/complete_lettings_log.json b/spec/fixtures/complete_lettings_log.json deleted file mode 100644 index 39be794a4..000000000 --- a/spec/fixtures/complete_lettings_log.json +++ /dev/null @@ -1,179 +0,0 @@ -{ - "lettings_log": { - "tenancycode": "T1245", - "age1": 34, - "sex1": "M", - "ethnic": 1, - "national": 1, - "prevten": 3, - "ecstat1": 1, - "hhmemb": 3, - "age2": 29, - "sex2": "F", - "ecstat2": 2, - "age3": 11, - "sex3": "R", - "ecstat3": 9, - "age4": null, - "sex4": null, - "ecstat4": null, - "age5": null, - "sex5": null, - "ecstat5": null, - "age6": null, - "sex6": null, - "ecstat6": null, - "age7": null, - "sex7": null, - "ecstat7": null, - "age8": null, - "sex8": null, - "ecstat8": null, - "homeless": 1, - "underoccupation_benefitcap": 2, - "leftreg": null, - "reservist": null, - "illness": 2, - "preg_occ": 2, - "startertenancy": 2, - "tenancylength": null, - "tenancy": 2, - "ppostcode_full": "NW18TR", - "rsnvac": 5, - "unittype_gn": 7, - "beds": 2, - "offered": 0, - "wchair": 1, - "earnings": 190, - "incfreq": 1, - "benefits": 3, - "period": 3, - "layear": 7, - "waityear": 2, - "postcode_full": "NW18EE", - "reasonpref": 2, - "cbl": 1, - "chr": 0, - "cap": 0, - "reasonother": "", - "housingneeds": 1, - "housingneeds_type": 2, - "housingneeds_other": 0, - "housingneeds_c": 1, - "illness_type_1": null, - "illness_type_2": null, - "illness_type_3": null, - "illness_type_4": null, - "illness_type_8": null, - "illness_type_5": null, - "illness_type_6": null, - "illness_type_7": null, - "illness_type_9": null, - "illness_type_10": null, - "rp_homeless": null, - "rp_insan_unsat": null, - "rp_medwel": null, - "rp_hardship": null, - "rp_dontknow": null, - "tenancyother": "", - "net_income_value_check": null, - "property_owner_organisation": null, - "property_manager_organisation": null, - "irproduct_other": "", - "purchaser_code": null, - "reason": 42, - "propcode": "PT562", - "majorrepairs": 1, - "la": "E09000007", - "prevloc": "E09000007", - "hb": 9, - "hbrentshortfall": null, - "property_relet": null, - "mrcdate": "2021-05-07T00:00:00.000+01:00", - "incref": null, - "startdate": "2021-06-06T00:00:00.000+01:00", - "armedforces": 2, - "first_time_property_let_as_social_housing": 0, - "unitletas": 1, - "builtype": 1, - "voiddate": "2021-05-05T00:00:00.000+01:00", - "owning_organisation_id": 1, - "managing_organisation_id": 1, - "renttype": 2, - "needstype": 1, - "lettype": 7, - "postcode_known": 1, - "is_la_inferred": true, - "totchild": 1, - "totelder": 0, - "totadult": 2, - "net_income_known": 0, - "nocharge": 0, - "is_carehome": null, - "household_charge": null, - "referral": 2, - "brent": "350.0", - "scharge": "11.0", - "pscharge": "11.0", - "supcharg": "0.0", - "tcharge": "372.0", - "tshortfall": null, - "chcharge": null, - "declaration": 1, - "ppcodenk": 1, - "previous_la_known": null, - "is_previous_la_inferred": true, - "age1_known": 0, - "age2_known": 0, - "age3_known": 0, - "age4_known": null, - "age5_known": null, - "age6_known": null, - "age7_known": null, - "age8_known": null, - "ethnic_group": 0, - "letting_allocation_unknown": 0, - "details_known_2": 0, - "details_known_3": 0, - "details_known_4": null, - "details_known_5": null, - "details_known_6": null, - "details_known_7": null, - "details_known_8": null, - "rent_type": 1, - "has_benefits": 0, - "renewal": 0, - "wrent": "87.5", - "wscharge": "2.75", - "wpschrge": "2.75", - "wsupchrg": "0.0", - "wtcharge": "93.0", - "wtshortfall": null, - "refused": 1, - "wchchrg": null, - "newprop": 2, - "relat2": "P", - "relat3": "C", - "relat4": null, - "relat5": null, - "relat6": null, - "relat7": null, - "relat8": null, - "rent_value_check": null, - "old_form_id": null, - "lar": null, - "irproduct": null, - "old_id": null, - "joint": null, - "assigned_to_id": 2, - "retirement_value_check": null, - "tshortfall_known": null, - "sheltered": null, - "pregnancy_value_check": null, - "hhtype": 6, - "new_old": 1, - "vacdays": 30, - "scheme_id": null, - "location_id": null - } -} diff --git a/spec/lib/tasks/set_sales_managing_organisation_spec.rb b/spec/lib/tasks/set_sales_managing_organisation_spec.rb index 657befe84..314dcb19e 100644 --- a/spec/lib/tasks/set_sales_managing_organisation_spec.rb +++ b/spec/lib/tasks/set_sales_managing_organisation_spec.rb @@ -14,13 +14,13 @@ RSpec.describe "set_sales_managing_organisation" do context "when the rake task is run" do let!(:sales_log) { create(:sales_log, :completed, managing_organisation_id: nil) } - xit "updates sales log managing_organisation_id with owning_organisation_id" do + it "updates sales log managing_organisation_id with owning_organisation_id" do expect(sales_log.managing_organisation_id).to eq(nil) - expect(sales_log.status).to eq("completed") + expect(sales_log.status).to eq("in_progress") task.invoke sales_log.reload expect(sales_log.managing_organisation_id).to eq(sales_log.owning_organisation_id) - expect(sales_log.status).to eq("completed") + expect(sales_log.status).to eq("in_progress") end it "does not update sales log managing_organisation_id if owning_organisation_id is nil" do diff --git a/spec/models/validations/financial_validations_spec.rb b/spec/models/validations/financial_validations_spec.rb index 7e458ee28..14e2dfd0c 100644 --- a/spec/models/validations/financial_validations_spec.rb +++ b/spec/models/validations/financial_validations_spec.rb @@ -1191,18 +1191,6 @@ RSpec.describe Validations::FinancialValidations do end end - context "and charges are not provided" do - xit "throws an error" do - record.period = 3 - record.chcharge = nil - financial_validator.validate_care_home_charges(record) - expect(record.errors["chcharge"]) - .to include(match I18n.t("validations.lettings.financial.carehome.not_provided", period: "every 4 weeks")) - expect(record.errors["is_carehome"]) - .to include(match I18n.t("validations.lettings.financial.carehome.not_provided", period: "every 4 weeks")) - end - end - context "and charges under valid limit (£10pw)" do it "validates charge when period is weekly for 52 weeks" do record.period = 1 diff --git a/spec/models/validations/setup_validations_spec.rb b/spec/models/validations/setup_validations_spec.rb index eeac39d1d..ac6faee08 100644 --- a/spec/models/validations/setup_validations_spec.rb +++ b/spec/models/validations/setup_validations_spec.rb @@ -1,6 +1,8 @@ require "rails_helper" RSpec.describe Validations::SetupValidations do + include CollectionTimeHelper + subject(:setup_validator) { setup_validator_class.new } let(:setup_validator_class) { Class.new { include Validations::SetupValidations } } @@ -96,24 +98,28 @@ RSpec.describe Validations::SetupValidations do context "when after the new logs end date but before edit end date for the previous period" do before do - allow(Time).to receive(:now).and_return(Time.zone.local(2024, 1, 8)) + Timecop.freeze(previous_collection_edit_end_date) + end + + after do + Timecop.return end it "cannot create new logs for the previous collection year" do record.update!(startdate: nil) - record.startdate = Time.zone.local(2023, 1, 1) + record.startdate = previous_collection_start_date setup_validator.validate_startdate_setup(record) setup_validator.validate_merged_organisations_start_date(record) - expect(record.errors["startdate"]).to include(match "Enter a date within the 2023 to 2024 collection year, which is between 1st April 2023 and 31st March 2024") + expect(record.errors["startdate"]).to include(match "Enter a date within the #{current_collection_start_year} to #{next_collection_start_year} collection year, which is between 1st April #{current_collection_start_year} and 31st March #{next_collection_start_year}") end - xit "can edit already created logs for the previous collection year" do - record.startdate = Time.zone.local(2023, 1, 2) + it "can edit already created logs for the previous collection year" do + record.startdate = previous_collection_start_date + 1.day record.save!(validate: false) - record.startdate = Time.zone.local(2023, 1, 1) + record.startdate = previous_collection_start_date setup_validator.validate_startdate_setup(record) setup_validator.validate_merged_organisations_start_date(record) - expect(record.errors["startdate"]).not_to include(match "Enter a date within the 2023 to 2024 collection year, which is between 1st April 2023 and 31st March 2024") + expect(record.errors["startdate"]).not_to include(match "Enter a date within the #{current_collection_start_year} to #{next_collection_start_year} collection year, which is between 1st April #{current_collection_start_year} and 31st March #{next_collection_start_year}") end end diff --git a/spec/requests/lettings_logs_controller_spec.rb b/spec/requests/lettings_logs_controller_spec.rb index 5a0e26df0..a3dc1396f 100644 --- a/spec/requests/lettings_logs_controller_spec.rb +++ b/spec/requests/lettings_logs_controller_spec.rb @@ -21,13 +21,11 @@ RSpec.describe LettingsLogsController, type: :request do "Authorization" => basic_credentials, } end - let(:fake_2021_2022_form) { Form.new("spec/fixtures/forms/2021_2022.json") } before do allow(ENV).to receive(:[]) allow(ENV).to receive(:[]).with("API_USER").and_return(api_username) allow(ENV).to receive(:[]).with("API_KEY").and_return(api_password) - allow(FormHandler.instance).to receive(:current_lettings_form).and_return(fake_2021_2022_form) end describe "POST #create" do @@ -46,6 +44,12 @@ RSpec.describe LettingsLogsController, type: :request do "managing_organisation_id": managing_organisation.id, "assigned_to_id": user.id, "tenancycode": tenant_code, + "startdate": current_date.strftime("%Y-%m-%d"), + "renewal": 0, + "needstype": 1, + "rent_type": 1, + "declaration": 1, + "manual_address_entry_selected": true, "age1": age1, "postcode_full": postcode_full, "offered": offered, @@ -54,14 +58,9 @@ RSpec.describe LettingsLogsController, type: :request do end before do - Timecop.freeze(Time.utc(2022, 2, 8)) post "/lettings-logs", headers:, params: params.to_json end - after do - Timecop.unfreeze - end - it "returns http success" do expect(response).to have_http_status(:success) end @@ -80,12 +79,11 @@ RSpec.describe LettingsLogsController, type: :request do context "with invalid json parameters" do let(:age1) { 2000 } - let(:offered) { 21 } it "validates lettings log parameters" do json_response = JSON.parse(response.body) expect(response).to have_http_status(:unprocessable_content) - expect(json_response["errors"]).to match_array([["offered", [I18n.t("validations.shared.numeric.within_range", field: "Times previously offered since becoming available", min: 0, max: 20)]], ["age1", [I18n.t("validations.shared.numeric.within_range", field: "Lead tenant’s age", min: 16, max: 120)]]]) + expect(json_response["errors"]).to match_array([["age1", [I18n.t("validations.shared.numeric.within_range", field: "Lead tenant’s age", min: 16, max: 120)]]]) end end @@ -97,21 +95,11 @@ RSpec.describe LettingsLogsController, type: :request do end context "with a complete lettings log submission" do - let(:org_params) do - { - "lettings_log" => { - "owning_organisation_id" => owning_organisation.id, - "managing_organisation_id" => managing_organisation.id, - "assigned_to_id" => user.id, - }, - } - end - let(:lettings_log_params) { JSON.parse(File.open("spec/fixtures/complete_lettings_log.json").read) } let(:params) do - lettings_log_params.merge(org_params) { |_k, a_val, b_val| a_val.merge(b_val) } + create(:lettings_log, :completed).attributes end - xit "marks the record as completed" do + it "marks the record as completed" do json_response = JSON.parse(response.body) expect(json_response).not_to have_key("errors") @@ -1168,8 +1156,6 @@ RSpec.describe LettingsLogsController, type: :request do let(:lettings_log) { create(:lettings_log, status: "not_started", assigned_to: user) } it "shows guidance link" do - allow(Time.zone).to receive(:now).and_return(lettings_log.form.edit_end_date - 1.day) - get lettings_log_path(lettings_log) expect(lettings_log.status).to eq("not_started") expect(page).to have_content("Guidance for submitting social housing lettings and sales data (opens in a new tab)") end @@ -1287,9 +1273,9 @@ RSpec.describe LettingsLogsController, type: :request do context "when accessing the check answers page" do before do - Timecop.freeze(2021, 4, 1) + Timecop.freeze(previous_collection_start_date) Singleton.__init__(FormHandler) - completed_lettings_log.update!(startdate: Time.zone.local(2021, 4, 1), voiddate: Time.zone.local(2021, 4, 1), mrcdate: Time.zone.local(2021, 4, 1)) + completed_lettings_log.update!(startdate: previous_collection_start_date, voiddate: previous_collection_start_date, mrcdate: previous_collection_start_date) Timecop.unfreeze stub_request(:get, /api\.postcodes\.io/) .to_return(status: 200, body: "{\"status\":200,\"result\":{\"admin_district\":\"Manchester\", \"codes\":{\"admin_district\": \"E08000003\"}}}", headers: {}) @@ -1298,6 +1284,7 @@ RSpec.describe LettingsLogsController, type: :request do let(:postcode_lettings_log) do FactoryBot.create(:lettings_log, + :setup_completed, assigned_to: user, postcode_known: "No") end @@ -1306,6 +1293,7 @@ RSpec.describe LettingsLogsController, type: :request do it "shows the inferred la" do lettings_log = FactoryBot.create(:lettings_log, + :setup_completed, assigned_to: user, postcode_known: 1, postcode_full: "PO5 3TE") @@ -1315,21 +1303,6 @@ RSpec.describe LettingsLogsController, type: :request do expect(CGI.unescape_html(response.body)).to include(expected_inferred_answer) end - it "does not show do you know the property postcode question" do - get "/lettings-logs/#{id}/property-information/check-answers" - expect(CGI.unescape_html(response.body)).not_to include("Do you know the property postcode?") - end - - it "shows if the postcode is not known" do - get "/lettings-logs/#{id}/property-information/check-answers" - expect(CGI.unescape_html(response.body)).to include("Not known") - end - - it "shows link to answer question if the question wasn’t answered" do - get "/lettings-logs/#{id}/income-and-benefits/check-answers" - expect(page).to have_link("Enter income", href: "/lettings-logs/#{id}/net-income?referrer=check_answers_new_answer", class: "govuk-link govuk-link--no-visited-state") - end - it "does not allow you to change the answers for previous collection year logs" do get "/lettings-logs/#{completed_lettings_log.id}/setup/check-answers", headers: { "Accept" => "text/html" }, params: {} expect(page).not_to have_link("Change") diff --git a/spec/services/bulk_upload/lettings/log_creator_spec.rb b/spec/services/bulk_upload/lettings/log_creator_spec.rb index fe8e72127..85d2fb444 100644 --- a/spec/services/bulk_upload/lettings/log_creator_spec.rb +++ b/spec/services/bulk_upload/lettings/log_creator_spec.rb @@ -153,9 +153,5 @@ RSpec.describe BulkUpload::Lettings::LogCreator do expect(log.retirement_value_check).to be(nil) end end - - context "when valid csv with existing log" do - xit "what should happen?" - end end end diff --git a/spec/services/bulk_upload/lettings/year2025/row_parser_spec.rb b/spec/services/bulk_upload/lettings/year2025/row_parser_spec.rb index 84f6bb2a7..951838e53 100644 --- a/spec/services/bulk_upload/lettings/year2025/row_parser_spec.rb +++ b/spec/services/bulk_upload/lettings/year2025/row_parser_spec.rb @@ -259,7 +259,7 @@ RSpec.describe BulkUpload::Lettings::Year2025::RowParser do expect(parser).to be_valid end - xit "instantiates a log with everything completed", aggregate_failures: true do + it "instantiates a log with everything completed", aggregate_failures: true do parser.valid? questions = parser.send(:questions).reject do |q| diff --git a/spec/services/bulk_upload/sales/log_creator_spec.rb b/spec/services/bulk_upload/sales/log_creator_spec.rb index 51c90781f..e9fb8cc49 100644 --- a/spec/services/bulk_upload/sales/log_creator_spec.rb +++ b/spec/services/bulk_upload/sales/log_creator_spec.rb @@ -151,10 +151,6 @@ RSpec.describe BulkUpload::Sales::LogCreator do end end - context "when valid csv with existing log" do - xit "what should happen?" - end - context "with a valid csv and soft validations" do let(:log) do build(