Browse Source

feat: add tests

pull/1259/head
natdeanlewissoftwire 3 years ago
parent
commit
05e5c9d744
  1. 3
      app/models/form/sales/pages/handover_date_check.rb
  2. 3
      app/models/form/sales/pages/sale_date_check.rb
  3. 6
      app/models/form/sales/questions/handover_date_check.rb
  4. 8
      app/models/form/sales/questions/sale_date_check.rb
  5. 18
      spec/models/form/sales/pages/handover_date_check_spec.rb
  6. 47
      spec/models/form/sales/pages/sale_date_check_spec.rb
  7. 4
      spec/models/form/sales/questions/handover_date_check_spec.rb
  8. 48
      spec/models/form/sales/questions/sale_date_check_spec.rb

3
app/models/form/sales/pages/handover_date_check.rb

@ -2,7 +2,8 @@ class Form::Sales::Pages::HandoverDateCheck < ::Form::Page
def initialize(id, hsh, subsection) def initialize(id, hsh, subsection)
super super
@id = "handover_date_check" @id = "handover_date_check"
@depends_on = [{ "hodate_3_years_or_more_saledate?" => true }] @depends_on = [{ "saledate_check" => nil, "hodate_3_years_or_more_saledate?" => true },
{ "saledate_check" => 1, "hodate_3_years_or_more_saledate?" => true }]
@informative_text = {} @informative_text = {}
@title_text = { @title_text = {
"translation" => "validations.sale_information.hodate.must_be_less_than_3_years_from_saledate", "translation" => "validations.sale_information.hodate.must_be_less_than_3_years_from_saledate",

3
app/models/form/sales/pages/sale_date_check.rb

@ -2,7 +2,8 @@ class Form::Sales::Pages::SaleDateCheck < ::Form::Page
def initialize(id, hsh, subsection) def initialize(id, hsh, subsection)
super super
@id = "sale_date_check" @id = "sale_date_check"
@depends_on = [{ "hodate_3_years_or_more_saledate?" => true }] @depends_on = [{ "hodate_check" => nil, "hodate_3_years_or_more_saledate?" => true },
{ "hodate_check" => 1, "hodate_3_years_or_more_saledate?" => true }]
@informative_text = {} @informative_text = {}
@title_text = { @title_text = {
"translation" => "validations.sale_information.saledate.must_be_less_than_3_years_from_hodate", "translation" => "validations.sale_information.saledate.must_be_less_than_3_years_from_hodate",

6
app/models/form/sales/questions/handover_date_check.rb

@ -17,6 +17,12 @@ class Form::Sales::Questions::HandoverDateCheck < ::Form::Question
{ {
"hodate_check" => 1, "hodate_check" => 1,
}, },
{
"saledate_check" => 0,
},
{
"saledate_check" => 1,
},
], ],
} }
end end

8
app/models/form/sales/questions/sale_date_check.rb

