diff --git a/app/models/form/sales/pages/address.rb b/app/models/form/sales/pages/address.rb
index 453797d7b..aa8ab7e0d 100644
--- a/app/models/form/sales/pages/address.rb
+++ b/app/models/form/sales/pages/address.rb
@@ -15,7 +15,7 @@ class Form::Sales::Pages::Address < ::Form::Page
]
end
- def routed_to?(log, _current_user)
+ def routed_to?(log, _current_user = nil)
return false if log.uprn_known.nil?
log.uprn_confirmed != 1 || log.uprn_known.zero?
diff --git a/app/models/form/sales/pages/property_local_authority.rb b/app/models/form/sales/pages/property_local_authority.rb
index b7255c1ae..66c4b965b 100644
--- a/app/models/form/sales/pages/property_local_authority.rb
+++ b/app/models/form/sales/pages/property_local_authority.rb
@@ -9,14 +9,20 @@ class Form::Sales::Pages::PropertyLocalAuthority < ::Form::Page
def questions
@questions ||= [
- Form::Sales::Questions::PropertyLocalAuthorityKnown.new(nil, nil, self),
+ la_known_question,
Form::Sales::Questions::PropertyLocalAuthority.new(nil, nil, self),
- ]
+ ].compact
end
- def routed_to?(log, _current_user)
+ def routed_to?(log, _current_user = nil)
return false if log.uprn_known.nil? && form.start_date.year >= 2023
- super
+ true
+ end
+
+ def la_known_question
+ if form.start_date.year < 2023
+ Form::Sales::Questions::PropertyLocalAuthorityKnown.new(nil, nil, self)
+ end
end
end
diff --git a/app/models/form/sales/pages/uprn.rb b/app/models/form/sales/pages/uprn.rb
index 38b9a724c..e1835f8ca 100644
--- a/app/models/form/sales/pages/uprn.rb
+++ b/app/models/form/sales/pages/uprn.rb
@@ -10,7 +10,7 @@ class Form::Sales::Pages::Uprn < ::Form::Page
]
end
- def routed_to?(log, _current_user)
+ def routed_to?(log, _current_user = nil)
log.uprn_known == 1
end
diff --git a/app/models/form/sales/pages/uprn_confirmation.rb b/app/models/form/sales/pages/uprn_confirmation.rb
index b78590d0d..d553972a3 100644
--- a/app/models/form/sales/pages/uprn_confirmation.rb
+++ b/app/models/form/sales/pages/uprn_confirmation.rb
@@ -11,7 +11,7 @@ class Form::Sales::Pages::UprnConfirmation < ::Form::Page
]
end
- def routed_to?(log, _current_user)
+ def routed_to?(log, _current_user = nil)
log.uprn.present? && log.uprn_known == 1
end
end
diff --git a/app/models/form/sales/questions/property_local_authority.rb b/app/models/form/sales/questions/property_local_authority.rb
index d66f856ac..e405e334d 100644
--- a/app/models/form/sales/questions/property_local_authority.rb
+++ b/app/models/form/sales/questions/property_local_authority.rb
@@ -11,4 +11,8 @@ class Form::Sales::Questions::PropertyLocalAuthority < ::Form::Question
def answer_options
{ "" => "Select an option" }.merge(LocalAuthority.active(form.start_date).england.map { |la| [la.code, la.name] }.to_h)
end
+
+ def hidden_in_check_answers?(log, _current_user = nil)
+ log.saledate && log.saledate.year >= 2023
+ end
end
diff --git a/app/models/form/sales/questions/uprn.rb b/app/models/form/sales/questions/uprn.rb
index ef003bf0c..2c0b66dc8 100644
--- a/app/models/form/sales/questions/uprn.rb
+++ b/app/models/form/sales/questions/uprn.rb
@@ -20,7 +20,7 @@ class Form::Sales::Questions::Uprn < ::Form::Question
log.town_or_city,
log.county,
log.postcode_full,
- (LocalAuthority.find_by(code: log.uprn)&.name if log.uprn.present?),
+ (LocalAuthority.find_by(code: log.la)&.name if log.la.present?),
].select(&:present?)
return unless value.any?
diff --git a/app/models/form/sales/questions/uprn_known.rb b/app/models/form/sales/questions/uprn_known.rb
index 45a944e4e..9f192f7de 100644
--- a/app/models/form/sales/questions/uprn_known.rb
+++ b/app/models/form/sales/questions/uprn_known.rb
@@ -3,7 +3,7 @@ class Form::Sales::Questions::UprnKnown < ::Form::Question
super
@id = "uprn_known"
@check_answer_label = "UPRN known?"
- @header = "Do you know the sale UPRN?"
+ @header = "Do you know the property UPRN?"
@type = "radio"
@answer_options = ANSWER_OPTIONS
@hint_text = "The Unique Property Reference Number (UPRN) is a unique number system created by Ordnance Survey and used by housing providers and sectors UK-wide. For example 10010457355.
diff --git a/spec/helpers/question_view_helper_spec.rb b/spec/helpers/question_view_helper_spec.rb
index 717bd324a..d85e4bd85 100644
--- a/spec/helpers/question_view_helper_spec.rb
+++ b/spec/helpers/question_view_helper_spec.rb
@@ -83,7 +83,10 @@ RSpec.describe QuestionViewHelper do
end
context "when viewing a question with a plain label" do
- xit "returns an options hash with nil size" do
+ let(:question) { OpenStruct.new(header: "Some question header", plain_label: true) }
+
+ it "returns an options hash with nil size" do
+ expect(question_view_helper).to eq({ size: nil, tag: "div", text: "Some question header" })
end
end
end
diff --git a/spec/models/form/sales/pages/address_spec.rb b/spec/models/form/sales/pages/address_spec.rb
index 74c3f595f..d6979b6b4 100644
--- a/spec/models/form/sales/pages/address_spec.rb
+++ b/spec/models/form/sales/pages/address_spec.rb
@@ -31,7 +31,43 @@ RSpec.describe Form::Sales::Pages::Address, type: :model do
expect(page.depends_on).to be_nil
end
- xit "has correct routed_to" do
- expect(page.routed_to?).to be_nil
+ describe "has correct routed_to?" do
+ context "when uprn_known == nil" do
+ let(:log) { create(:sales_log, uprn_known: nil) }
+
+ it "returns false" do
+ expect(page.routed_to?(log)).to eq(false)
+ end
+ end
+
+ context "when uprn_confirmed != 1" do
+ let(:log) do
+ create(:sales_log, uprn_known: 1, uprn_confirmed: 0)
+ end
+
+ it "returns true" do
+ expect(page.routed_to?(log)).to eq(true)
+ end
+ end
+
+ context "when uprn_known == 0" do
+ let(:log) do
+ create(:sales_log, uprn_known: 0, uprn_confirmed: 0)
+ end
+
+ it "returns true" do
+ expect(page.routed_to?(log)).to eq(true)
+ end
+ end
+
+ context "when uprn_confirmed == 1 && uprn_known != 0" do
+ let(:log) do
+ create(:sales_log, uprn_known: 1, uprn_confirmed: 1)
+ end
+
+ it "returns true" do
+ expect(page.routed_to?(log)).to eq(false)
+ end
+ end
end
end
diff --git a/spec/models/form/sales/pages/property_local_authority_spec.rb b/spec/models/form/sales/pages/property_local_authority_spec.rb
index a699b2188..8ac3aaa03 100644
--- a/spec/models/form/sales/pages/property_local_authority_spec.rb
+++ b/spec/models/form/sales/pages/property_local_authority_spec.rb
@@ -12,13 +12,31 @@ RSpec.describe Form::Sales::Pages::PropertyLocalAuthority, type: :model do
expect(page.subsection).to eq(subsection)
end
- it "has correct questions" do
- expect(page.questions.map(&:id)).to eq(
- %w[
- la_known
- la
- ],
- )
+ describe "has correct questions" do
+ context "when 2022" do
+ let(:start_date) { Time.utc(2022, 2, 8) }
+
+ it "has correct questions" do
+ expect(page.questions.map(&:id)).to eq(
+ %w[
+ la_known
+ la
+ ],
+ )
+ end
+ end
+
+ context "when 2023" do
+ let(:start_date) { Time.utc(2023, 2, 8) }
+
+ it "has correct questions" do
+ expect(page.questions.map(&:id)).to eq(
+ %w[
+ la
+ ],
+ )
+ end
+ end
end
it "has the correct id" do
@@ -39,6 +57,32 @@ RSpec.describe Form::Sales::Pages::PropertyLocalAuthority, type: :model do
}])
end
- xit "it has the correct routed_to?" do
+ describe "has correct routed_to?" do
+ context "when start_date < 2023" do
+ let(:log) { create(:sales_log, uprn_known: 1) }
+ let(:start_date) { Time.utc(2022, 2, 8) }
+
+ it "returns false" do
+ expect(page.routed_to?(log)).to eq(true)
+ end
+ end
+
+ context "when start_date >= 2023" do
+ let(:log) { create(:sales_log, uprn_known: 1) }
+ let(:start_date) { Time.utc(2023, 2, 8) }
+
+ it "returns true" do
+ expect(page.routed_to?(log)).to eq(true)
+ end
+ end
+
+ context "when start_date < 2023 and uprn_known: nil" do
+ let(:log) { create(:sales_log, uprn_known: nil) }
+ let(:start_date) { Time.utc(2023, 2, 8) }
+
+ it "returns true" do
+ expect(page.routed_to?(log)).to eq(false)
+ end
+ end
end
end
diff --git a/spec/models/form/sales/pages/uprn_confirmation_spec.rb b/spec/models/form/sales/pages/uprn_confirmation_spec.rb
index 169317848..9deb50f02 100644
--- a/spec/models/form/sales/pages/uprn_confirmation_spec.rb
+++ b/spec/models/form/sales/pages/uprn_confirmation_spec.rb
@@ -31,7 +31,29 @@ RSpec.describe Form::Sales::Pages::UprnConfirmation, type: :model do
expect(page.depends_on).to be_nil
end
- xit "has correct routed_to" do
- expect(page.routed_to?).to be_nil
+ describe "has correct routed_to?" do
+ context "when uprn present && uprn_known == 1 " do
+ let(:log) { create(:sales_log, uprn_known: 1, uprn: "123456789") }
+
+ it "returns true" do
+ expect(page.routed_to?(log)).to eq(true)
+ end
+ end
+
+ context "when uprn = nil" do
+ let(:log) { create(:sales_log, uprn_known: 1, uprn: nil) }
+
+ it "returns false" do
+ expect(page.routed_to?(log)).to eq(false)
+ end
+ end
+
+ context "when uprn_known == 0" do
+ let(:log) { create(:sales_log, uprn_known: 0, uprn: "123456789") }
+
+ it "returns false" do
+ expect(page.routed_to?(log)).to eq(false)
+ end
+ end
end
end
diff --git a/spec/models/form/sales/pages/uprn_spec.rb b/spec/models/form/sales/pages/uprn_spec.rb
index ced40adad..37fa0f329 100644
--- a/spec/models/form/sales/pages/uprn_spec.rb
+++ b/spec/models/form/sales/pages/uprn_spec.rb
@@ -35,11 +35,39 @@ RSpec.describe Form::Sales::Pages::Uprn, type: :model do
expect(page.skip_text).to eq("Enter address instead")
end
- xit "has correct routed_to?" do
- expect(page.routed_to?).to be_nil
+ describe "has correct routed_to?" do
+ context "when uprn_known != 1" do
+ let(:log) { create(:sales_log, uprn_known: 0) }
+
+ it "returns false" do
+ expect(page.routed_to?(log)).to eq(false)
+ end
+ end
+
+ context "when uprn_known == 1" do
+ let(:log) { create(:sales_log, uprn_known: 1) }
+
+ it "returns true" do
+ expect(page.routed_to?(log)).to eq(true)
+ end
+ end
end
- xit "has correct skip_href" do
- expect(page.skip_href).to be_nil
+ describe "has correct skip_href" do
+ context "when log is nil" do
+ it "is nil" do
+ expect(page.skip_href).to be_nil
+ end
+ end
+
+ context "when log is present" do
+ let(:log) { create(:sales_log) }
+
+ it "points to address page" do
+ expect(page.skip_href(log)).to eq(
+ "/sales-logs/#{log.id}/address",
+ )
+ end
+ end
end
end
diff --git a/spec/models/form/sales/questions/property_local_authority_spec.rb b/spec/models/form/sales/questions/property_local_authority_spec.rb
index 5b4d1cb1f..bcf1ad645 100644
--- a/spec/models/form/sales/questions/property_local_authority_spec.rb
+++ b/spec/models/form/sales/questions/property_local_authority_spec.rb
@@ -667,4 +667,22 @@ RSpec.describe Form::Sales::Questions::PropertyLocalAuthority, type: :model do
})
end
end
+
+ describe "has the correct hidden_in_check_answers" do
+ context "when saledate.year before 2023" do
+ let(:log) { build(:sales_log, saledate: 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(:sales_log, saledate: Time.zone.parse("2023-07-01")) }
+
+ it "returns true" do
+ expect(question.hidden_in_check_answers?(log)).to eq(true)
+ end
+ end
+ end
end
diff --git a/spec/models/form/sales/questions/uprn_confirmation_spec.rb b/spec/models/form/sales/questions/uprn_confirmation_spec.rb
index 1b66897de..60111cc42 100644
--- a/spec/models/form/sales/questions/uprn_confirmation_spec.rb
+++ b/spec/models/form/sales/questions/uprn_confirmation_spec.rb
@@ -62,7 +62,29 @@ RSpec.describe Form::Sales::Questions::UprnConfirmation, type: :model do
end
end
- xit "has the correct hidden_in_check_answers" do
- expect(question.hidden_in_check_answers).to eq("UPRN must be 12 digits or less")
+ describe "has the correct hidden_in_check_answers" do
+ context "when uprn_known != 1 && uprn_confirmed == nil" do
+ let(:log) { create(:sales_log, uprn_known: 0, uprn_confirmed: nil) }
+
+ it "returns true" do
+ expect(question.hidden_in_check_answers?(log)).to eq(true)
+ end
+ end
+
+ context "when uprn_known == 1 && uprn_confirmed == nil" do
+ let(:log) { create(:sales_log, uprn_known: 1, uprn_confirmed: nil) }
+
+ it "returns false" do
+ expect(question.hidden_in_check_answers?(log)).to eq(false)
+ end
+ end
+
+ context "when uprn_known != 1 && uprn_confirmed == 1" do
+ let(:log) { create(:sales_log, uprn_known: 1, uprn_confirmed: 1) }
+
+ it "returns true" do
+ expect(question.hidden_in_check_answers?(log)).to eq(true)
+ end
+ end
end
end
diff --git a/spec/models/form/sales/questions/uprn_known_spec.rb b/spec/models/form/sales/questions/uprn_known_spec.rb
index 5482d1ed5..528e60a1f 100644
--- a/spec/models/form/sales/questions/uprn_known_spec.rb
+++ b/spec/models/form/sales/questions/uprn_known_spec.rb
@@ -16,7 +16,7 @@ RSpec.describe Form::Sales::Questions::UprnKnown, type: :model do
end
it "has the correct header" do
- expect(question.header).to eq("Do you know the sale UPRN?")
+ expect(question.header).to eq("Do you know the property UPRN?")
end
it "has the correct check_answer_label" do
diff --git a/spec/models/form/sales/questions/uprn_spec.rb b/spec/models/form/sales/questions/uprn_spec.rb
index cffe9ac8e..2f42c1cdd 100644
--- a/spec/models/form/sales/questions/uprn_spec.rb
+++ b/spec/models/form/sales/questions/uprn_spec.rb
@@ -41,25 +41,48 @@ RSpec.describe Form::Sales::Questions::Uprn, type: :model do
describe "get_extra_check_answer_value" do
context "when address is not present" do
- it "returns nil" do
- log = create(:sales_log)
+ let(:log) { create(:sales_log) }
+ it "returns nil" do
expect(question.get_extra_check_answer_value(log)).to be_nil
end
end
context "when address is present" do
- it "returns formatted value" do
- log = create(:sales_log, address_line1: "1, Test Street", town_or_city: "Test Town", county: "Test County", postcode_full: "AA1 1AA")
+ let(:log) do
+ create(
+ :sales_log,
+ address_line1: "1, Test Street",
+ town_or_city: "Test Town",
+ county: "Test County",
+ postcode_full: "AA1 1AA",
+ la: "E09000003",
+ )
+ end
+ it "returns formatted value" do
expect(question.get_extra_check_answer_value(log)).to eq(
- "\n\n1, Test Street\nTest Town\nTest County\nAA1 1AA",
+ "\n\n1, Test Street\nTest Town\nTest County\nAA1 1AA\nWestminster",
)
end
end
end
- xit "has the correct hidden_in_check_answers" do
- expect(question.hidden_in_check_answers).to eq("UPRN must be 12 digits or less")
+ describe "has the correct hidden_in_check_answers" do
+ context "when uprn_known == 1" do
+ let(:log) { create(:sales_log, uprn_known: 1) }
+
+ it "returns false" do
+ expect(question.hidden_in_check_answers?(log)).to eq(false)
+ end
+ end
+
+ context "when uprn_known != 1" do
+ let(:log) { create(:sales_log, uprn_known: 0) }
+
+ it "returns false" do
+ expect(question.hidden_in_check_answers?(log)).to eq(true)
+ end
+ end
end
end