5 changed files with 321 additions and 1 deletions
@ -0,0 +1,218 @@
|
||||
class Form::Lettings::Questions::NationalityAll < ::Form::Question |
||||
def initialize(id, hsh, page) |
||||
super |
||||
@id = "nationality_all" |
||||
@check_answer_label = "Lead tenant’s nationality" |
||||
@header = "Enter a nationality" |
||||
@type = "select" |
||||
@check_answers_card_number = 1 |
||||
@answer_options = ANSWER_OPTIONS |
||||
@question_number = 36 |
||||
end |
||||
|
||||
ANSWER_OPTIONS = { |
||||
"" => "Select an option", |
||||
"4" => "Afghanistan", |
||||
"8" => "Albania", |
||||
"12" => "Algeria", |
||||
"20" => "Andorra", |
||||
"24" => "Angola", |
||||
"28" => "Antigua and Barbuda", |
||||
"32" => "Argentina", |
||||
"51" => "Armenia", |
||||
"36" => "Australia", |
||||
"40" => "Austria", |
||||
"31" => "Azerbaijan", |
||||
"44" => "Bahamas", |
||||
"48" => "Bahrain", |
||||
"50" => "Bangladesh", |
||||
"52" => "Barbados", |
||||
"112" => "Belarus", |
||||
"56" => "Belgium", |
||||
"84" => "Belize", |
||||
"204" => "Benin", |
||||
"64" => "Bhutan", |
||||
"68" => "Bolivia", |
||||
"70" => "Bosnia and Herzegovina", |
||||
"72" => "Botswana", |
||||
"76" => "Brazil", |
||||
"96" => "Brunei", |
||||
"100" => "Bulgaria", |
||||
"854" => "Burkina Faso", |
||||
"108" => "Burundi", |
||||
"132" => "Cabo Verde", |
||||
"116" => "Cambodia", |
||||
"120" => "Cameroon", |
||||
"124" => "Canada", |
||||
"140" => "Central African Republic", |
||||
"148" => "Chad", |
||||
"152" => "Chile", |
||||
"156" => "China", |
||||
"170" => "Colombia", |
||||
"174" => "Comoros", |
||||
"178" => "Congo", |
||||
"188" => "Costa Rica", |
||||
"384" => "Côte d'Ivoire", |
||||
"191" => "Croatia", |
||||
"192" => "Cuba", |
||||
"196" => "Cyprus", |
||||
"203" => "Czechia", |
||||
"180" => "Democratic Republic of the Congo", |
||||
"208" => "Denmark", |
||||
"262" => "Djibouti", |
||||
"212" => "Dominica", |
||||
"214" => "Dominican Republic", |
||||
"218" => "Ecuador", |
||||
"818" => "Egypt", |
||||
"222" => "El Salvador", |
||||
"226" => "Equatorial Guinea", |
||||
"232" => "Eritrea", |
||||
"233" => "Estonia", |
||||
"748" => "Eswatini", |
||||
"231" => "Ethiopia", |
||||
"238" => "Falkland Islands", |
||||
"242" => "Fiji", |
||||
"246" => "Finland", |
||||
"250" => "France", |
||||
"266" => "Gabon", |
||||
"270" => "Gambia", |
||||
"268" => "Georgia", |
||||
"276" => "Germany", |
||||
"288" => "Ghana", |
||||
"292" => "Gibraltar", |
||||
"300" => "Greece", |
||||
"308" => "Grenada", |
||||
"320" => "Guatemala", |
||||
"831" => "Guernsey", |
||||
"324" => "Guinea", |
||||
"624" => "Guinea-Bissau", |
||||
"328" => "Guyana", |
||||
"332" => "Haiti", |
||||
"340" => "Honduras", |
||||
"344" => "Hong Kong", |
||||
"348" => "Hungary", |
||||
"352" => "Iceland", |
||||
"356" => "India", |
||||
"360" => "Indonesia", |
||||
"364" => "Iran", |
||||
"368" => "Iraq", |
||||
"372" => "Ireland", |
||||
"833" => "Isle of Man", |
||||
"376" => "Israel", |
||||
"380" => "Italy", |
||||
"388" => "Jamaica", |
||||
"392" => "Japan", |
||||
"832" => "Jersey", |
||||
"400" => "Jordan", |
||||
"398" => "Kazakhstan", |
||||
"404" => "Kenya", |
||||
"296" => "Kiribati", |
||||
"414" => "Kuwait", |
||||
"417" => "Kyrgyzstan", |
||||
"418" => "Laos", |
||||
"428" => "Latvia", |
||||
"422" => "Lebanon", |
||||
"426" => "Lesotho", |
||||
"430" => "Liberia", |
||||
"434" => "Libya", |
||||
"438" => "Liechtenstein", |
||||
"440" => "Lithuania", |
||||
"442" => "Luxembourg", |
||||
"450" => "Madagascar", |
||||
"454" => "Malawi", |
||||
"458" => "Malaysia", |
||||
"462" => "Maldives", |
||||
"466" => "Mali", |
||||
"470" => "Malta", |
||||
"584" => "Marshall Islands", |
||||
"478" => "Mauritania", |
||||
"480" => "Mauritius", |
||||
"484" => "Mexico", |
||||
"583" => "Micronesia (Federated States of)", |
||||
"498" => "Moldova", |
||||
"492" => "Monaco", |
||||
"496" => "Mongolia", |
||||
"499" => "Montenegro", |
||||
"504" => "Morocco", |
||||
"508" => "Mozambique", |
||||
"104" => "Myanmar", |
||||
"516" => "Namibia", |
||||
"520" => "Nauru", |
||||
"524" => "Nepal", |
||||
"528" => "Netherlands", |
||||
"554" => "New Zealand", |
||||
"558" => "Nicaragua", |
||||
"562" => "Niger", |
||||
"566" => "Nigeria", |
||||
"807" => "North Macedonia", |
||||
"408" => "North Korea", |
||||
"578" => "Norway", |
||||
"512" => "Oman", |
||||
"586" => "Pakistan", |
||||
"585" => "Palau", |
||||
"275" => "Palestine, State of", |
||||
"591" => "Panama", |
||||
"598" => "Papua New Guinea", |
||||
"600" => "Paraguay", |
||||
"604" => "Peru", |
||||
"608" => "Philippines", |
||||
"616" => "Poland", |
||||
"620" => "Portugal", |
||||
"634" => "Qatar", |
||||
"642" => "Romania", |
||||
"643" => "Russia", |
||||
"646" => "Rwanda", |
||||
"659" => "Saint Kitts and Nevis", |
||||
"662" => "Saint Lucia", |
||||
"670" => "Saint Vincent and the Grenadines", |
||||
"882" => "Samoa", |
||||
"674" => "San Marino", |
||||
"678" => "Sao Tome and Principe", |
||||
"682" => "Saudi Arabia", |
||||
"686" => "Senegal", |
||||
"688" => "Serbia", |
||||
"690" => "Seychelles", |
||||
"694" => "Sierra Leone", |
||||
"702" => "Singapore", |
||||
"703" => "Slovakia", |
||||
"705" => "Slovenia", |
||||
"90" => "Solomon Islands", |
||||
"706" => "Somalia", |
||||
"710" => "South Africa", |
||||
"410" => "South Korea", |
||||
"728" => "South Sudan", |
||||
"724" => "Spain", |
||||
"144" => "Sri Lanka", |
||||
"729" => "Sudan", |
||||
"740" => "Suriname", |
||||
"752" => "Sweden", |
||||
"756" => "Switzerland", |
||||
"760" => "Syria", |
||||
"158" => "Taiwan", |
||||
"762" => "Tajikistan", |
||||
"834" => "Tanzania", |
||||
"764" => "Thailand", |
||||
"626" => "Timor-Leste", |
||||
"768" => "Togo", |
||||
"776" => "Tonga", |
||||
"780" => "Trinidad and Tobago", |
||||
"788" => "Tunisia", |
||||
"792" => "Turkey", |
||||
"795" => "Turkmenistan", |
||||
"798" => "Tuvalu", |
||||
"800" => "Uganda", |
||||
"804" => "Ukraine", |
||||
"784" => "United Arab Emirates", |
||||
"826" => "United Kingdom", |
||||
"840" => "United States of America", |
||||
"858" => "Uruguay", |
||||
"860" => "Uzbekistan", |
||||
"548" => "Vanuatu", |
||||
"336" => "Vatican City", |
||||
"862" => "Venezuela", |
||||
"704" => "Vietnam", |
||||
"887" => "Yemen", |
||||
"894" => "Zambia", |
||||
"716" => "Zimbabwe", |
||||
}.freeze |
||||
end |
||||
@ -0,0 +1,21 @@
|
||||
class Form::Lettings::Questions::NationalityAllGroup < ::Form::Question |
||||
def initialize(id, hsh, page) |
||||
super |
||||
@id = "nationality_all_group" |
||||
@check_answer_label = "Lead tenant’s nationality" |
||||
@header = "What is the nationality of the lead tenant?" |
||||
@type = "radio" |
||||
@check_answers_card_number = 1 |
||||
@hint_text = "The lead tenant is the person in the household who does the most paid work. If several people do the same paid work, the lead tenant is whoever is the oldest." |
||||
@answer_options = ANSWER_OPTIONS |
||||
@question_number = 36 |
||||
@conditional_for = { "nationality_all" => [12] } |
||||
@hidden_in_check_answers = { "depends_on" => [{ "nationality_all_group" => 12 }] } |
||||
end |
||||
|
||||
ANSWER_OPTIONS = { |
||||
"826" => { "value" => "United Kingdom" }, |
||||
"12" => { "value" => "Other" }, |
||||
"13" => { "value" => "Tenant prefers not to say" }, |
||||
}.freeze |
||||
end |
||||
@ -0,0 +1,39 @@
|
||||
require "rails_helper" |
||||
|
||||
RSpec.describe Form::Lettings::Questions::NationalityAllGroup, type: :model do |
||||
subject(:question) { described_class.new(nil, nil, page) } |
||||
|
||||
let(:page) { instance_double(Form::Page) } |
||||
|
||||
it "has correct page" do |
||||
expect(question.page).to eq(page) |
||||
end |
||||
|
||||
it "has the correct id" do |
||||
expect(question.id).to eq("nationality_all_group") |
||||
end |
||||
|
||||
it "has the correct header" do |
||||
expect(question.header).to eq("What is the nationality of the lead tenant?") |
||||
end |
||||
|
||||
it "has the correct check_answer_label" do |
||||
expect(question.check_answer_label).to eq("Lead tenant’s nationality") |
||||
end |
||||
|
||||
it "has the correct type" do |
||||
expect(question.type).to eq("radio") |
||||
end |
||||
|
||||
it "has the correct hint_text" do |
||||
expect(question.hint_text).to eq("The lead tenant is the person in the household who does the most paid work. If several people do the same paid work, the lead tenant is whoever is the oldest.") |
||||
end |
||||
|
||||
it "has the correct answer_options" do |
||||
expect(question.answer_options).to eq({ |
||||
"826" => { "value" => "United Kingdom" }, |
||||
"12" => { "value" => "Other" }, |
||||
"13" => { "value" => "Tenant prefers not to say" }, |
||||
}) |
||||
end |
||||
end |
||||
@ -0,0 +1,35 @@
|
||||
require "rails_helper" |
||||
|
||||
RSpec.describe Form::Lettings::Questions::NationalityAll, type: :model do |
||||
subject(:question) { described_class.new(nil, nil, page) } |
||||
|
||||
let(:page) { instance_double(Form::Page) } |
||||
|
||||
it "has correct page" do |
||||
expect(question.page).to eq(page) |
||||
end |
||||
|
||||
it "has the correct id" do |
||||
expect(question.id).to eq("nationality_all") |
||||
end |
||||
|
||||
it "has the correct header" do |
||||
expect(question.header).to eq("Enter a nationality") |
||||
end |
||||
|
||||
it "has the correct check_answer_label" do |
||||
expect(question.check_answer_label).to eq("Lead tenant’s nationality") |
||||
end |
||||
|
||||
it "has the correct type" do |
||||
expect(question.type).to eq("select") |
||||
end |
||||
|
||||
it "has the correct hint_text" do |
||||
expect(question.hint_text).to be_nil |
||||
end |
||||
|
||||
it "has the correct answer_options" do |
||||
expect(question.answer_options.count).to eq(203) |
||||
end |
||||
end |
||||
Loading…
Reference in new issue