Browse Source

Merge branch 'main' into CLDC-1969-completed-sections-count-bug

pull/1509/head
natdeanlewissoftwire 3 years ago
parent
commit
103c7d2538
  1. 9
      app/models/form/lettings/questions/address_line1.rb
  2. 4
      app/models/form/lettings/questions/la.rb
  3. 1
      app/models/la_sale_range.rb
  4. 4
      app/models/sales_log.rb
  5. 6
      app/models/validations/sales/soft_validations.rb
  6. 7
      app/models/validations/soft_validations.rb
  7. 30
      spec/models/form/lettings/questions/la_spec.rb
  8. 26
      spec/models/lettings_log_spec.rb
  9. 26
      spec/models/sales_log_spec.rb

9
app/models/form/lettings/questions/address_line1.rb

@ -9,15 +9,6 @@ class Form::Lettings::Questions::AddressLine1 < ::Form::Question
@check_answer_label = "Q12 - Address" @check_answer_label = "Q12 - Address"
end end
def hidden_in_check_answers?(log, _current_user = nil)
return true if log.uprn_known.nil?
return false if log.uprn_known&.zero?
return true if log.uprn_confirmed.nil? && log.uprn.present?
return true if log.uprn_known == 1 && log.uprn.blank?
log.uprn_confirmed == 1
end
def answer_label(log, _current_user = nil) def answer_label(log, _current_user = nil)
[ [
log.address_line1, log.address_line1,

4
app/models/form/lettings/questions/la.rb

@ -13,8 +13,4 @@ class Form::Lettings::Questions::La < ::Form::Question
def answer_options def answer_options
{ "" => "Select an option" }.merge(LocalAuthority.active(form.start_date).england.map { |la| [la.code, la.name] }.to_h) { "" => "Select an option" }.merge(LocalAuthority.active(form.start_date).england.map { |la| [la.code, la.name] }.to_h)
end end
def hidden_in_check_answers?(log, _current_user = nil)
log.startdate && log.startdate.year >= 2023 && log.is_la_inferred?
end
end end

1
app/models/la_sale_range.rb

@ -1,2 +1,3 @@
class LaSaleRange < ApplicationRecord class LaSaleRange < ApplicationRecord
MAX_BEDS = 4
end end

4
app/models/sales_log.rb

@ -353,4 +353,8 @@ class SalesLog < Log
mortgage_amount = mortgage || 0 mortgage_amount = mortgage || 0
mortgage_amount + deposit + grant_amount mortgage_amount + deposit + grant_amount
end end
def beds_for_la_sale_range
beds.nil? ? nil : [beds, LaSaleRange::MAX_BEDS].min
end
end end

6
app/models/validations/sales/soft_validations.rb

@ -126,6 +126,10 @@ module Validations::Sales::SoftValidations
private private
def sale_range def sale_range
LaSaleRange.find_by(start_year: collection_start_year, la:, bedrooms: beds) LaSaleRange.find_by(
start_year: collection_start_year,
la:,
bedrooms: beds_for_la_sale_range,
)
end end
end end

7
app/models/validations/soft_validations.rb

@ -28,7 +28,12 @@ module Validations::SoftValidations
def rent_in_soft_min_range? def rent_in_soft_min_range?
return unless brent && weekly_value(brent) && startdate return unless brent && weekly_value(brent) && startdate
rent_range = LaRentRange.find_by(start_year: collection_start_year, la:, beds: beds_for_la_rent_range, lettype: get_lettype) rent_range = LaRentRange.find_by(
start_year: collection_start_year,
la:,
beds: beds_for_la_rent_range,
lettype: get_lettype,
)
rent_range.present? && weekly_value(brent).between?(rent_range.hard_min, rent_range.soft_min) rent_range.present? && weekly_value(brent).between?(rent_range.hard_min, rent_range.soft_min)
end end

30
spec/models/form/lettings/questions/la_spec.rb

@ -310,34 +310,4 @@ RSpec.describe Form::Lettings::Questions::La, type: :model do
"E06000065" => "North Yorkshire", "E06000065" => "North Yorkshire",
}) })
end end
describe "has the correct hidden_in_check_answers" do
context "when saledate.year before 2023" do
let(:log) { build(:lettings_log, startdate: Time.zone.parse("2022-07-01")) }
it "returns false" do
expect(question.hidden_in_check_answers?(log)).to eq(false)
end
end
context "when saledate.year >= 2023" do
let(:log) { build(:lettings_log, startdate: Time.zone.parse("2023-07-01")) }
it "returns true" do
expect(question.hidden_in_check_answers?(log)).to eq(false)
end
end
context "when saledate.year >= 2023 and la inferred" do
let(:log) { build(:lettings_log, startdate: Time.zone.parse("2023-07-01")) }
before do
allow(log).to receive(:is_la_inferred?).and_return(true)
end
it "returns true" do
expect(question.hidden_in_check_answers?(log)).to eq(true)
end
end
end
end end

26
spec/models/lettings_log_spec.rb

@ -3086,5 +3086,31 @@ RSpec.describe LettingsLog do
end end
end end
end end
describe "#beds_for_la_rent_range" do
context "when beds nil" do
let(:lettings_log) { build(:lettings_log, beds: nil) }
it "returns nil" do
expect(lettings_log.beds_for_la_rent_range).to be_nil
end
end
context "when beds <= 4" do
let(:lettings_log) { build(:lettings_log, beds: 4) }
it "returns number of beds" do
expect(lettings_log.beds_for_la_rent_range).to eq(4)
end
end
context "when beds > 4" do
let(:lettings_log) { build(:lettings_log, beds: 40) }
it "returns max number of beds" do
expect(lettings_log.beds_for_la_rent_range).to eq(4)
end
end
end
end end
# rubocop:enable RSpec/AnyInstance # rubocop:enable RSpec/AnyInstance

26
spec/models/sales_log_spec.rb

@ -579,5 +579,31 @@ RSpec.describe SalesLog, type: :model do
end end
end end
end end
describe "#beds_for_la_sale_range" do
context "when beds nil" do
let(:sales_log) { build(:sales_log, beds: nil) }
it "returns nil" do
expect(sales_log.beds_for_la_sale_range).to be_nil
end
end
context "when beds <= 4" do
let(:sales_log) { build(:sales_log, beds: 4) }
it "returns number of beds" do
expect(sales_log.beds_for_la_sale_range).to eq(4)
end
end
context "when beds > 4" do
let(:sales_log) { build(:sales_log, beds: 40) }
it "returns max number of beds" do
expect(sales_log.beds_for_la_sale_range).to eq(4)
end
end
end
end end
# rubocop:enable RSpec/AnyInstance # rubocop:enable RSpec/AnyInstance

Loading…
Cancel
Save