Browse Source

Merge branch 'main' into CLDC-3359-fix-flaky-tests

pull/2352/head
natdeanlewissoftwire 2 years ago
parent
commit
431a121db2
  1. 10
      app/models/derived_variables/lettings_log_variables.rb
  2. 2
      app/models/form/lettings/pages/previous_local_authority.rb
  3. 5
      app/models/form/lettings/pages/previous_postcode.rb
  4. 4
      lib/tasks/correct_renewal_postcodes.rake
  5. 1
      spec/features/form/accessible_autocomplete_spec.rb
  6. 23
      spec/lib/tasks/correct_renewal_postcodes_spec.rb
  7. 38
      spec/models/form/lettings/pages/previous_local_authority_spec.rb
  8. 38
      spec/models/form/lettings/pages/previous_postcode_spec.rb
  9. 9
      spec/models/lettings_log_spec.rb
  10. 12
      spec/services/merge/merge_organisations_service_spec.rb

10
app/models/derived_variables/lettings_log_variables.rb

@ -90,6 +90,16 @@ module DerivedVariables::LettingsLogVariables
self.prevten = 32 if owning_organisation&.provider_type == "PRP"
self.prevten = 30 if owning_organisation&.provider_type == "LA"
end
self.ppostcode_full = postcode_full
self.ppcodenk = case postcode_known
when 0
1
when 1
0
end
self.is_previous_la_inferred = is_la_inferred
self.previous_la_known = 1 if la.present?
self.prevloc = la
end
if form.start_year_after_2024? && is_bedsit?
self.beds = 1

2
app/models/form/lettings/pages/previous_local_authority.rb

@ -2,7 +2,7 @@ class Form::Lettings::Pages::PreviousLocalAuthority < ::Form::Page
def initialize(id, hsh, subsection)
super
@id = "previous_local_authority"
@depends_on = [{ "is_previous_la_inferred" => false }]
@depends_on = [{ "is_previous_la_inferred" => false, "renewal" => 0 }]
end
def questions

5
app/models/form/lettings/pages/previous_postcode.rb

@ -1,4 +1,9 @@
class Form::Lettings::Pages::PreviousPostcode < ::Form::Page
def initialize(id, hsh, page)
super
@depends_on = [{ "renewal" => 0 }]
end
def questions
@questions ||= [
Form::Lettings::Questions::Ppcodenk.new(nil, nil, self),

4
lib/tasks/correct_renewal_postcodes.rake

@ -19,6 +19,8 @@ task correct_renewal_postcodes: :environment do
log.previous_la_known = log.la.present? ? 1 : 0
log.prevloc = log.la
log.values_updated_at = Time.zone.now
log.save!
unless log.save
Rails.logger.info("Failed to save log #{log.id}: #{log.errors.full_messages}")
end
end
end

1
spec/features/form/accessible_autocomplete_spec.rb

@ -17,6 +17,7 @@ RSpec.describe "Accessible Autocomplete" do
FactoryBot.create(
:lettings_log,
:in_progress,
renewal: 0,
previous_la_known: 1,
prevloc: "E09000033",
illness: 1,

23
spec/lib/tasks/correct_renewal_postcodes_spec.rb

@ -213,6 +213,29 @@ RSpec.describe "correct_renewal_postcodes" do
expect(log.values_updated_at).to eq(nil)
end
end
context "and there there is a different validation error" do
let(:log) { create(:lettings_log, :completed, postcode_full: "SW1A 1AA", ppostcode_full: "AA1 1AA") }
let(:not_related_user) { create(:user) }
before do
log.renewal = 1
log.values_updated_at = nil
log.created_by = not_related_user
log.save!(validate: false)
end
it "does not updaate the log and logs the errors" do
expect(log.ppostcode_full).to eq("AA1 1AA")
expect(Rails.logger).to receive(:info).with(/Failed to save log #{log.id}:/)
task.invoke
log.reload
expect(log.ppostcode_full).to eq("AA1 1AA")
expect(log.values_updated_at).to eq(nil)
end
end
end
end
end

38
spec/models/form/lettings/pages/previous_local_authority_spec.rb

@ -0,0 +1,38 @@
require "rails_helper"
RSpec.describe Form::Lettings::Pages::PreviousLocalAuthority, type: :model do
subject(:page) { described_class.new(page_id, page_definition, subsection) }
let(:page_id) { nil }
let(:page_definition) { nil }
let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_year_after_2024?: false, start_date: Time.zone.local(2023, 4, 1))) }
it "has correct subsection" do
expect(page.subsection).to eq(subsection)
end
it "has correct questions" do
expect(page.questions.map(&:id)).to eq(
%w[
previous_la_known
prevloc
],
)
end
it "has the correct id" do
expect(page.id).to eq("previous_local_authority")
end
it "has the correct header" do
expect(page.header).to be_nil
end
it "has the correct description" do
expect(page.description).to be_nil
end
it "has the correct depends_on" do
expect(page.depends_on).to match([{ "is_previous_la_inferred" => false, "renewal" => 0 }])
end
end

