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 = 32 if owning_organisation&.provider_type == "PRP"
self.prevten = 30 if owning_organisation&.provider_type == "LA" self.prevten = 30 if owning_organisation&.provider_type == "LA"
end 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 end
if form.start_year_after_2024? && is_bedsit? if form.start_year_after_2024? && is_bedsit?
self.beds = 1 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) def initialize(id, hsh, subsection)
super super
@id = "previous_local_authority" @id = "previous_local_authority"
@depends_on = [{ "is_previous_la_inferred" => false }] @depends_on = [{ "is_previous_la_inferred" => false, "renewal" => 0 }]
end end
def questions def questions

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

@ -1,4 +1,9 @@
class Form::Lettings::Pages::PreviousPostcode < ::Form::Page class Form::Lettings::Pages::PreviousPostcode < ::Form::Page
def initialize(id, hsh, page)
super
@depends_on = [{ "renewal" => 0 }]
end
def questions def questions
@questions ||= [ @questions ||= [
Form::Lettings::Questions::Ppcodenk.new(nil, nil, self), 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.previous_la_known = log.la.present? ? 1 : 0
log.prevloc = log.la log.prevloc = log.la
log.values_updated_at = Time.zone.now 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
end end

1
spec/features/form/accessible_autocomplete_spec.rb

@ -17,6 +17,7 @@ RSpec.describe "Accessible Autocomplete" do
FactoryBot.create( FactoryBot.create(
:lettings_log, :lettings_log,
:in_progress, :in_progress,
renewal: 0,
previous_la_known: 1, previous_la_known: 1,
prevloc: "E09000033", prevloc: "E09000033",
illness: 1, 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) expect(log.values_updated_at).to eq(nil)
end end
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 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 expect { lettings_log.update!(startdate: Time.zone.local(2023, 4, 1)) }.to change(lettings_log, :underoccupation_benefitcap).from(2).to nil
end 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 "when the log is general needs" do
context "and the managing organisation is a private registered provider" do context "and the managing organisation is a private registered provider" do
before do before do

12
spec/services/merge/merge_organisations_service_spec.rb

@ -334,26 +334,30 @@ RSpec.describe Merge::MergeOrganisationsService do
end end
it "moves the deactivations to absorbing organisation and removes them from merging organisations" do 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) expect(absorbing_organisation.owned_schemes.count).to eq(1)
absorbed_scheme = absorbing_organisation.owned_schemes.first absorbed_scheme = absorbing_organisation.owned_schemes.first
expect(absorbed_scheme.locations.count).to eq(1) expect(absorbed_scheme.locations.count).to eq(1)
absorbed_location = absorbed_scheme.locations.first 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_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) expect(absorbed_location.location_deactivation_periods.count).to eq(1)
end end
it "deactivates schemes and locations on the merged organisation" do 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(scheme.owning_organisation).to eq(merging_organisation)
expect(location.scheme).to eq(scheme) expect(location.scheme).to eq(scheme)
expect(scheme.scheme_deactivation_periods.count).to eq(1) 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.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
end end

Loading…
Cancel
Save