Browse Source
			
			
			
			
				
		# Conflicts: # app/models/form/sales/pages/buyer_company.rb # spec/models/form/sales/pages/buyer_company_spec.rb # spec/models/form/sales/subsections/setup_spec.rb # spec/models/form_handler_spec.rbCLDC-1482-sales-log-buyer-company^2
				 114 changed files with 3651 additions and 926 deletions
			
			
		@ -0,0 +1,5 @@
					 | 
				
			||||
module DerivedVariables::SalesLogVariables | 
				
			||||
  def set_derived_fields! | 
				
			||||
    self.ethnic = 17 if ethnic_refused? | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,18 @@
					 | 
				
			||||
class Form::Sales::Pages::Buyer1EthnicBackgroundArab < ::Form::Page | 
				
			||||
  def initialize(id, hsh, subsection) | 
				
			||||
    super | 
				
			||||
    @id = "buyer_1_ethnic_background_arab" | 
				
			||||
    @header = "" | 
				
			||||
    @description = "" | 
				
			||||
    @subsection = subsection | 
				
			||||
    @depends_on = [{ | 
				
			||||
      "ethnic_group" => 4, | 
				
			||||
    }] | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  def questions | 
				
			||||
    @questions ||= [ | 
				
			||||
      Form::Sales::Questions::Buyer1EthnicBackgroundArab.new(nil, nil, self), | 
				
			||||
    ] | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,18 @@
					 | 
				
			||||
class Form::Sales::Pages::Buyer1EthnicBackgroundAsian < ::Form::Page | 
				
			||||
  def initialize(id, hsh, subsection) | 
				
			||||
    super | 
				
			||||
    @id = "buyer_1_ethnic_background_asian" | 
				
			||||
    @header = "" | 
				
			||||
    @description = "" | 
				
			||||
    @subsection = subsection | 
				
			||||
    @depends_on = [{ | 
				
			||||
      "ethnic_group" => 2, | 
				
			||||
    }] | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  def questions | 
				
			||||
    @questions ||= [ | 
				
			||||
      Form::Sales::Questions::Buyer1EthnicBackgroundAsian.new(nil, nil, self), | 
				
			||||
    ] | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,18 @@
					 | 
				
			||||
class Form::Sales::Pages::Buyer1EthnicBackgroundBlack < ::Form::Page | 
				
			||||
  def initialize(id, hsh, subsection) | 
				
			||||
    super | 
				
			||||
    @id = "buyer_1_ethnic_background_black" | 
				
			||||
    @header = "" | 
				
			||||
    @description = "" | 
				
			||||
    @subsection = subsection | 
				
			||||
    @depends_on = [{ | 
				
			||||
      "ethnic_group" => 3, | 
				
			||||
    }] | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  def questions | 
				
			||||
    @questions ||= [ | 
				
			||||
      Form::Sales::Questions::Buyer1EthnicBackgroundBlack.new(nil, nil, self), | 
				
			||||
    ] | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,18 @@
					 | 
				
			||||
class Form::Sales::Pages::Buyer1EthnicBackgroundMixed < ::Form::Page | 
				
			||||
  def initialize(id, hsh, subsection) | 
				
			||||
    super | 
				
			||||
    @id = "buyer_1_ethnic_background_mixed" | 
				
			||||
    @header = "" | 
				
			||||
    @description = "" | 
				
			||||
    @subsection = subsection | 
				
			||||
    @depends_on = [{ | 
				
			||||
      "ethnic_group" => 1, | 
				
			||||
    }] | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  def questions | 
				
			||||
    @questions ||= [ | 
				
			||||
      Form::Sales::Questions::Buyer1EthnicBackgroundMixed.new(nil, nil, self), | 
				
			||||
    ] | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,18 @@
					 | 
				
			||||
class Form::Sales::Pages::Buyer1EthnicBackgroundWhite < ::Form::Page | 
				
			||||
  def initialize(id, hsh, subsection) | 
				
			||||
    super | 
				
			||||
    @id = "buyer_1_ethnic_background_white" | 
				
			||||
    @header = "" | 
				
			||||
    @description = "" | 
				
			||||
    @subsection = subsection | 
				
			||||
    @depends_on = [{ | 
				
			||||
      "ethnic_group" => 0, | 
				
			||||
    }] | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  def questions | 
				
			||||
    @questions ||= [ | 
				
			||||
      Form::Sales::Questions::Buyer1EthnicBackgroundWhite.new(nil, nil, self), | 
				
			||||
    ] | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,15 @@
					 | 
				
			||||
class Form::Sales::Pages::Buyer1EthnicGroup < ::Form::Page | 
				
			||||
  def initialize(id, hsh, subsection) | 
				
			||||
    super | 
				
			||||
    @id = "buyer_1_ethnic_group" | 
				
			||||
    @header = "" | 
				
			||||
    @description = "" | 
				
			||||
    @subsection = subsection | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  def questions | 
				
			||||
    @questions ||= [ | 
				
			||||
      Form::Sales::Questions::Buyer1EthnicGroup.new(nil, nil, self), | 
				
			||||
    ] | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,15 @@
					 | 
				
			||||
class Form::Sales::Pages::Buyer1WorkingSituation < ::Form::Page | 
				
			||||
  def initialize(id, hsh, subsection) | 
				
			||||
    super | 
				
			||||
    @id = "buyer_1_working_situation" | 
				
			||||
    @header = "Which of these best describes buyer 1's working situation?" | 
				
			||||
    @description = "" | 
				
			||||
    @subsection = subsection | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  def questions | 
				
			||||
    @questions ||= [ | 
				
			||||
      Form::Sales::Questions::Buyer1WorkingSituation.new(nil, nil, self), | 
				
			||||
    ] | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,15 @@
					 | 
				
			||||
class Form::Sales::Pages::Buyer2LiveInProperty < ::Form::Page | 
				
			||||
  def initialize(id, hsh, subsection) | 
				
			||||
    super | 
				
			||||
    @id = "buyer_2_live_in_property" | 
				
			||||
    @header = "" | 
				
			||||
    @description = "" | 
				
			||||
    @subsection = subsection | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  def questions | 
				
			||||
    @questions ||= [ | 
				
			||||
      Form::Sales::Questions::Buyer2LiveInProperty.new(nil, nil, self), | 
				
			||||
    ] | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,15 @@
					 | 
				
			||||
class Form::Sales::Pages::Buyer2WorkingSituation < ::Form::Page | 
				
			||||
  def initialize(id, hsh, subsection) | 
				
			||||
    super | 
				
			||||
    @id = "buyer_2_working_situation" | 
				
			||||
    @header = "" | 
				
			||||
    @description = "" | 
				
			||||
    @subsection = subsection | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  def questions | 
				
			||||
    @questions ||= [ | 
				
			||||
      Form::Sales::Questions::Buyer2WorkingSituation.new(nil, nil, self), | 
				
			||||
    ] | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,15 @@
					 | 
				
			||||
class Form::Sales::Pages::BuyerInterview < ::Form::Page | 
				
			||||
  def initialize(id, hsh, subsection) | 
				
			||||
    super | 
				
			||||
    @id = "buyer_interview" | 
				
			||||
    @header = "" | 
				
			||||
    @description = "" | 
				
			||||
    @subsection = subsection | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  def questions | 
				
			||||
    @questions ||= [ | 
				
			||||
      Form::Sales::Questions::BuyerInterview.new(nil, nil, self), | 
				
			||||
    ] | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,18 @@
					 | 
				
			||||