@ -2,7 +2,7 @@ class Form::Sales::Questions::SaleDateCheck < ::Form::Question
def initialize(id, hsh, page) def initialize(id, hsh, page)
super super
@id = "saledate_check" @id = "saledate_check"
@check_answer_label = "Completion date check" @check_answer_label = "Sale completion date check"
@header = "Are you sure?" @header = "Are you sure?"
@type = "interruption_screen" @type = "interruption_screen"
@answer_options = { @answer_options = {
@ -11,6 +11,12 @@ class Form::Sales::Questions::SaleDateCheck < ::Form::Question
} }
@hidden_in_check_answers = { @hidden_in_check_answers = {
"depends_on" => [ "depends_on" => [
{
"hodate_check" => 0,
},
{
"hodate_check" => 1,
},
{ {
"saledate_check" => 0, "saledate_check" => 0,
}, },

18
spec/models/form/sales/pages/handover_date_check_spec.rb

@ -16,18 +16,28 @@ RSpec.describe Form::Sales::Pages::HandoverDateCheck, type: :model do
end end
it "has the correct id" do it "has the correct id" do
expect(page.id).to eq("") expect(page.id).to eq("handover_date_check")
end end
it "has the correct header" do it "has the correct header" do
expect(page.header).to be_nil expect(page.header).to be_nil
end end
it "has the correct title_text" do
expect(page.title_text).to eq({
"translation" => "validations.sale_information.hodate.must_be_less_than_3_years_from_saledate",
"arguments" => [],
})
end
it "has the correct informative_text" do
expect(page.informative_text).to eq({})
end
it "has correct depends_on" do it "has correct depends_on" do
expect(page.depends_on).to eq([ expect(page.depends_on).to eq([
{ { "hodate_3_years_or_more_saledate?" => true, "saledate_check" => nil },
"hodate_3_years_or_more_saledate?" => true, { "hodate_3_years_or_more_saledate?" => true, "saledate_check" => 1 },
},
]) ])
end end

47
spec/models/form/sales/pages/sale_date_check_spec.rb

@ -0,0 +1,47 @@
require "rails_helper"
RSpec.describe Form::Sales::Pages::SaleDateCheck, type: :model do
subject(:page) { described_class.new(page_id, page_definition, subsection) }
let(:page_id) { "" }
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[saledate_check])
end
it "has the correct id" do
expect(page.id).to eq("sale_date_check")
end
it "has the correct header" do
expect(page.header).to be_nil
end
it "has the correct title_text" do
expect(page.title_text).to eq({
"translation" => "validations.sale_information.saledate.must_be_less_than_3_years_from_hodate",
"arguments" => [],
})
end
it "has the correct informative_text" do
expect(page.informative_text).to eq({})
end
it "has correct depends_on" do
expect(page.depends_on).to eq([
{ "hodate_3_years_or_more_saledate?" => true, "hodate_check" => nil },
{ "hodate_3_years_or_more_saledate?" => true, "hodate_check" => 1 },
])
end
it "is interruption screen page" do
expect(page.interruption_screen?).to eq(true)
end
end

4
spec/models/form/sales/questions/handover_date_check_spec.rb

@ -16,7 +16,7 @@ RSpec.describe Form::Sales::Questions::HandoverDateCheck, type: :model do
end end
it "has the correct header" do it "has the correct header" do
expect(question.header).to eq("Are you sure practical completion or handover date is more than 3 years before exchange date?") expect(question.header).to eq("Are you sure?")
end end
it "has the correct check_answer_label" do it "has the correct check_answer_label" do
@ -43,6 +43,6 @@ RSpec.describe Form::Sales::Questions::HandoverDateCheck, type: :model do
end end
it "has the correct hidden_in_check_answers" do it "has the correct hidden_in_check_answers" do
expect(question.hidden_in_check_answers).to eq({ "depends_on" => [{ "hodate_check" => 0 }, { "hodate_check" => 1 }] }) expect(question.hidden_in_check_answers).to eq({ "depends_on" => [{ "hodate_check" => 0 }, { "hodate_check" => 1 }, { "saledate_check" => 0 }, { "saledate_check" => 1 }] })
end end
end end

48
spec/models/form/sales/questions/sale_date_check_spec.rb

@ -0,0 +1,48 @@
require "rails_helper"
RSpec.describe Form::Sales::Questions::SaleDateCheck, 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("saledate_check")
end
it "has the correct header" do
expect(question.header).to eq("Are you sure?")
end
it "has the correct check_answer_label" do
expect(question.check_answer_label).to eq("Sale completion date check")
end
it "has the correct type" do
expect(question.type).to eq("interruption_screen")
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 answer_options" do
expect(question.answer_options).to eq({
"0" => { "value" => "Yes" },
"1" => { "value" => "No" },
})
end
it "has the correct hidden_in_check_answers" do
expect(question.hidden_in_check_answers).to eq({ "depends_on" => [{ "hodate_check" => 0 }, { "hodate_check" => 1 }, { "saledate_check" => 0 }, { "saledate_check" => 1 }] })
end
end
Loading…
Cancel
Save