From e1052c5d762861d2c9d9c895c225459d1fa581c3 Mon Sep 17 00:00:00 2001 From: Arthur Campbell Date: Fri, 24 Feb 2023 17:41:45 +0000 Subject: [PATCH] update some depends on for readability and write test files for page classes --- .../lettings/pages/starter_tenancy_type.rb | 4 +-- .../form/lettings/pages/tenancy_length.rb | 2 +- .../form/lettings/pages/tenancy_type.rb | 2 +- ...ter_tenancy.rb => starter_tenancy_type.rb} | 2 +- app/models/lettings_log.rb | 8 +++++ .../pages/starter_tenancy_type_spec.rb | 31 +++++++++++++++++++ .../lettings/pages/tenancy_length_spec.rb | 31 +++++++++++++++++++ .../form/lettings/pages/tenancy_type_spec.rb | 31 +++++++++++++++++++ 8 files changed, 106 insertions(+), 5 deletions(-) rename app/models/form/lettings/questions/{starter_tenancy.rb => starter_tenancy_type.rb} (91%) create mode 100644 spec/models/form/lettings/pages/starter_tenancy_type_spec.rb create mode 100644 spec/models/form/lettings/pages/tenancy_length_spec.rb create mode 100644 spec/models/form/lettings/pages/tenancy_type_spec.rb diff --git a/app/models/form/lettings/pages/starter_tenancy_type.rb b/app/models/form/lettings/pages/starter_tenancy_type.rb index 4b6ac64c6..fe147bc77 100644 --- a/app/models/form/lettings/pages/starter_tenancy_type.rb +++ b/app/models/form/lettings/pages/starter_tenancy_type.rb @@ -2,12 +2,12 @@ class Form::Lettings::Pages::StarterTenancyType < ::Form::Page def initialize(id, hsh, subsection) super @id = "starter_tenancy_type" - @depends_on = [{ "startertenancy" => 1 }] + @depends_on = [{ "starter_tenancy?" => true }] end def questions @questions ||= [ - Form::Lettings::Questions::StarterTenancy.new(nil, nil, self), + Form::Lettings::Questions::StarterTenancyType.new(nil, nil, self), Form::Lettings::Questions::TenancyOther.new(nil, nil, self), ] end diff --git a/app/models/form/lettings/pages/tenancy_length.rb b/app/models/form/lettings/pages/tenancy_length.rb index 17d2e825b..554477294 100644 --- a/app/models/form/lettings/pages/tenancy_length.rb +++ b/app/models/form/lettings/pages/tenancy_length.rb @@ -2,7 +2,7 @@ class Form::Lettings::Pages::TenancyLength < ::Form::Page def initialize(id, hsh, subsection) super @id = "tenancy_length" - @depends_on = [{ "tenancy" => 4 }, { "tenancy" => 6 }, { "tenancy" => 3 }] + @depends_on = [{ "tenancy_type_fixed_term_or_other?" => true }] end def questions diff --git a/app/models/form/lettings/pages/tenancy_type.rb b/app/models/form/lettings/pages/tenancy_type.rb index b681b7553..c15f6f27a 100644 --- a/app/models/form/lettings/pages/tenancy_type.rb +++ b/app/models/form/lettings/pages/tenancy_type.rb @@ -2,7 +2,7 @@ class Form::Lettings::Pages::TenancyType < ::Form::Page def initialize(id, hsh, subsection) super @id = "tenancy_type" - @depends_on = [{ "startertenancy" => 2 }] + @depends_on = [{ "starter_tenancy?" => false }] end def questions diff --git a/app/models/form/lettings/questions/starter_tenancy.rb b/app/models/form/lettings/questions/starter_tenancy_type.rb similarity index 91% rename from app/models/form/lettings/questions/starter_tenancy.rb rename to app/models/form/lettings/questions/starter_tenancy_type.rb index 9e489c129..cd46e0c4b 100644 --- a/app/models/form/lettings/questions/starter_tenancy.rb +++ b/app/models/form/lettings/questions/starter_tenancy_type.rb @@ -1,4 +1,4 @@ -class Form::Lettings::Questions::StarterTenancy < ::Form::Question +class Form::Lettings::Questions::StarterTenancyType < ::Form::Question def initialize(id, hsh, page) super @id = "tenancy" diff --git a/app/models/lettings_log.rb b/app/models/lettings_log.rb index 02236f70b..48866426b 100644 --- a/app/models/lettings_log.rb +++ b/app/models/lettings_log.rb @@ -201,6 +201,14 @@ class LettingsLog < Log renewal == 1 end + def starter_tenancy? + startertenancy == 1 + end + + def tenancy_type_fixed_term_or_other? + [4, 6, 3].include? tenancy + end + def is_general_needs? # 1: General Needs needstype == 1 diff --git a/spec/models/form/lettings/pages/starter_tenancy_type_spec.rb b/spec/models/form/lettings/pages/starter_tenancy_type_spec.rb new file mode 100644 index 000000000..795dee561 --- /dev/null +++ b/spec/models/form/lettings/pages/starter_tenancy_type_spec.rb @@ -0,0 +1,31 @@ +require "rails_helper" + +RSpec.describe Form::Lettings::Pages::StarterTenancyType, type: :model do + subject(:page) { described_class.new(nil, nil, subsection) } + + 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[tenancy tenancyother]) + end + + it "has the correct id" do + expect(page.id).to eq("starter_tenancy_type") + end + + it "has the correct header" do + expect(page.header).to be_nil + end + + it "has the correct description" do + expect(page.description).to be_nil + end + + it "has the correct depends_on" do + expect(page.depends_on).to eq([{ "starter_tenancy?" => true }]) + end +end diff --git a/spec/models/form/lettings/pages/tenancy_length_spec.rb b/spec/models/form/lettings/pages/tenancy_length_spec.rb new file mode 100644 index 000000000..e633a9b9e --- /dev/null +++ b/spec/models/form/lettings/pages/tenancy_length_spec.rb @@ -0,0 +1,31 @@ +require "rails_helper" + +RSpec.describe Form::Lettings::Pages::TenancyLength, type: :model do + subject(:page) { described_class.new(nil, nil, subsection) } + + 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[tenancylength] + end + + it "has the correct id" do + expect(page.id).to eq "tenancy_length" + end + + it "has the correct header" do + expect(page.header).to be_nil + end + + it "has the correct description" do + expect(page.description).to be_nil + end + + it "has the correct depends_on" do + expect(page.depends_on).to eq [{ "tenancy_type_fixed_term_or_other?" => true }] + end +end diff --git a/spec/models/form/lettings/pages/tenancy_type_spec.rb b/spec/models/form/lettings/pages/tenancy_type_spec.rb new file mode 100644 index 000000000..ef772e85e --- /dev/null +++ b/spec/models/form/lettings/pages/tenancy_type_spec.rb @@ -0,0 +1,31 @@ +require "rails_helper" + +RSpec.describe Form::Lettings::Pages::TenancyType, type: :model do + subject(:page) { described_class.new(nil, nil, subsection) } + + 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[tenancy tenancyother] + end + + it "has the correct id" do + expect(page.id).to eq "tenancy_type" + end + + it "has the correct header" do + expect(page.header).to be_nil + end + + it "has the correct description" do + expect(page.description).to be_nil + end + + it "has the correct depends_on" do + expect(page.depends_on).to eq [{ "starter_tenancy?" => false }] + end +end