class Form::Sales::Pages::GenderIdentity2 < ::Form::Page | 
				
			||||
  def initialize(id, hsh, subsection) | 
				
			||||
    super | 
				
			||||
    @id = "buyer_2_gender_identity" | 
				
			||||
    @header = "" | 
				
			||||
    @description = "" | 
				
			||||
    @subsection = subsection | 
				
			||||
    @depends_on = [{ | 
				
			||||
      "jointpur" => 1, | 
				
			||||
    }] | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  def questions | 
				
			||||
    @questions ||= [ | 
				
			||||
      Form::Sales::Questions::GenderIdentity2.new(nil, nil, self), | 
				
			||||
    ] | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,15 @@
					 | 
				
			||||
class Form::Sales::Pages::HouseholdWheelchair < ::Form::Page | 
				
			||||
  def initialize(id, hsh, subsection) | 
				
			||||
    super | 
				
			||||
    @id = "household_wheelchair" | 
				
			||||
    @header = "" | 
				
			||||
    @description = "" | 
				
			||||
    @subsection = subsection | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  def questions | 
				
			||||
    @questions ||= [ | 
				
			||||
      Form::Sales::Questions::HouseholdWheelchair.new(nil, nil, self), | 
				
			||||
    ] | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,16 @@
					 | 
				
			||||
class Form::Sales::Pages::Nationality1 < ::Form::Page | 
				
			||||
  def initialize(id, hsh, subsection) | 
				
			||||
    super | 
				
			||||
    @id = "buyer_1_nationality" | 
				
			||||
    @header = "" | 
				
			||||
    @description = "" | 
				
			||||
    @subsection = subsection | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  def questions | 
				
			||||
    @questions ||= [ | 
				
			||||
      Form::Sales::Questions::Nationality1.new(nil, nil, self), | 
				
			||||
      Form::Sales::Questions::OtherNationality1.new(nil, nil, self), | 
				
			||||
    ] | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,15 @@
					 | 
				
			||||
class Form::Sales::Pages::NumberOfOthersInProperty < ::Form::Page | 
				
			||||
  def initialize(id, hsh, subsection) | 
				
			||||
    super | 
				
			||||
    @id = "number_of_others_in_property" | 
				
			||||
    @header = "" | 
				
			||||
    @description = "" | 
				
			||||
    @subsection = subsection | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  def questions | 
				
			||||
    @questions ||= [ | 
				
			||||
      Form::Sales::Questions::NumberOfOthersInProperty.new(nil, nil, self), | 
				
			||||
    ] | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,18 @@
					 | 
				
			||||
class Form::Sales::Pages::PrivacyNotice < ::Form::Page | 
				
			||||
  def initialize(id, hsh, subsection) | 
				
			||||
    super | 
				
			||||
    @id = "privacy_notice" | 
				
			||||
    @header = "Department for Levelling Up, Housing and Communities privacy notice" | 
				
			||||
    @description = "" | 
				
			||||
    @subsection = subsection | 
				
			||||
    @depends_on = [{ | 
				
			||||
      "noint" => 1, | 
				
			||||
    }] | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  def questions | 
				
			||||
    @questions ||= [ | 
				
			||||
      Form::Sales::Questions::PrivacyNotice.new(nil, nil, self), | 
				
			||||
    ] | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,17 @@
					 | 
				
			||||
class Form::Sales::Questions::Buyer1EthnicBackgroundArab < ::Form::Question | 
				
			||||
  def initialize(id, hsh, page) | 
				
			||||
    super | 
				
			||||
    @id = "ethnic" | 
				
			||||
    @check_answer_label = "Buyer 1’s ethnic background" | 
				
			||||
    @header = "Which of the following best describes the buyer 1’s Arab background?" | 
				
			||||
    @type = "radio" | 
				
			||||
    @answer_options = ANSWER_OPTIONS | 
				
			||||
    @page = page | 
				
			||||
    @hint_text = "Buyer 1 is the person in the household who does the most paid work. If it’s a joint purchase and the buyers do the same amount of paid work, buyer 1 is whoever is the oldest." | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  ANSWER_OPTIONS = { | 
				
			||||
    "19" => { "value" => "Arab" }, | 
				
			||||
    "16" => { "value" => "Other ethnic group" }, | 
				
			||||
  }.freeze | 
				
			||||
end | 
				
			||||
@ -0,0 +1,20 @@
					 | 
				
			||||
class Form::Sales::Questions::Buyer1EthnicBackgroundAsian < ::Form::Question | 
				
			||||
  def initialize(id, hsh, page) | 
				
			||||
    super | 
				
			||||
    @id = "ethnic" | 
				
			||||
    @check_answer_label = "Buyer 1’s ethnic background" | 
				
			||||
    @header = "Which of the following best describes the buyer 1’s Asian or Asian British background?" | 
				
			||||
    @type = "radio" | 
				
			||||
    @answer_options = ANSWER_OPTIONS | 
				
			||||
    @page = page | 
				
			||||
    @hint_text = "Buyer 1 is the person in the household who does the most paid work. If it’s a joint purchase and the buyers do the same amount of paid work, buyer 1 is whoever is the oldest." | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  ANSWER_OPTIONS = { | 
				
			||||
    "10" => { "value" => "Bangladeshi" }, | 
				
			||||
    "15" => { "value" => "Chinese" }, | 
				
			||||
    "8" => { "value" => "Indian" }, | 
				
			||||
    "9" => { "value" => "Pakistani" }, | 
				
			||||
    "11" => { "value" => "Any other Asian or Asian British background" }, | 
				
			||||
  }.freeze | 
				
			||||
end | 
				
			||||
@ -0,0 +1,18 @@
					 | 
				
			||||
class Form::Sales::Questions::Buyer1EthnicBackgroundBlack < ::Form::Question | 
				
			||||
  def initialize(id, hsh, page) | 
				
			||||
    super | 
				
			||||
    @id = "ethnic" | 
				
			||||
    @check_answer_label = "Buyer 1’s ethnic background" | 
				
			||||
    @header = "Which of the following best describes the buyer 1’s Black, African, Caribbean or Black British background?" | 
				
			||||
    @type = "radio" | 
				
			||||
    @answer_options = ANSWER_OPTIONS | 
				
			||||
    @page = page | 
				
			||||
    @hint_text = "Buyer 1 is the person in the household who does the most paid work. If it’s a joint purchase and the buyers do the same amount of paid work, buyer 1 is whoever is the oldest." | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  ANSWER_OPTIONS = { | 
				
			||||
    "13" => { "value" => "African" }, | 
				
			||||
    "12" => { "value" => "Caribbean" }, | 
				
			||||
    "14" => { "value" => "Any other Black, African or Caribbean background" }, | 
				
			||||
  }.freeze | 
				
			||||
end | 
				
			||||
@ -0,0 +1,19 @@
					 | 
				
			||||
class Form::Sales::Questions::Buyer1EthnicBackgroundMixed < ::Form::Question | 
				
			||||
  def initialize(id, hsh, page) | 
				
			||||
    super | 
				
			||||
    @id = "ethnic" | 
				
			||||
    @check_answer_label = "Buyer 1’s ethnic background" | 
				
			||||
    @header = "Which of the following best describes the buyer 1’s Mixed or Multiple ethnic groups background?" | 
				
			||||
    @type = "radio" | 
				
			||||
    @answer_options = ANSWER_OPTIONS | 
				
			||||
    @page = page | 
				
			||||
    @hint_text = "Buyer 1 is the person in the household who does the most paid work. If it’s a joint purchase and the buyers do the same amount of paid work, buyer 1 is whoever is the oldest." | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  ANSWER_OPTIONS = { | 
				
			||||
    "4" => { "value" => "White and Black Caribbean" }, | 
				
			||||
    "5" => { "value" => "White and Black African" }, | 
				
			||||
    "6" => { "value" => "White and Asian" }, | 
				
			||||
    "7" => { "value" => "Any other Mixed or Multiple ethnic background" }, | 
				
			||||
  }.freeze | 
				
			||||
