diff --git a/app/models/form/sales/pages/handover_date_check.rb b/app/models/form/sales/pages/handover_date_check.rb index 8e498ec62..5d656200b 100644 --- a/app/models/form/sales/pages/handover_date_check.rb +++ b/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) super @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 = {} @title_text = { "translation" => "validations.sale_information.hodate.must_be_less_than_3_years_from_saledate", diff --git a/app/models/form/sales/pages/sale_date_check.rb b/app/models/form/sales/pages/sale_date_check.rb index 3ec51a6ae..5096d71c5 100644 --- a/app/models/form/sales/pages/sale_date_check.rb +++ b/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) super @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 = {} @title_text = { "translation" => "validations.sale_information.saledate.must_be_less_than_3_years_from_hodate", diff --git a/app/models/form/sales/questions/handover_date_check.rb b/app/models/form/sales/questions/handover_date_check.rb index 5fab2a998..f19ee0196 100644 --- a/app/models/form/sales/questions/handover_date_check.rb +++ b/app/models/form/sales/questions/handover_date_check.rb @@ -17,6 +17,12 @@ class Form::Sales::Questions::HandoverDateCheck < ::Form::Question { "hodate_check" => 1, }, + { + "saledate_check" => 0, + }, + { + "saledate_check" => 1, + }, ], } end diff --git a/app/models/form/sales/questions/sale_date_check.rb b/app/models/form/sales/questions/sale_date_check.rb index 76e0ab8af..b2947434b 100644 --- a/app/models/form/sales/questions/sale_date_check.rb +++ b/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) super @id = "saledate_check" - @check_answer_label = "Completion date check" + @check_answer_label = "Sale completion date check" @header = "Are you sure?" @type = "interruption_screen" @answer_options = { @@ -11,6 +11,12 @@ class Form::Sales::Questions::SaleDateCheck < ::Form::Question } @hidden_in_check_answers = { "depends_on" => [ + { + "hodate_check" => 0, + }, + { + "hodate_check" => 1, + }, { "saledate_check" => 0, }, diff --git a/spec/models/form/sales/pages/handover_date_check_spec.rb b/spec/models/form/sales/pages/handover_date_check_spec.rb index 86c74fda6..6bd3f3874 100644 --- a/spec/models/form/sales/pages/handover_date_check_spec.rb +++ b/spec/models/form/sales/pages/handover_date_check_spec.rb @@ -16,18 +16,28 @@ RSpec.describe Form::Sales::Pages::HandoverDateCheck, type: :model do end it "has the correct id" do - expect(page.id).to eq("") + expect(page.id).to eq("handover_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.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 expect(page.depends_on).to eq([ - { - "hodate_3_years_or_more_saledate?" => true, - }, + { "hodate_3_years_or_more_saledate?" => true, "saledate_check" => nil }, + { "hodate_3_years_or_more_saledate?" => true, "saledate_check" => 1 }, ]) end diff --git a/spec/models/form/sales/pages/sale_date_check_spec.rb b/spec/models/form/sales/pages/sale_date_check_spec.rb new file mode 100644 index 000000000..fe7c21b98 --- /dev/null +++ b/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 diff --git a/spec/models/form/sales/questions/handover_date_check_spec.rb b/spec/models/form/sales/questions/handover_date_check_spec.rb index 0e57abf35..86a46436b 100644 --- a/spec/models/form/sales/questions/handover_date_check_spec.rb +++ b/spec/models/form/sales/questions/handover_date_check_spec.rb @@ -16,7 +16,7 @@ RSpec.describe Form::Sales::Questions::HandoverDateCheck, type: :model do end 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 it "has the correct check_answer_label" do @@ -43,6 +43,6 @@ RSpec.describe Form::Sales::Questions::HandoverDateCheck, type: :model do 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 }] }) + expect(question.hidden_in_check_answers).to eq({ "depends_on" => [{ "hodate_check" => 0 }, { "hodate_check" => 1 }, { "saledate_check" => 0 }, { "saledate_check" => 1 }] }) end end diff --git a/spec/models/form/sales/questions/sale_date_check_spec.rb b/spec/models/form/sales/questions/sale_date_check_spec.rb new file mode 100644 index 000000000..c37b2e870 --- /dev/null +++ b/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