38
spec/models/form/lettings/pages/previous_postcode_spec.rb

@ -0,0 +1,38 @@
require "rails_helper"
RSpec.describe Form::Lettings::Pages::PreviousPostcode, type: :model do
subject(:page) { described_class.new(page_id, page_definition, subsection) }
let(:page_id) { "previous_postcode" }
let(:page_definition) { nil }
let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_year_after_2024?: false, start_date: Time.zone.local(2023, 4, 1))) }
it "has correct subsection" do
expect(page.subsection).to eq(subsection)
end
it "has correct questions" do
expect(page.questions.map(&:id)).to eq(
%w[
ppcodenk
ppostcode_full
],
)
end
it "has the correct id" do
expect(page.id).to eq("previous_postcode")
end
it "has the correct header" do
expect(page.header).to be_nil
end
it "has the correct description" do
expect(page.description).to be_nil
end
it "has the correct depends_on" do
expect(page.depends_on).to match([{ "renewal" => 0 }])
end
end

9
spec/models/lettings_log_spec.rb

@ -1592,6 +1592,15 @@ RSpec.describe LettingsLog do
expect { lettings_log.update!(startdate: Time.zone.local(2023, 4, 1)) }.to change(lettings_log, :underoccupation_benefitcap).from(2).to nil
end
it "derives ppostcode_full as postcode_full if log is renewal" do
lettings_log.update!(renewal: 0, postcode_full: "M1 1AE", postcode_known: 1, ppostcode_full: "M1 1AD")
lettings_log.update!(renewal: 1)
lettings_log.reload
expect(lettings_log.ppostcode_full).to eq("M1 1AE")
expect(lettings_log.ppcodenk).to eq(0)
expect(lettings_log.prevloc).to eq(lettings_log.la)
end
context "when the log is general needs" do
context "and the managing organisation is a private registered provider" do
before do

12
spec/services/merge/merge_organisations_service_spec.rb

@ -334,26 +334,30 @@ RSpec.describe Merge::MergeOrganisationsService do
end
it "moves the deactivations to absorbing organisation and removes them from merging organisations" do
expected_startdate = (Time.zone.today - 6.years).in_time_zone
expect(absorbing_organisation.owned_schemes.count).to eq(1)
absorbed_scheme = absorbing_organisation.owned_schemes.first
expect(absorbed_scheme.locations.count).to eq(1)
absorbed_location = absorbed_scheme.locations.first
expect(absorbed_scheme.startdate).to eq(Time.zone.today - 6.years)
expect(absorbed_scheme.startdate).to eq(expected_startdate)
expect(absorbed_scheme.scheme_deactivation_periods.count).to eq(1)
expect(absorbed_location.startdate).to eq(Time.zone.today - 6.years)
expect(absorbed_location.startdate).to eq(expected_startdate)
expect(absorbed_location.location_deactivation_periods.count).to eq(1)
end
it "deactivates schemes and locations on the merged organisation" do
expected_deactivation_date = (Time.zone.today - 6.years).in_time_zone
expect(scheme.owning_organisation).to eq(merging_organisation)
expect(location.scheme).to eq(scheme)
expect(scheme.scheme_deactivation_periods.count).to eq(1)
expect(scheme.scheme_deactivation_periods.last.deactivation_date).to eq(Time.zone.today - 6.years)
expect(scheme.scheme_deactivation_periods.last.deactivation_date).to eq(expected_deactivation_date)
expect(location.location_deactivation_periods.count).to eq(1)
expect(location.location_deactivation_periods.last.deactivation_date).to eq(Time.zone.today - 6.years)
expect(location.location_deactivation_periods.last.deactivation_date).to eq(expected_deactivation_date)
end
end

Loading…
Cancel
Save