end | 
				
			||||
@ -0,0 +1,19 @@
					 | 
				
			||||
class Form::Sales::Questions::Buyer1EthnicBackgroundWhite < ::Form::Question | 
				
			||||
  def initialize(id, hsh, page) | 
				
			||||
    super | 
				
			||||
    @id = "ethnic" | 
				
			||||
    @check_answer_label = "Buyer 1’s ethnic background" | 
				
			||||
    @header = "Which of the following best describes the buyer 1’s White background?" | 
				
			||||
    @type = "radio" | 
				
			||||
    @answer_options = ANSWER_OPTIONS | 
				
			||||
    @page = page | 
				
			||||
    @hint_text = "Buyer 1 is the person in the household who does the most paid work. If it’s a joint purchase and the buyers do the same amount of paid work, buyer 1 is whoever is the oldest." | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  ANSWER_OPTIONS = { | 
				
			||||
    "1" => { "value" => "English, Welsh, Northern Irish, Scottish or British" }, | 
				
			||||
    "2" => { "value" => "Irish" }, | 
				
			||||
    "18" => { "value" => "Gypsy or Irish Traveller" }, | 
				
			||||
    "3" => { "value" => "Any other White background" }, | 
				
			||||
  }.freeze | 
				
			||||
end | 
				
			||||
@ -0,0 +1,28 @@
					 | 
				
			||||
class Form::Sales::Questions::Buyer1EthnicGroup < ::Form::Question | 
				
			||||
  def initialize(id, hsh, page) | 
				
			||||
    super | 
				
			||||
    @id = "ethnic_group" | 
				
			||||
    @check_answer_label = "Buyer 1’s ethnic group" | 
				
			||||
    @header = "What is buyer 1’s ethnic group?" | 
				
			||||
    @type = "radio" | 
				
			||||
    @answer_options = ANSWER_OPTIONS | 
				
			||||
    @page = page | 
				
			||||
    @hint_text = "Buyer 1 is the person in the household who does the most paid work. If it’s a joint purchase and the buyers do the same amount of paid work, buyer 1 is whoever is the oldest." | 
				
			||||
    @inferred_check_answers_value = { | 
				
			||||
      "condition" => { | 
				
			||||
        "ethnic_group" => 17, | 
				
			||||
      }, | 
				
			||||
      "value" => "Prefers not to say", | 
				
			||||
    } | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  ANSWER_OPTIONS = { | 
				
			||||
    "0" => { "value" => "White" }, | 
				
			||||
    "1" => { "value" => "Mixed or Multiple ethnic groups" }, | 
				
			||||
    "2" => { "value" => "Asian or Asian British" }, | 
				
			||||
    "3" => { "value" => "Black, African, Caribbean or Black British" }, | 
				
			||||
    "4" => { "value" => "Arab or other ethnic group" }, | 
				
			||||
    "divider" => { "value" => true }, | 
				
			||||
    "17" => { "value" => "Buyer 1 prefers not to say" }, | 
				
			||||
  }.freeze | 
				
			||||
end | 
				
			||||
@ -0,0 +1,26 @@
					 | 
				
			||||
class Form::Sales::Questions::Buyer1WorkingSituation < ::Form::Question | 
				
			||||
  def initialize(id, hsh, page) | 
				
			||||
    super | 
				
			||||
    @id = "ecstat1" | 
				
			||||
    @check_answer_label = "Buyer 1's working situation" | 
				
			||||
    @header = "Which of these best describes buyer 1's working situation?" | 
				
			||||
    @type = "radio" | 
				
			||||
    @answer_options = ANSWER_OPTIONS | 
				
			||||
    @page = page | 
				
			||||
    @hint_text = "Buyer 1 is the person in the household who does the most paid work. If it's a joint purchase and the buyers do the same amount of paid work, buyer 1 is whoever is the oldest." | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  ANSWER_OPTIONS = { | 
				
			||||
    "2" => { "value" => "Part-time - Less than 30 hours" }, | 
				
			||||
    "1" => { "value" => "Full-time - 30 hours or more" }, | 
				
			||||
    "3" => { "value" => "In government training into work, such as New Deal" }, | 
				
			||||
    "4" => { "value" => "Jobseeker" }, | 
				
			||||
    "6" => { "value" => "Not seeking work" }, | 
				
			||||
    "8" => { "value" => "Unable to work due to long term sick or disability" }, | 
				
			||||
    "5" => { "value" => "Retired" }, | 
				
			||||
    "0" => { "value" => "Other" }, | 
				
			||||
    "10" => { "value" => "Buyer prefers not to say" }, | 
				
			||||
    "7" => { "value" => "Full-time student" }, | 
				
			||||
    "9" => { "value" => "Child under 16" }, | 
				
			||||
  }.freeze | 
				
			||||
end | 
				
			||||
@ -0,0 +1,17 @@
					 | 
				
			||||
class Form::Sales::Questions::Buyer2LiveInProperty < ::Form::Question | 
				
			||||
  def initialize(id, hsh, page) | 
				
			||||
    super | 
				
			||||
    @id = "buy2livein" | 
				
			||||
    @check_answer_label = "Will buyer 2 live in the property?" | 
				
			||||
    @header = "Will buyer 2 live in the property?" | 
				
			||||
    @type = "radio" | 
				
			||||
    @hint_text = "" | 
				
			||||
    @answer_options = ANSWER_OPTIONS | 
				
			||||
    @page = page | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  ANSWER_OPTIONS = { | 
				
			||||
    "1" => { "value" => "Yes" }, | 
				
			||||
    "2" => { "value" => "No" }, | 
				
			||||
  }.freeze | 
				
			||||
end | 
				
			||||
@ -0,0 +1,26 @@
					 | 
				
			||||
class Form::Sales::Questions::Buyer2WorkingSituation < ::Form::Question | 
				
			||||
  def initialize(id, hsh, page) | 
				
			||||
    super | 
				
			||||
    @id = "ecstat2" | 
				
			||||
    @check_answer_label = "Buyer 2's working situation" | 
				
			||||
    @header = "Which of these best describes buyer 2's working situation?" | 
				
			||||
    @type = "radio" | 
				
			||||
    @hint_text = "" | 
				
			||||
    @page = page | 
				
			||||
    @answer_options = ANSWER_OPTIONS | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  ANSWER_OPTIONS = { | 
				
			||||
    "2" => { "value" => "Part-time - Less than 30 hours" }, | 
				
			||||
    "1" => { "value" => "Full-time - 30 hours or more" }, | 
				
			||||
    "3" => { "value" => "In government training into work, such as New Deal" }, | 
				
			||||
    "4" => { "value" => "Jobseeker" }, | 
				
			||||
    "6" => { "value" => "Not seeking work" }, | 
				
			||||
    "8" => { "value" => "Unable to work due to long term sick or disability" }, | 
				
			||||
    "5" => { "value" => "Retired" }, | 
				
			||||
    "0" => { "value" => "Other" }, | 
				
			||||
    "10" => { "value" => "Buyer prefers not to say" }, | 
				
			||||
    "7" => { "value" => "Full-time student" }, | 
				
			||||
    "9" => { "value" => "Child under 16" }, | 
				
			||||
  }.freeze | 
				
			||||
