9 changed files with 186 additions and 2 deletions
			
			
		@ -0,0 +1,18 @@ | 
				
			|||||||
 | 
					class Form::Sales::Pages::Person1WorkingSituation < ::Form::Page | 
				
			||||||
 | 
					  def initialize(id, hsh, subsection) | 
				
			||||||
 | 
					    super | 
				
			||||||
 | 
					    @id = "person_1_working_situation" | 
				
			||||||
 | 
					    @header = "" | 
				
			||||||
 | 
					    @description = "" | 
				
			||||||
 | 
					    @subsection = subsection | 
				
			||||||
 | 
					    @depends_on = [ | 
				
			||||||
 | 
					      { "details_known_1" => 1, "jointpur" => 2 }, | 
				
			||||||
 | 
					    ] | 
				
			||||||
 | 
					  end | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def questions | 
				
			||||||
 | 
					    @questions ||= [ | 
				
			||||||
 | 
					      Form::Sales::Questions::Person1WorkingSituation.new("ecstat2", nil, self), | 
				
			||||||
 | 
					    ] | 
				
			||||||
 | 
					  end | 
				
			||||||
 | 
					end | 
				
			||||||
@ -0,0 +1,18 @@ | 
				
			|||||||
 | 
					class Form::Sales::Pages::Person1WorkingSituationJointPurchase < ::Form::Page | 
				
			||||||
 | 
					  def initialize(id, hsh, subsection) | 
				
			||||||
 | 
					    super | 
				
			||||||
 | 
					    @id = "person_1_working_situation_joint_purchase" | 
				
			||||||
 | 
					    @header = "" | 
				
			||||||
 | 
					    @description = "" | 
				
			||||||
 | 
					    @subsection = subsection | 
				
			||||||
 | 
					    @depends_on = [ | 
				
			||||||
 | 
					      { "details_known_1" => 1, "jointpur" => 1 }, | 
				
			||||||
 | 
					    ] | 
				
			||||||
 | 
					  end | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def questions | 
				
			||||||
 | 
					    @questions ||= [ | 
				
			||||||
 | 
					      Form::Sales::Questions::Person1WorkingSituation.new("ecstat3", nil, self), | 
				
			||||||
 | 
					    ] | 
				
			||||||
 | 
					  end | 
				
			||||||
 | 
					end | 
				
			||||||
@ -0,0 +1,25 @@ | 
				
			|||||||
 | 
					class Form::Sales::Questions::Person1WorkingSituation < ::Form::Question | 
				
			||||||
 | 
					  def initialize(id, hsh, page) | 
				
			||||||
 | 
					    super | 
				
			||||||
 | 
					    @check_answer_label = "Person 1’s working situation" | 
				
			||||||
 | 
					    @header = "Which of these best describes Person 1’s working situation?" | 
				
			||||||
 | 
					    @type = "radio" | 
				
			||||||
 | 
					    @page = page | 
				
			||||||
 | 
					    @answer_options = ANSWER_OPTIONS | 
				
			||||||
 | 
					    @check_answers_card_number = id == "ecstat2" ? 2 : 3 | 
				
			||||||
 | 
					  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,33 @@ | 
				
			|||||||
 | 
					require "rails_helper" | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RSpec.describe Form::Sales::Pages::Person1WorkingSituationJointPurchase, 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[ecstat3]) | 
				
			||||||
 | 
					  end | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it "has the correct id" do | 
				
			||||||
 | 
					    expect(page.id).to eq("person_1_working_situation_joint_purchase") | 
				
			||||||
 | 
					  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([{ "details_known_1" => 1, "jointpur" => 1 }]) | 
				
			||||||
 | 
					  end | 
				
			||||||
 | 
					end | 
				
			||||||
@ -0,0 +1,33 @@ | 
				
			|||||||
 | 
					require "rails_helper" | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RSpec.describe Form::Sales::Pages::Person1WorkingSituation, 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("person_1_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 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it "has correct depends_on" do | 
				
			||||||
 | 
					    expect(page.depends_on).to eq([{ "details_known_1" => 1, "jointpur" => 2 }]) | 
				
			||||||
 | 
					  end | 
				
			||||||
 | 
					end | 
				
			||||||
@ -0,0 +1,53 @@ | 
				
			|||||||
 | 
					require "rails_helper" | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RSpec.describe Form::Sales::Questions::Person1WorkingSituation, type: :model do | 
				
			||||||
 | 
					  subject(:question) { described_class.new(question_id, question_definition, page) } | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  let(:question_id) { "ecstat2" } | 
				
			||||||
 | 
					  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 Person 1’s working situation?") | 
				
			||||||
 | 
					  end | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it "has the correct check_answer_label" do | 
				
			||||||
 | 
					    expect(question.check_answer_label).to eq("Person 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 expected check answers card number" do | 
				
			||||||
 | 
					    expect(question.check_answers_card_number).to eq(2) | 
				
			||||||
 | 
					  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 | 
				
			||||||
					Loading…
					
					
				
		Reference in new issue