From 065a32ecc33bbbd8cebf5cbea54541ae3c43bb51 Mon Sep 17 00:00:00 2001 From: natdeanlewissoftwire Date: Fri, 14 Oct 2022 11:48:10 +0100 Subject: [PATCH] tests: add new tests --- .../form/sales/questions/person2_known.rb | 2 +- .../form/sales/questions/person3_known.rb | 2 +- .../form/sales/questions/person4_known.rb | 2 +- .../form/sales/pages/person2_known_spec.rb | 43 +++++++++++++ .../form/sales/pages/person3_known_spec.rb | 42 +++++++++++++ .../form/sales/pages/person4_known_spec.rb | 41 +++++++++++++ .../sales/questions/person2_known_spec.rb | 60 +++++++++++++++++++ .../sales/questions/person3_known_spec.rb | 60 +++++++++++++++++++ .../sales/questions/person4_known_spec.rb | 60 +++++++++++++++++++ 9 files changed, 309 insertions(+), 3 deletions(-) create mode 100644 spec/models/form/sales/pages/person2_known_spec.rb create mode 100644 spec/models/form/sales/pages/person3_known_spec.rb create mode 100644 spec/models/form/sales/pages/person4_known_spec.rb create mode 100644 spec/models/form/sales/questions/person2_known_spec.rb create mode 100644 spec/models/form/sales/questions/person3_known_spec.rb create mode 100644 spec/models/form/sales/questions/person4_known_spec.rb diff --git a/app/models/form/sales/questions/person2_known.rb b/app/models/form/sales/questions/person2_known.rb index be298c3e5..bc931d23f 100644 --- a/app/models/form/sales/questions/person2_known.rb +++ b/app/models/form/sales/questions/person2_known.rb @@ -2,7 +2,7 @@ class Form::Sales::Questions::Person2Known < ::Form::Question def initialize(id, hsh, page) super @id = "details_known_2" - @check_answer_label = "Details known for person 2" + @check_answer_label = "Details known for person 2?" @header = "Do you know the details for person 2?" @type = "radio" @answer_options = ANSWER_OPTIONS diff --git a/app/models/form/sales/questions/person3_known.rb b/app/models/form/sales/questions/person3_known.rb index e8caab40a..f6f79447e 100644 --- a/app/models/form/sales/questions/person3_known.rb +++ b/app/models/form/sales/questions/person3_known.rb @@ -2,7 +2,7 @@ class Form::Sales::Questions::Person3Known < ::Form::Question def initialize(id, hsh, page) super @id = "details_known_3" - @check_answer_label = "Details known for person 3" + @check_answer_label = "Details known for person 3?" @header = "Do you know the details for person 3?" @type = "radio" @answer_options = ANSWER_OPTIONS diff --git a/app/models/form/sales/questions/person4_known.rb b/app/models/form/sales/questions/person4_known.rb index cf9fdb677..ab6d4c132 100644 --- a/app/models/form/sales/questions/person4_known.rb +++ b/app/models/form/sales/questions/person4_known.rb @@ -2,7 +2,7 @@ class Form::Sales::Questions::Person4Known < ::Form::Question def initialize(id, hsh, page) super @id = "details_known_4" - @check_answer_label = "Details known for person 4" + @check_answer_label = "Details known for person 4?" @header = "Do you know the details for person 4?" @type = "radio" @answer_options = ANSWER_OPTIONS diff --git a/spec/models/form/sales/pages/person2_known_spec.rb b/spec/models/form/sales/pages/person2_known_spec.rb new file mode 100644 index 000000000..57bac950f --- /dev/null +++ b/spec/models/form/sales/pages/person2_known_spec.rb @@ -0,0 +1,43 @@ +require "rails_helper" + +RSpec.describe Form::Sales::Pages::Person2Known, 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[details_known_2]) + end + + it "has the correct id" do + expect(page.id).to eq("person_2_known") + end + + it "has the correct header" do + expect(page.header).to eq("") + end + + it "has the correct header_partial" do + expect(page.header_partial).to eq("person_2_known_page") + 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( + [ + { "hholdcount" => 2 }, + { "hholdcount" => 3 }, + { "hholdcount" => 4 }, + ], + ) + end +end diff --git a/spec/models/form/sales/pages/person3_known_spec.rb b/spec/models/form/sales/pages/person3_known_spec.rb new file mode 100644 index 000000000..ef4c1c34d --- /dev/null +++ b/spec/models/form/sales/pages/person3_known_spec.rb @@ -0,0 +1,42 @@ +require "rails_helper" + +RSpec.describe Form::Sales::Pages::Person3Known, 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[details_known_3]) + end + + it "has the correct id" do + expect(page.id).to eq("person_3_known") + end + + it "has the correct header" do + expect(page.header).to eq("") + end + + it "has the correct header_partial" do + expect(page.header_partial).to eq("person_3_known_page") + 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_2" => 1, "hholdcount" => 3 }, + { "details_known_2" => 1, "hholdcount" => 4 }, + ], + ) + end +end diff --git a/spec/models/form/sales/pages/person4_known_spec.rb b/spec/models/form/sales/pages/person4_known_spec.rb new file mode 100644 index 000000000..024c121c9 --- /dev/null +++ b/spec/models/form/sales/pages/person4_known_spec.rb @@ -0,0 +1,41 @@ +require "rails_helper" + +RSpec.describe Form::Sales::Pages::Person4Known, 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[details_known_4]) + end + + it "has the correct id" do + expect(page.id).to eq("person_4_known") + end + + it "has the correct header" do + expect(page.header).to eq("") + end + + it "has the correct header_partial" do + expect(page.header_partial).to eq("person_4_known_page") + 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_3" => 1, "hholdcount" => 4 }, + ], + ) + end +end diff --git a/spec/models/form/sales/questions/person2_known_spec.rb b/spec/models/form/sales/questions/person2_known_spec.rb new file mode 100644 index 000000000..4e8a639c0 --- /dev/null +++ b/spec/models/form/sales/questions/person2_known_spec.rb @@ -0,0 +1,60 @@ +require "rails_helper" + +RSpec.describe Form::Sales::Questions::Person2Known, 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("details_known_2") + end + + it "has the correct header" do + expect(question.header).to eq("Do you know the details for person 2?") + end + + it "has the correct check_answer_label" do + expect(question.check_answer_label).to eq("Details known for person 2?") + 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({ + "1" => { "value" => "Yes" }, + "2" => { "value" => "No" }, + }) + end + + it "has correct conditional for" do + expect(question.conditional_for).to eq(nil) + 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" => [ + { + "details_known_2" => 1, + }, + ], + }, + ) + end +end diff --git a/spec/models/form/sales/questions/person3_known_spec.rb b/spec/models/form/sales/questions/person3_known_spec.rb new file mode 100644 index 000000000..bab7d864c --- /dev/null +++ b/spec/models/form/sales/questions/person3_known_spec.rb @@ -0,0 +1,60 @@ +require "rails_helper" + +RSpec.describe Form::Sales::Questions::Person3Known, 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("details_known_3") + end + + it "has the correct header" do + expect(question.header).to eq("Do you know the details for person 3?") + end + + it "has the correct check_answer_label" do + expect(question.check_answer_label).to eq("Details known for person 3?") + 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({ + "1" => { "value" => "Yes" }, + "2" => { "value" => "No" }, + }) + end + + it "has correct conditional for" do + expect(question.conditional_for).to eq(nil) + 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" => [ + { + "details_known_3" => 1, + }, + ], + }, + ) + end +end diff --git a/spec/models/form/sales/questions/person4_known_spec.rb b/spec/models/form/sales/questions/person4_known_spec.rb new file mode 100644 index 000000000..667a71f01 --- /dev/null +++ b/spec/models/form/sales/questions/person4_known_spec.rb @@ -0,0 +1,60 @@ +require "rails_helper" + +RSpec.describe Form::Sales::Questions::Person4Known, 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("details_known_4") + end + + it "has the correct header" do + expect(question.header).to eq("Do you know the details for person 4?") + end + + it "has the correct check_answer_label" do + expect(question.check_answer_label).to eq("Details known for person 4?") + 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({ + "1" => { "value" => "Yes" }, + "2" => { "value" => "No" }, + }) + end + + it "has correct conditional for" do + expect(question.conditional_for).to eq(nil) + 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" => [ + { + "details_known_4" => 1, + }, + ], + }, + ) + end +end