end | 
				
			||||
@ -0,0 +1,17 @@
					 | 
				
			||||
class Form::Sales::Questions::BuyerInterview < ::Form::Question | 
				
			||||
  def initialize(id, hsh, page) | 
				
			||||
    super | 
				
			||||
    @id = "noint" | 
				
			||||
    @check_answer_label = "Buyer interviewed in person?" | 
				
			||||
    @header = "Was the buyer interviewed for any of the answers you will provide on this log?" | 
				
			||||
    @type = "radio" | 
				
			||||
    @hint_text = "You should still try to answer all questions even if the buyer wasn't interviewed in person" | 
				
			||||
    @page = page | 
				
			||||
    @answer_options = ANSWER_OPTIONS | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  ANSWER_OPTIONS = { | 
				
			||||
    "1" => { "value" => "No" }, | 
				
			||||
    "2" => { "value" => "Yes" }, | 
				
			||||
  }.freeze | 
				
			||||
end | 
				
			||||
@ -0,0 +1,18 @@
					 | 
				
			||||
class Form::Sales::Questions::GenderIdentity2 < ::Form::Question | 
				
			||||
  def initialize(id, hsh, page) | 
				
			||||
    super | 
				
			||||
    @id = "sex2" | 
				
			||||
    @check_answer_label = "Buyer 2’s gender identity" | 
				
			||||
    @header = "Which of these best describes buyer 2’s gender identity?" | 
				
			||||
    @type = "radio" | 
				
			||||
    @page = page | 
				
			||||
    @answer_options = ANSWER_OPTIONS | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  ANSWER_OPTIONS = { | 
				
			||||
    "F" => { "value" => "Female" }, | 
				
			||||
    "M" => { "value" => "Male" }, | 
				
			||||
    "X" => { "value" => "Non-binary" }, | 
				
			||||
    "R" => { "value" => "Buyer prefers not to say" }, | 
				
			||||
  }.freeze | 
				
			||||
end | 
				
			||||
@ -0,0 +1,17 @@
					 | 
				
			||||
class Form::Sales::Questions::HouseholdWheelchair < ::Form::Question | 
				
			||||
  def initialize(id, hsh, page) | 
				
			||||
    super | 
				
			||||
    @id = "wheel" | 
				
			||||
    @header = "Does anyone in the household use a wheelchair?" | 
				
			||||
    @type = "radio" | 
				
			||||
    @answer_options = ANSWER_OPTIONS | 
				
			||||
    @page = page | 
				
			||||
    @hint_text = "This can be inside or outside the home" | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  ANSWER_OPTIONS = { | 
				
			||||
    "1" => { "value" => "Yes" }, | 
				
			||||
    "2" => { "value" => "No" }, | 
				
			||||
    "3" => { "value" => "Don't know" }, | 
				
			||||
  }.freeze | 
				
			||||
end | 
				
			||||
@ -0,0 +1,30 @@
					 | 
				
			||||
class Form::Sales::Questions::Nationality1 < ::Form::Question | 
				
			||||
  def initialize(id, hsh, page) | 
				
			||||
    super | 
				
			||||
    @id = "national" | 
				
			||||
    @check_answer_label = "Buyer 1’s nationality" | 
				
			||||
    @header = "What is buyer 1’s nationality?" | 
				
			||||
    @type = "radio" | 
				
			||||
    @hint_text = "Buyer 1 is the person in the household who does the most paid work. If it’s a joint purchase and the buyers do the same amount of paid work, buyer 1 is whoever is the oldest." | 
				
			||||
    @page = page | 
				
			||||
    @answer_options = ANSWER_OPTIONS | 
				
			||||
    @conditional_for = { | 
				
			||||
      "othernational" => [12], | 
				
			||||
    } | 
				
			||||
    @hidden_in_check_answers = { | 
				
			||||
      "depends_on" => [ | 
				
			||||
        { | 
				
			||||
          "national" => 12, | 
				
			||||
        }, | 
				
			||||
      ], | 
				
			||||
    } | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  ANSWER_OPTIONS = { | 
				
			||||
    "18" => { "value" => "United Kingdom" }, | 
				
			||||
    "17" => { "value" => "Republic of Ireland" }, | 
				
			||||
    "19" => { "value" => "European Economic Area (EEA), excluding ROI" }, | 
				
			||||
    "12" => { "value" => "Other" }, | 
				
			||||
    "13" => { "value" => "Buyer prefers not to say" }, | 
				
			||||
  }.freeze | 
				
			||||
end | 
				
			||||
@ -0,0 +1,12 @@
					 | 
				
			||||
class Form::Sales::Questions::NumberOfOthersInProperty < ::Form::Question | 
				
			||||
  def initialize(id, hsh, page) | 
				
			||||
    super | 
				
			||||
    @id = "hholdcount" | 
				
			||||
    @check_answer_label = "Number of other people living in the property" | 
				
			||||
    @header = "Besides the buyers, how many other people live in the property?" | 
				
			||||
    @type = "numeric" | 
				
			||||
    @hint_text = "You can provide details for a maximum of 4 other people." | 
				
			||||
    @page = page | 
				
			||||
    @width = 2 | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -1,10 +0,0 @@
					 | 
				
			||||
class Form::Sales::Questions::OtherBuyer2RelationshipToBuyer1 < ::Form::Question | 
				
			||||
  def initialize(id, hsh, page) | 
				
			||||
    super | 
				
			||||
    @id = "otherrelat2" | 
				
			||||
    @check_answer_label = "Buyer 2's relationship to buyer 1" | 
				
			||||
    @header = "Buyer 2's relationship to buyer 1" | 
				
			||||
    @type = "text" | 
				
			||||
    @page = page | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,10 @@
					 | 
				
			||||
class Form::Sales::Questions::OtherNationality1 < ::Form::Question | 
				
			||||
  def initialize(id, hsh, page) | 
				
			||||
    super | 
				
			||||
    @id = "othernational" | 
				
			||||
    @check_answer_label = "Buyer 1’s nationality" | 
				
			||||
    @header = "Nationality" | 
				
			||||
    @type = "text" | 
				
			||||
    @page = page | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,18 @@
					 | 
				
			||||
class Form::Sales::Questions::PrivacyNotice < ::Form::Question | 
				
			||||
  def initialize(id, hsh, page) | 
				
			||||
    super | 
				
			||||
    @id = "privacynotice" | 
				
			||||
    @check_answer_label = "Buyer has seen the privacy notice?" | 
				
			||||
    @header = "Declaration" | 
				
			||||
    @type = "checkbox" | 
				
			||||
    @hint_text = "" | 
				
			||||
    @page = page | 
				
			||||
    @answer_options = ANSWER_OPTIONS | 
				
			||||
    @guidance_position = GuidancePosition::TOP | 
				
			||||
    @guidance_partial = "privacy_notice_buyer" | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  ANSWER_OPTIONS = { | 
				
			||||
    "privacynotice" => { "value" => "The buyer has seen the DLUHC privacy notice" }, | 
				
			||||
  }.freeze | 
				
			||||
end | 
				
			||||
@ -1,4 +1,4 @@
					 | 
				
			||||
class Form::Sales::Questions::BuildingType < ::Form::Question | 
				
			||||
class Form::Sales::Questions::PropertyBuildingType < ::Form::Question | 
				
			||||
  def initialize(id, hsh, page) | 
				
			||||
    super | 
				
			||||
    @id = "builtype" | 
				
			||||
