From 14ec3ee71e3052e45fb362e2536de74bdd2254be Mon Sep 17 00:00:00 2001 From: natdeanlewissoftwire Date: Thu, 22 Dec 2022 14:19:41 +0000 Subject: [PATCH] tests: add new tests --- spec/models/form/sales/pages/resale_spec.rb | 39 +++++++++++++++ .../form/sales/questions/resale_spec.rb | 48 +++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 spec/models/form/sales/pages/resale_spec.rb create mode 100644 spec/models/form/sales/questions/resale_spec.rb diff --git a/spec/models/form/sales/pages/resale_spec.rb b/spec/models/form/sales/pages/resale_spec.rb new file mode 100644 index 000000000..4a9b1a5eb --- /dev/null +++ b/spec/models/form/sales/pages/resale_spec.rb @@ -0,0 +1,39 @@ +require "rails_helper" + +RSpec.describe Form::Sales::Pages::Resale, 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[resale]) + end + + it "has the correct id" do + expect(page.id).to eq("resale") + 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 the correct depends_on" do + expec(page.depends_on).to eq( + [{ + "staircase" => 2, + }, + { + "staircase" => 3, + }] + ) +end diff --git a/spec/models/form/sales/questions/resale_spec.rb b/spec/models/form/sales/questions/resale_spec.rb new file mode 100644 index 000000000..a52999fbb --- /dev/null +++ b/spec/models/form/sales/questions/resale_spec.rb @@ -0,0 +1,48 @@ +require "rails_helper" + +RSpec.describe Form::Sales::Questions::Resale, 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("resale") + end + + it "has the correct header" do + expect(question.header).to eq("Is this a resale?") + end + + it "has the correct check_answer_label" do + expect(question.check_answer_label).to eq("Is this a resale?") + 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("If the social landlord has previously sold the property to another buyer and is now reselling the property, select 'yes'. If this is the first time the property has been sold, select 'no'.") + end +end