Browse Source

feat: combine identical offered questions

pull/1692/head
natdeanlewissoftwire 3 years ago
parent
commit
e753e76fee
  1. 12
      app/models/form/lettings/pages/property_number_of_times_relet.rb
  2. 11
      app/models/form/lettings/pages/property_number_of_times_relet_not_social_let.rb
  3. 11
      app/models/form/lettings/pages/property_number_of_times_relet_social_let.rb
  4. 16
      app/models/form/lettings/questions/offered_social_let.rb
  5. 3
      app/models/form/lettings/subsections/property_information.rb
  6. 44
      spec/models/form/lettings/questions/offered_social_let_spec.rb
  7. 3
      spec/models/form/lettings/subsections/property_information_spec.rb

12
app/models/form/lettings/pages/property_number_of_times_relet.rb

@ -0,0 +1,12 @@
class Form::Lettings::Pages::PropertyNumberOfTimesRelet < ::Form::Page
def initialize(id, hsh, subsection)
super
@id = "property_number_of_times_relet"
@depends_on = [{ "first_time_property_let_as_social_housing" => 0, "is_renewal?" => false },
{ "first_time_property_let_as_social_housing" => 1, "is_renewal?" => false }]
end
def questions
@questions ||= [Form::Lettings::Questions::Offered.new(nil, nil, self)]
end
end

11
app/models/form/lettings/pages/property_number_of_times_relet_not_social_let.rb

@ -1,11 +0,0 @@
class Form::Lettings::Pages::PropertyNumberOfTimesReletNotSocialLet < ::Form::Page
def initialize(id, hsh, subsection)
super
@id = "property_number_of_times_relet_not_social_let"
@depends_on = [{ "first_time_property_let_as_social_housing" => 0, "is_renewal?" => false }]
end
def questions
@questions ||= [Form::Lettings::Questions::Offered.new(nil, nil, self)]
end
end

11
app/models/form/lettings/pages/property_number_of_times_relet_social_let.rb

@ -1,11 +0,0 @@
class Form::Lettings::Pages::PropertyNumberOfTimesReletSocialLet < ::Form::Page
def initialize(id, hsh, subsection)
super
@id = "property_number_of_times_relet_social_let"
@depends_on = [{ "first_time_property_let_as_social_housing" => 1, "is_renewal?" => false }]
end
def questions
@questions ||= [Form::Lettings::Questions::OfferedSocialLet.new(nil, nil, self)]
end
end

16
app/models/form/lettings/questions/offered_social_let.rb

@ -1,16 +0,0 @@
class Form::Lettings::Questions::OfferedSocialLet < ::Form::Question
def initialize(id, hsh, page)
super
@id = "offered"
@check_answer_label = I18n.t("check_answer_labels.offered")
@header = I18n.t("questions.offered")
@type = "numeric"
@width = 2
@check_answers_card_number = 0
@max = 150
@min = 0
@hint_text = I18n.t("hints.offered")
@step = 1
@question_number = 18
end
end

3
app/models/form/lettings/subsections/property_information.rb

@ -16,8 +16,7 @@ class Form::Lettings::Subsections::PropertyInformation < ::Form::Subsection
Form::Lettings::Pages::PropertyLetType.new(nil, nil, self), Form::Lettings::Pages::PropertyLetType.new(nil, nil, self),
Form::Lettings::Pages::PropertyVacancyReasonNotFirstLet.new(nil, nil, self), Form::Lettings::Pages::PropertyVacancyReasonNotFirstLet.new(nil, nil, self),
Form::Lettings::Pages::PropertyVacancyReasonFirstLet.new(nil, nil, self), Form::Lettings::Pages::PropertyVacancyReasonFirstLet.new(nil, nil, self),
Form::Lettings::Pages::PropertyNumberOfTimesReletNotSocialLet.new(nil, nil, self), Form::Lettings::Pages::PropertyNumberOfTimesRelet.new(nil, nil, self),
Form::Lettings::Pages::PropertyNumberOfTimesReletSocialLet.new(nil, nil, self),
Form::Lettings::Pages::PropertyUnitType.new(nil, nil, self), Form::Lettings::Pages::PropertyUnitType.new(nil, nil, self),
Form::Lettings::Pages::PropertyBuildingType.new(nil, nil, self), Form::Lettings::Pages::PropertyBuildingType.new(nil, nil, self),
Form::Lettings::Pages::PropertyWheelchairAccessible.new(nil, nil, self), Form::Lettings::Pages::PropertyWheelchairAccessible.new(nil, nil, self),

44
spec/models/form/lettings/questions/offered_social_let_spec.rb

@ -1,44 +0,0 @@
require "rails_helper"
RSpec.describe Form::Lettings::Questions::OfferedSocialLet, type: :model do
subject(:question) { described_class.new(nil, nil, page) }
let(:page) { instance_double(Form::Page) }
it "has correct page" do
expect(question.page).to be page
end
it "has the correct id" do
expect(question.id).to eq "offered"
end
it "has the correct header" do
expect(question.header).to eq "How many times was the property offered between becoming vacant and this letting?"
end
it "has the correct check_answer_label" do
expect(question.check_answer_label).to eq "Times previously offered since becoming available"
end
it "has the correct type" do
expect(question.type).to eq "numeric"
end
it "has the correct minimum and maximum values" do
expect(question.min).to be 0
expect(question.max).to be 150
end
it "has the correct step" do
expect(question.step).to be 1
end
it "is not marked as derived" do
expect(question.derived?).to be false
end
it "has the correct hint_text" do
expect(question.hint_text).to eq "Do not include the offer that led to this letting. This is after the last tenancy ended. If the property is being offered for let for the first time, enter 0."
end
end

3
spec/models/form/lettings/subsections/property_information_spec.rb

@ -26,8 +26,7 @@ RSpec.describe Form::Lettings::Subsections::PropertyInformation, type: :model do
property_let_type property_let_type
property_vacancy_reason_not_first_let property_vacancy_reason_not_first_let
property_vacancy_reason_first_let property_vacancy_reason_first_let
property_number_of_times_relet_not_social_let property_number_of_times_relet
property_number_of_times_relet_social_let
property_unit_type property_unit_type
property_building_type property_building_type
property_wheelchair_accessible property_wheelchair_accessible

Loading…
Cancel
Save