@ -0,0 +1,15 @@
					 | 
				
			||||
class Form::Sales::Subsections::HouseholdNeeds < ::Form::Subsection | 
				
			||||
  def initialize(id, hsh, section) | 
				
			||||
    super | 
				
			||||
    @id = "household_needs" | 
				
			||||
    @label = "Household needs" | 
				
			||||
    @section = section | 
				
			||||
    @depends_on = [{ "setup" => "completed" }] | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  def pages | 
				
			||||
    @pages ||= [ | 
				
			||||
      Form::Sales::Pages::HouseholdWheelchair.new(nil, nil, self), | 
				
			||||
    ] | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1 @@
					 | 
				
			||||
<p class="govuk-body">Make sure the buyer has seen <%= govuk_link_to "the Department for Levelling Up, Housing & Communities (DLUHC) privacy notice", privacy_notice_path, target: :_blank %> before completing this log.</p> | 
				
			||||
@ -1 +1 @@
					 | 
				
			||||
<p class="govuk-body">Make sure the tenant has seen <%= govuk_link_to "the Department for Levelling Up, Housing & Communities (DLUHC) privacy notice", privacy_notice_path %> before completing this log.</p> | 
				
			||||
<p class="govuk-body">Make sure the tenant has seen <%= govuk_link_to "the Department for Levelling Up, Housing & Communities (DLUHC) privacy notice", privacy_notice_path, target: :_blank %> before completing this log.</p> | 
				
			||||
@ -0,0 +1,8 @@
					 | 
				
			||||
class AddNationalColumn < ActiveRecord::Migration[7.0] | 
				
			||||
  def change | 
				
			||||
    change_table :sales_logs, bulk: true do |t| | 
				
			||||
      t.column :national, :integer | 
				
			||||
      t.column :othernational, :string | 
				
			||||
    end | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,6 @@
					 | 
				
			||||
class AddBackgroundToSalesLog < ActiveRecord::Migration[7.0] | 
				
			||||
  change_table :sales_logs, bulk: true do |t| | 
				
			||||
    t.column :ethnic, :integer | 
				
			||||
    t.column :ethnic_group, :integer | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,5 @@
					 | 
				
			||||
class AddBuyer2SexToSalesLog < ActiveRecord::Migration[7.0] | 
				
			||||
  def change | 
				
			||||
    add_column :sales_logs, :sex2, :string | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,7 @@
					 | 
				
			||||
class AddNointToSalesLog < ActiveRecord::Migration[7.0] | 
				
			||||
  def change | 
				
			||||
    change_table :sales_logs, bulk: true do |t| | 
				
			||||
      t.column :noint, :int | 
				
			||||
    end | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,7 @@
					 | 
				
			||||
class AddBuy2liveinToSalesLog < ActiveRecord::Migration[7.0] | 
				
			||||
  def change | 
				
			||||
    change_table :sales_logs, bulk: true do |t| | 
				
			||||
      t.column :buy2livein, :int | 
				
			||||
    end | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,7 @@
					 | 
				
			||||
class AddEcstat2ToSalesLog < ActiveRecord::Migration[7.0] | 
				
			||||
  def change | 
				
			||||
    change_table :sales_logs, bulk: true do |t| | 
				
			||||
      t.column :ecstat2, :int | 
				
			||||
    end | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,7 @@
					 | 
				
			||||
class AddPrivacyNoticeToSalesLog < ActiveRecord::Migration[7.0] | 
				
			||||
  def change | 
				
			||||
    change_table :sales_logs, bulk: true do |t| | 
				
			||||
      t.column :privacynotice, :int | 
				
			||||
    end | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,7 @@
					 | 
				
			||||
class AddEcstat1ToSalesLog < ActiveRecord::Migration[7.0] | 
				
			||||
  def change | 
				
			||||
    change_table :sales_logs, bulk: true do |t| | 
				
			||||
      t.column :ecstat1, :int | 
				
			||||
    end | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,7 @@
					 | 
				
			||||
class AddWheelToSalesLog < ActiveRecord::Migration[7.0] | 
				
			||||
  def change | 
				
			||||
    change_table :sales_logs, bulk: true do |t| | 
				
			||||
      t.column :wheel, :int | 
				
			||||
    end | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,7 @@
					 | 
				
			||||
class AddHholdcountToSalesLog < ActiveRecord::Migration[7.0] | 
				
			||||
  def change | 
				
			||||
    change_table :sales_logs, bulk: true do |t| | 
				
			||||
      t.column :hholdcount, :int | 
				
			||||
    end | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,5 @@
					 | 
				
			||||
class RemoveOtherrelat2FromSalesLog < ActiveRecord::Migration[7.0] | 
				
			||||
  def change | 
				
			||||
    remove_column :sales_logs, :otherrelat2, :string | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,33 @@
					 | 
				
			||||
require "rails_helper" | 
				
			||||
 | 
				
			||||
RSpec.describe Form::Sales::Pages::Buyer1EthnicBackgroundArab, 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) } | 
				
			||||
 | 
				
			||||
  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[ethnic]) | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct id" do | 
				
			||||
    expect(page.id).to eq("buyer_1_ethnic_background_arab") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct header" do | 
				
			||||
    expect(page.header).to eq("") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct description" do | 
				
			||||
    expect(page.description).to eq("") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has correct depends_on" do | 
				
			||||
    expect(page.depends_on).to eq([{ "ethnic_group" => 4 }]) | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,33 @@
					 | 
				
			||||
require "rails_helper" | 
				
			||||
 | 
				
			||||
RSpec.describe Form::Sales::Pages::Buyer1EthnicBackgroundAsian, 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) } | 
				
			||||
 | 
				
			||||
  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[ethnic]) | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct id" do | 
				
			||||
    expect(page.id).to eq("buyer_1_ethnic_background_asian") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct header" do | 
				
			||||
    expect(page.header).to eq("") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct description" do | 
				
			||||
    expect(page.description).to eq("") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has correct depends_on" do | 
				
			||||
    expect(page.depends_on).to eq([{ "ethnic_group" => 2 }]) | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,33 @@
					 | 
				
			||||
require "rails_helper" | 
				
			||||
 | 
				
			||||
RSpec.describe Form::Sales::Pages::Buyer1EthnicBackgroundBlack, 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) } | 
				
			||||
 | 
				
			||||
  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[ethnic]) | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct id" do | 
				
			||||
    expect(page.id).to eq("buyer_1_ethnic_background_black") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct header" do | 
				
			||||
    expect(page.header).to eq("") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct description" do | 
				
			||||
    expect(page.description).to eq("") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has correct depends_on" do | 
				
			||||
    expect(page.depends_on).to eq([{ "ethnic_group" => 3 }]) | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,33 @@
					 | 
				
			||||
require "rails_helper" | 
				
			||||
 | 
				
			||||
RSpec.describe Form::Sales::Pages::Buyer1EthnicBackgroundMixed, 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) } | 
				
			||||
 | 
				
			||||
  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[ethnic]) | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct id" do | 
				
			||||
    expect(page.id).to eq("buyer_1_ethnic_background_mixed") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct header" do | 
				
			||||
    expect(page.header).to eq("") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct description" do | 
				
			||||
    expect(page.description).to eq("") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has correct depends_on" do | 
				
			||||
    expect(page.depends_on).to eq([{ "ethnic_group" => 1 }]) | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,29 @@
					 | 
				
			||||
