Browse Source

Add savings questions

pull/1052/head
Kat 4 years ago
parent
commit
c47fb728a6
  1. 14
      app/models/form/sales/questions/savings.rb
  2. 27
      app/models/form/sales/questions/savings_nk.rb
  3. 62
      spec/models/form/sales/questions/savings_nk_spec.rb
  4. 53
      spec/models/form/sales/questions/savings_spec.rb

14
app/models/form/sales/questions/savings.rb

@ -0,0 +1,14 @@
class Form::Sales::Questions::Savings < ::Form::Question
def initialize(id, hsh, page)
super
@id = "savings"
@check_answer_label = "Buyer’s total savings (to nearest £10) before any deposit paid"
@header = "Enter their total savings to the nearest £10"
@type = "numeric"
@page = page
@width = 5
@prefix = "£"
@step = 1
@min = 0
end
end

27
app/models/form/sales/questions/savings_nk.rb

@ -0,0 +1,27 @@
class Form::Sales::Questions::SavingsNk < ::Form::Question
def initialize(id, hsh, page)
super
@id = "savingsnk"
@check_answer_label = "Buyer’s total savings known?"
@header = "Do you know how much the buyer had in savings before they paid any deposit for the property?"
@type = "radio"
@answer_options = ANSWER_OPTIONS
@page = page
@hint_text = ""
@conditional_for = {
"savings" => [0],
}
@hidden_in_check_answers = {
"depends_on" => [
{
"savingsnk" => 0,
},
],
}
end
ANSWER_OPTIONS = {
"0" => { "value" => "Yes" },
"1" => { "value" => "No" },
}.freeze
end

62
spec/models/form/sales/questions/savings_nk_spec.rb

@ -0,0 +1,62 @@
require "rails_helper"
RSpec.describe Form::Sales::Questions::SavingsNk, 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("savingsnk")
end
it "has the correct header" do
expect(question.header).to eq("Do you know how much the buyer had in savings before they paid any deposit for the property?")
end
it "has the correct check_answer_label" do
expect(question.check_answer_label).to eq("Buyer’s total savings known?")
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({
"0" => { "value" => "Yes" },
"1" => { "value" => "No" },
})
end
it "has correct conditional for" do
expect(question.conditional_for).to eq({
"savings" => [0],
})
end
it "has the correct hint" do
expect(question.hint_text).to eq("")
end
it "has the correct hidden_in_check_answers" do
expect(question.hidden_in_check_answers).to eq(
{
"depends_on" => [
{
"savingsnk" => 0,
},
],
},
)
end
end

53
spec/models/form/sales/questions/savings_spec.rb

@ -0,0 +1,53 @@
require "rails_helper"
RSpec.describe Form::Sales::Questions::Savings, 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("savings")
end
it "has the correct header" do
expect(question.header).to eq("Enter their total savings to the nearest £10")
end
it "has the correct check_answer_label" do
expect(question.check_answer_label).to eq("Buyer’s total savings (to nearest £10) before any deposit paid")
end
it "has the correct type" do
expect(question.type).to eq("numeric")
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 be_nil
end
it "has the correct width" do
expect(question.width).to eq(5)
end
it "has correct step" do
expect(question.step).to eq(1)
end
it "has correct prefix" do
expect(question.prefix).to eq("£")
end
it "has correct min" do
expect(question.min).to eq(0)
end
end
Loading…
Cancel
Save