Browse Source

CLDC-4230: remove old nationality behaviour

CLDC-4230-prefers-not-to-say-consistency-2
Nat Dean-Lewis 2 weeks ago
parent
commit
62876a87a6
  1. 14
      app/models/form/lettings/pages/lead_tenant_nationality.rb
  2. 31
      app/models/form/lettings/questions/nationality.rb
  3. 36
      spec/models/form/lettings/questions/nationality_spec.rb

14
app/models/form/lettings/pages/lead_tenant_nationality.rb

@ -2,18 +2,14 @@ class Form::Lettings::Pages::LeadTenantNationality < ::Form::Page
def initialize(id, hsh, subsection)
super
@id = "lead_tenant_nationality"
@copy_key = "lettings.household_characteristics.#{form.start_year_2024_or_later? ? 'nationality_all' : 'national'}"
@copy_key = "lettings.household_characteristics.nationality_all"
@depends_on = [{ "declaration" => 1 }]
end
def questions
@questions ||= if form.start_year_2024_or_later?
[
Form::Lettings::Questions::NationalityAllGroup.new(nil, nil, self),
Form::Lettings::Questions::NationalityAll.new(nil, nil, self),
]
else
[Form::Lettings::Questions::Nationality.new(nil, nil, self)]
end
@questions ||= [
Form::Lettings::Questions::NationalityAllGroup.new(nil, nil, self),
Form::Lettings::Questions::NationalityAll.new(nil, nil, self),
]
end
end

31
app/models/form/lettings/questions/nationality.rb

@ -1,31 +0,0 @@
class Form::Lettings::Questions::Nationality < ::Form::Question
def initialize(id, hsh, page)
super
@id = "national"
@type = "radio"
@check_answers_card_number = 1
@answer_options = ANSWER_OPTIONS
@question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR)
end
ANSWER_OPTIONS = {
"18" => { "value" => "United Kingdom" },
"17" => { "value" => "Republic of Ireland" },
"19" => { "value" => "European Economic Area (EEA) country, excluding Ireland" },
"20" => { "value" => "Afghanistan" },
"21" => { "value" => "Ukraine" },
"12" => { "value" => "Other" },
"divider" => true,
"13" => { "value" => "Tenant prefers not to say" },
}.freeze
QUESTION_NUMBER_FROM_YEAR = { 2023 => 36, 2024 => 35, 2025 => 35, 2026 => 34 }.freeze
def label_from_value(value, _log = nil, _user = nil)
return unless value
return "Prefers not to say" if value.to_i == 13
super
end
end

36
spec/models/form/lettings/questions/nationality_spec.rb

@ -1,36 +0,0 @@
require "rails_helper"
RSpec.describe Form::Lettings::Questions::Nationality, type: :model do
subject(:question) { described_class.new(nil, nil, page) }
let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1)))) }
it "has correct page" do
expect(question.page).to eq(page)
end
it "has the correct id" do
expect(question.id).to eq("national")
end
it "has the correct type" do
expect(question.type).to eq("radio")
end
it "has the correct answer_options" do
expect(question.answer_options).to eq({
"18" => { "value" => "United Kingdom" },
"17" => { "value" => "Republic of Ireland" },
"19" => { "value" => "European Economic Area (EEA) country, excluding Ireland" },
"20" => { "value" => "Afghanistan" },
"21" => { "value" => "Ukraine" },
"12" => { "value" => "Other" },
"divider" => true,
"13" => { "value" => "Tenant prefers not to say" },
})
end
it "is not marked as derived" do
expect(question.derived?(nil)).to be false
end
end
Loading…
Cancel
Save