require "rails_helper" | 
				
			||||
 | 
				
			||||
RSpec.describe Form::Sales::Pages::Buyer1EthnicBackgroundWhite, 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) } | 
				
			||||
 | 
				
			||||
  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[ethnic]) | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct id" do | 
				
			||||
    expect(page.id).to eq("buyer_1_ethnic_background_white") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct header" do | 
				
			||||
    expect(page.header).to eq("") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct description" do | 
				
			||||
    expect(page.description).to eq("") | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,33 @@
					 | 
				
			||||
require "rails_helper" | 
				
			||||
 | 
				
			||||
RSpec.describe Form::Sales::Pages::Buyer1EthnicGroup, 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) } | 
				
			||||
 | 
				
			||||
  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[ethnic_group]) | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct id" do | 
				
			||||
    expect(page.id).to eq("buyer_1_ethnic_group") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct header" do | 
				
			||||
    expect(page.header).to eq("") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct description" do | 
				
			||||
    expect(page.description).to eq("") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has correct depends_on" do | 
				
			||||
    expect(page.depends_on).to be_nil | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,25 @@
					 | 
				
			||||
require "rails_helper" | 
				
			||||
 | 
				
			||||
RSpec.describe Form::Sales::Pages::Buyer1WorkingSituation, 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) } | 
				
			||||
 | 
				
			||||
  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[ecstat1]) | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct id" do | 
				
			||||
    expect(page.id).to eq("buyer_1_working_situation") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct header" do | 
				
			||||
    expect(page.header).to eq("Which of these best describes buyer 1's working situation?") | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,29 @@
					 | 
				
			||||
require "rails_helper" | 
				
			||||
 | 
				
			||||
RSpec.describe Form::Sales::Pages::Buyer2LiveInProperty, 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) } | 
				
			||||
 | 
				
			||||
  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[buy2livein]) | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct id" do | 
				
			||||
    expect(page.id).to eq("buyer_2_live_in_property") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct header" do | 
				
			||||
    expect(page.header).to eq("") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct description" do | 
				
			||||
    expect(page.description).to eq("") | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,29 @@
					 | 
				
			||||
require "rails_helper" | 
				
			||||
 | 
				
			||||
RSpec.describe Form::Sales::Pages::Buyer2WorkingSituation, 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) } | 
				
			||||
 | 
				
			||||
  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[ecstat2]) | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct id" do | 
				
			||||
    expect(page.id).to eq("buyer_2_working_situation") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct header" do | 
				
			||||
    expect(page.header).to eq("") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct description" do | 
				
			||||
    expect(page.description).to eq("") | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,29 @@
					 | 
				
			||||
require "rails_helper" | 
				
			||||
 | 
				
			||||
RSpec.describe Form::Sales::Pages::BuyerInterview, 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) } | 
				
			||||
 | 
				
			||||
  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[noint]) | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct id" do | 
				
			||||
    expect(page.id).to eq("buyer_interview") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct header" do | 
				
			||||
    expect(page.header).to eq("") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct description" do | 
				
			||||
    expect(page.description).to eq("") | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,35 @@
					 | 
				
			||||
require "rails_helper" | 
				
			||||
 | 
				
			||||
RSpec.describe Form::Sales::Pages::GenderIdentity2, 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) } | 
				
			||||
 | 
				
			||||
  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[sex2]) | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct id" do | 
				
			||||
    expect(page.id).to eq("buyer_2_gender_identity") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct header" do | 
				
			||||
    expect(page.header).to eq("") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct description" do | 
				
			||||
    expect(page.description).to eq("") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has correct depends_on" do | 
				
			||||
    expect(page.depends_on).to eq([{ | 
				
			||||
      "jointpur" => 1, | 
				
			||||
    }]) | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,33 @@
					 | 
				
			||||
require "rails_helper" | 
				
			||||
 | 
				
			||||
RSpec.describe Form::Sales::Pages::Nationality1, 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) } | 
				
			||||
 | 
				
			||||
  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[national othernational]) | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct id" do | 
				
			||||
    expect(page.id).to eq("buyer_1_nationality") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct header" do | 
				
			||||
    expect(page.header).to eq("") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct description" do | 
				
			||||
    expect(page.description).to eq("") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has correct depends_on" do | 
				
			||||
    expect(page.depends_on).to be_nil | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,29 @@
					 | 
				
			||||
require "rails_helper" | 
				
			||||
 | 
				
			||||
RSpec.describe Form::Sales::Pages::NumberOfOthersInProperty, 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) } | 
				
			||||
 | 
				
			||||
  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[hholdcount]) | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct id" do | 
				
			||||
    expect(page.id).to eq("number_of_others_in_property") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct header" do | 
				
			||||
    expect(page.header).to eq("") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct description" do | 
				
			||||
    expect(page.description).to eq("") | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,33 @@
					 | 
				
			||||
require "rails_helper" | 
				
			||||
 | 
				
			||||
RSpec.describe Form::Sales::Pages::PrivacyNotice, 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) } | 
				
			||||
 | 
				
			||||
  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[privacynotice]) | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct id" do | 
				
			||||
    expect(page.id).to eq("privacy_notice") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct header" do | 
				
			||||
    expect(page.header).to eq("Department for Levelling Up, Housing and Communities privacy notice") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct description" do | 
				
			||||
    expect(page.description).to eq("") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has correct depends_on" do | 
				
			||||
    expect(page.depends_on).to eq([{ "noint" => 1 }]) | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,44 @@
					 | 
				
			||||
require "rails_helper" | 
				
			||||
 | 
				
			||||
RSpec.describe Form::Sales::Questions::Buyer1EthnicBackgroundArab, type: :model do | 
				
			||||
  subject(:question) { described_class.new(question_id, question_definition, page) } | 
				
			||||
 | 
				
			||||
  let(:question_id) { nil } | 
				
			||||
  let(:question_definition) { nil } | 
				
			||||
  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("ethnic") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct header" do | 
				
			||||
    expect(question.header).to eq("Which of the following best describes the buyer 1’s Arab background?") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct check_answer_label" do | 
				
			||||
    expect(question.check_answer_label).to eq("Buyer 1’s ethnic background") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct type" do | 
				
			||||
    expect(question.type).to eq("radio") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "is not marked as derived" do | 
				
			||||
    expect(question.derived?).to be false | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct hint_text" do | 
				
			||||
    expect(question.hint_text).to eq("Buyer 1 is the person in the household who does the most paid work. If it’s a joint purchase and the buyers do the same amount of paid work, buyer 1 is whoever is the oldest.") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct answer_options" do | 
				
			||||
    expect(question.answer_options).to eq({ | 
				
			||||
      "16" => { "value" => "Other ethnic group" }, | 
				
			||||
      "19" => { "value" => "Arab" }, | 
				
			||||
    }) | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,47 @@
					 | 
				
			||||
require "rails_helper" | 
				
			||||
 | 
				
			||||
RSpec.describe Form::Sales::Questions::Buyer1EthnicBackgroundAsian, type: :model do | 
				
			||||
  subject(:question) { described_class.new(question_id, question_definition, page) } | 
				
			||||
 | 
				
			||||
  let(:question_id) { nil } | 
				
			||||
  let(:question_definition) { nil } | 
				
			||||
  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("ethnic") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct header" do | 
				
			||||
    expect(question.header).to eq("Which of the following best describes the buyer 1’s Asian or Asian British background?") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct check_answer_label" do | 
				
			||||
    expect(question.check_answer_label).to eq("Buyer 1’s ethnic background") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct type" do | 
				
			||||
    expect(question.type).to eq("radio") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "is not marked as derived" do | 
				
			||||
    expect(question.derived?).to be false | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct hint_text" do | 
				
			||||
    expect(question.hint_text).to eq("Buyer 1 is the person in the household who does the most paid work. If it’s a joint purchase and the buyers do the same amount of paid work, buyer 1 is whoever is the oldest.") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct answer_options" do | 
				
			||||
    expect(question.answer_options).to eq({ | 
				
			||||
      "10" => { "value" => "Bangladeshi" }, | 
				
			||||
      "11" => { "value" => "Any other Asian or Asian British background" }, | 
				
			||||
      "15" => { "value" => "Chinese" }, | 
				
			||||
      "8" => { "value" => "Indian" }, | 
				
			||||
      "9" => { "value" => "Pakistani" }, | 
				
			||||
    }) | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,45 @@
					 | 
				
			||||
require "rails_helper" | 
				
			||||
 | 
				
			||||
RSpec.describe Form::Sales::Questions::Buyer1EthnicBackgroundBlack, type: :model do | 
				
			||||
  subject(:question) { described_class.new(question_id, question_definition, page) } | 
				
			||||
 | 
				
			||||
  let(:question_id) { nil } | 
				
			||||
  let(:question_definition) { nil } | 
				
			||||
  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("ethnic") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct header" do | 
				
			||||
    expect(question.header).to eq("Which of the following best describes the buyer 1’s Black, African, Caribbean or Black British background?") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct check_answer_label" do | 
				
			||||
    expect(question.check_answer_label).to eq("Buyer 1’s ethnic background") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct type" do | 
				
			||||
    expect(question.type).to eq("radio") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "is not marked as derived" do | 
				
			||||
    expect(question.derived?).to be false | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct hint_text" do | 
				
			||||
    expect(question.hint_text).to eq("Buyer 1 is the person in the household who does the most paid work. If it’s a joint purchase and the buyers do the same amount of paid work, buyer 1 is whoever is the oldest.") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct answer_options" do | 
				
			||||
    expect(question.answer_options).to eq({ | 
				
			||||
      "12" => { "value" => "Caribbean" }, | 
				
			||||
      "13" => { "value" => "African" }, | 
				
			||||
      "14" => { "value" => "Any other Black, African or Caribbean background" }, | 
				
			||||
    }) | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,46 @@
					 | 
				
			||||
require "rails_helper" | 
				
			||||
 | 
				
			||||
RSpec.describe Form::Sales::Questions::Buyer1EthnicBackgroundMixed, type: :model do | 
				
			||||
  subject(:question) { described_class.new(question_id, question_definition, page) } | 
				
			||||
 | 
				
			||||
  let(:question_id) { nil } | 
				
			||||
  let(:question_definition) { nil } | 
				
			||||
  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("ethnic") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct header" do | 
				
			||||
    expect(question.header).to eq("Which of the following best describes the buyer 1’s Mixed or Multiple ethnic groups background?") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct check_answer_label" do | 
				
			||||
    expect(question.check_answer_label).to eq("Buyer 1’s ethnic background") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct type" do | 
				
			||||
    expect(question.type).to eq("radio") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "is not marked as derived" do | 
				
			||||
    expect(question.derived?).to be false | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct hint_text" do | 
				
			||||
    expect(question.hint_text).to eq("Buyer 1 is the person in the household who does the most paid work. If it’s a joint purchase and the buyers do the same amount of paid work, buyer 1 is whoever is the oldest.") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct answer_options" do | 
				
			||||
    expect(question.answer_options).to eq({ | 
				
			||||
      "4" => { "value" => "White and Black Caribbean" }, | 
				
			||||
      "5" => { "value" => "White and Black African" }, | 
				
			||||
      "6" => { "value" => "White and Asian" }, | 
				
			||||
      "7" => { "value" => "Any other Mixed or Multiple ethnic background" }, | 
				
			||||
    }) | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,46 @@
					 | 
				
			||||
require "rails_helper" | 
				
			||||
 | 
				
			||||
RSpec.describe Form::Sales::Questions::Buyer1EthnicBackgroundWhite, type: :model do | 
				
			||||
  subject(:question) { described_class.new(question_id, question_definition, page) } | 
				
			||||
 | 
				
			||||
  let(:question_id) { nil } | 
				
			||||
  let(:question_definition) { nil } | 
				
			||||
  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("ethnic") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct header" do | 
				
			||||
    expect(question.header).to eq("Which of the following best describes the buyer 1’s White background?") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct check_answer_label" do | 
				
			||||
    expect(question.check_answer_label).to eq("Buyer 1’s ethnic background") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct type" do | 
				
			||||
    expect(question.type).to eq("radio") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "is not marked as derived" do | 
				
			||||
    expect(question.derived?).to be false | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct hint_text" do | 
				
			||||
    expect(question.hint_text).to eq("Buyer 1 is the person in the household who does the most paid work. If it’s a joint purchase and the buyers do the same amount of paid work, buyer 1 is whoever is the oldest.") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct answer_options" do | 
				
			||||
    expect(question.answer_options).to eq({ | 
				
			||||
      "1" => { "value" => "English, Welsh, Northern Irish, Scottish or British" }, | 
				
			||||
      "18" => { "value" => "Gypsy or Irish Traveller" }, | 
				
			||||
      "2" => { "value" => "Irish" }, | 
				
			||||
      "3" => { "value" => "Any other White background" }, | 
				
			||||
    }) | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,49 @@
					 | 
				
			||||
require "rails_helper" | 
				
			||||
 | 
				
			||||
RSpec.describe Form::Sales::Questions::Buyer1EthnicGroup, type: :model do | 
				
			||||
  subject(:question) { described_class.new(question_id, question_definition, page) } | 
				
			||||
 | 
				
			||||
  let(:question_id) { nil } | 
				
			||||
  let(:question_definition) { nil } | 
				
			||||
  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("ethnic_group") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct header" do | 
				
			||||
    expect(question.header).to eq("What is buyer 1’s ethnic group?") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct check_answer_label" do | 
				
			||||
    expect(question.check_answer_label).to eq("Buyer 1’s ethnic group") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct type" do | 
				
			||||
    expect(question.type).to eq("radio") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "is not marked as derived" do | 
				
			||||
    expect(question.derived?).to be false | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct hint_text" do | 
				
			||||
    expect(question.hint_text).to eq("Buyer 1 is the person in the household who does the most paid work. If it’s a joint purchase and the buyers do the same amount of paid work, buyer 1 is whoever is the oldest.") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct answer_options" do | 
				
			||||
    expect(question.answer_options).to eq({ | 
				
			||||
      "0" => { "value" => "White" }, | 
				
			||||
      "1" => { "value" => "Mixed or Multiple ethnic groups" }, | 
				
			||||
      "17" => { "value" => "Buyer 1 prefers not to say" }, | 
				
			||||
      "2" => { "value" => "Asian or Asian British" }, | 
				
			||||
      "3" => { "value" => "Black, African, Caribbean or Black British" }, | 
				
			||||
      "4" => { "value" => "Arab or other ethnic group" }, | 
				
			||||
      "divider" => { "value" => true }, | 
				
			||||
    }) | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,49 @@
					 | 
				
			||||
require "rails_helper" | 
				
			||||
 | 
				
			||||
RSpec.describe Form::Sales::Questions::Buyer1WorkingSituation, type: :model do | 
				
			||||
  subject(:question) { described_class.new(question_id, question_definition, page) } | 
				
			||||
 | 
				
			||||
  let(:question_id) { nil } | 
				
			||||
  let(:question_definition) { nil } | 
				
			||||
  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("ecstat1") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct header" do | 
				
			||||
    expect(question.header).to eq("Which of these best describes buyer 1's working situation?") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct check_answer_label" do | 
				
			||||
    expect(question.check_answer_label).to eq("Buyer 1's working situation") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct type" do | 
				
			||||
    expect(question.type).to eq("radio") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "is not marked as derived" do | 
				
			||||
    expect(question.derived?).to be false | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct answer_options" do | 
				
			||||
    expect(question.answer_options).to eq({ | 
				
			||||
      "2" => { "value" => "Part-time - Less than 30 hours" }, | 
				
			||||
      "1" => { "value" => "Full-time - 30 hours or more" }, | 
				
			||||
      "3" => { "value" => "In government training into work, such as New Deal" }, | 
				
			||||
      "4" => { "value" => "Jobseeker" }, | 
				
			||||
      "6" => { "value" => "Not seeking work" }, | 
				
			||||
      "8" => { "value" => "Unable to work due to long term sick or disability" }, | 
				
			||||
      "5" => { "value" => "Retired" }, | 
				
			||||
      "0" => { "value" => "Other" }, | 
				
			||||
      "10" => { "value" => "Buyer prefers not to say" }, | 
				
			||||
      "7" => { "value" => "Full-time student" }, | 
				
			||||
      "9" => { "value" => "Child under 16" }, | 
				
			||||
    }) | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,44 @@
					 | 
				
			||||
require "rails_helper" | 
				
			||||
 | 
				
			||||
RSpec.describe Form::Sales::Questions::Buyer2LiveInProperty, type: :model do | 
				
			||||
  subject(:question) { described_class.new(question_id, question_definition, page) } | 
				
			||||
 | 
				
			||||
  let(:question_id) { nil } | 
				
			||||
  let(:question_definition) { nil } | 
				
			||||
  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("buy2livein") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct header" do | 
				
			||||
    expect(question.header).to eq("Will buyer 2 live in the property?") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct check_answer_label" do | 
				
			||||
    expect(question.check_answer_label).to eq("Will buyer 2 live in the property?") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct type" do | 
				
			||||
    expect(question.type).to eq("radio") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "is not marked as derived" do | 
				
			||||
    expect(question.derived?).to be false | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct hint" do | 
				
			||||
    expect(question.hint_text).to eq("") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct answer_options" do | 
				
			||||
    expect(question.answer_options).to eq({ | 
				
			||||
      "1" => { "value" => "Yes" }, | 
				
			||||
      "2" => { "value" => "No" }, | 
				
			||||
    }) | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,53 @@
					 | 
				
			||||
require "rails_helper" | 
				
			||||
 | 
				
			||||
RSpec.describe Form::Sales::Questions::Buyer2WorkingSituation, type: :model do | 
				
			||||
  subject(:question) { described_class.new(question_id, question_definition, page) } | 
				
			||||
 | 
				
			||||
  let(:question_id) { nil } | 
				
			||||
  let(:question_definition) { nil } | 
				
			||||
  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("ecstat2") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct header" do | 
				
			||||
    expect(question.header).to eq("Which of these best describes buyer 2's working situation?") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct check_answer_label" do | 
				
			||||
    expect(question.check_answer_label).to eq("Buyer 2's working situation") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct type" do | 
				
			||||
    expect(question.type).to eq("radio") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "is not marked as derived" do | 
				
			||||
    expect(question.derived?).to be false | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct hint" do | 
				
			||||
    expect(question.hint_text).to eq("") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct answer_options" do | 
				
			||||
    expect(question.answer_options).to eq({ | 
				
			||||
      "2" => { "value" => "Part-time - Less than 30 hours" }, | 
				
			||||
      "1" => { "value" => "Full-time - 30 hours or more" }, | 
				
			||||
      "3" => { "value" => "In government training into work, such as New Deal" }, | 
				
			||||
      "4" => { "value" => "Jobseeker" }, | 
				
			||||
      "6" => { "value" => "Not seeking work" }, | 
				
			||||
      "8" => { "value" => "Unable to work due to long term sick or disability" }, | 
				
			||||
      "5" => { "value" => "Retired" }, | 
				
			||||
      "0" => { "value" => "Other" }, | 
				
			||||
      "10" => { "value" => "Buyer prefers not to say" }, | 
				
			||||
      "7" => { "value" => "Full-time student" }, | 
				
			||||
      "9" => { "value" => "Child under 16" }, | 
				
			||||
    }) | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,44 @@
					 | 
				
			||||
require "rails_helper" | 
				
			||||
 | 
				
			||||
RSpec.describe Form::Sales::Questions::BuyerInterview, type: :model do | 
				
			||||
  subject(:question) { described_class.new(question_id, question_definition, page) } | 
				
			||||
 | 
				
			||||
  let(:question_id) { nil } | 
				
			||||
  let(:question_definition) { nil } | 
				
			||||
  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("noint") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct header" do | 
				
			||||
    expect(question.header).to eq("Was the buyer interviewed for any of the answers you will provide on this log?") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct check_answer_label" do | 
				
			||||
    expect(question.check_answer_label).to eq("Buyer interviewed in person?") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct type" do | 
				
			||||
    expect(question.type).to eq("radio") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "is not marked as derived" do | 
				
			||||
    expect(question.derived?).to be false | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct hint" do | 
				
			||||
    expect(question.hint_text).to eq("You should still try to answer all questions even if the buyer wasn't interviewed in person") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct answer_options" do | 
				
			||||
    expect(question.answer_options).to eq({ | 
				
			||||
      "1" => { "value" => "No" }, | 
				
			||||
      "2" => { "value" => "Yes" }, | 
				
			||||
    }) | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
@ -0,0 +1,42 @@
					 | 
				
			||||
require "rails_helper" | 
				
			||||
 | 
				
			||||
RSpec.describe Form::Sales::Questions::GenderIdentity2, type: :model do | 
				
			||||
  subject(:question) { described_class.new(question_id, question_definition, page) } | 
				
			||||
 | 
				
			||||
  let(:question_id) { nil } | 
				
			||||
  let(:question_definition) { nil } | 
				
			||||
  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("sex2") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct header" do | 
				
			||||
    expect(question.header).to eq("Which of these best describes buyer 2’s gender identity?") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct check_answer_label" do | 
				
			||||
    expect(question.check_answer_label).to eq("Buyer 2’s gender identity") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct type" do | 
				
			||||
    expect(question.type).to eq("radio") | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "is not marked as derived" do | 
				
			||||
    expect(question.derived?).to be false | 
				
			||||
  end | 
				
			||||
 | 
				
			||||
  it "has the correct answer_options" do | 
				
			||||
    expect(question.answer_options).to eq({ | 
				
			||||
      "F" => { "value" => "Female" }, | 
				
			||||
      "M" => { "value" => "Male" }, | 
				
			||||
      "X" => { "value" => "Non-binary" }, | 
				
			||||
      "R" => { "value" => "Buyer prefers not to say" }, | 
				
			||||
    }) | 
				
			||||
  end | 
				
			||||
end | 
				
			||||
Some files were not shown because too many files have changed in this diff Show More
					Loading…
					
					
				
		Reference in new issue