Browse Source

Add reusable age questions and adjust the tests

pull/1254/head
Kat 3 years ago
parent
commit
5e6bfd5666
  1. 15
      app/models/form/lettings/questions/age.rb
  2. 16
      app/models/form/lettings/questions/age_known.rb
  3. 2
      spec/models/form/lettings/pages/person3_age_spec.rb
  4. 2
      spec/models/form/lettings/pages/person6_age_spec.rb
  5. 2
      spec/models/form/lettings/pages/person7_age_spec.rb
  6. 2
      spec/models/form/lettings/pages/person8_age_spec.rb
  7. 10
      spec/models/form/lettings/questions/age2_known_spec.rb
  8. 6
      spec/models/form/lettings/questions/age2_spec.rb
  9. 10
      spec/models/form/lettings/questions/age3_known_spec.rb
  10. 6
      spec/models/form/lettings/questions/age3_spec.rb
  11. 10
      spec/models/form/lettings/questions/age4_known_spec.rb
  12. 6
      spec/models/form/lettings/questions/age4_spec.rb
  13. 10
      spec/models/form/lettings/questions/age5_known_spec.rb
  14. 6
      spec/models/form/lettings/questions/age5_spec.rb
  15. 10
      spec/models/form/lettings/questions/age6_known_spec.rb
  16. 6
      spec/models/form/lettings/questions/age6_spec.rb
  17. 10
      spec/models/form/lettings/questions/age7_known_spec.rb
  18. 6
      spec/models/form/lettings/questions/age7_spec.rb
  19. 10
      spec/models/form/lettings/questions/age8_known_spec.rb
  20. 6
      spec/models/form/lettings/questions/age8_spec.rb

15
app/models/form/lettings/questions/age.rb

@ -0,0 +1,15 @@
class Form::Lettings::Questions::Age < ::Form::Question
def initialize(id, hsh, page, person_index:)
super(id, hsh, page)
@id = "age#{person_index}"
@check_answer_label = "Person #{person_index}’s age"
@header = "Age"
@type = "numeric"
@width = 2
@inferred_check_answers_value = [{ "condition" => { "age#{person_index}_known" => 1 }, "value" => "Not known" }]
@check_answers_card_number = person_index
@max = 120
@min = 0
@step = 1
end
end

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

@ -0,0 +1,16 @@
class Form::Lettings::Questions::AgeKnown < ::Form::Question
def initialize(id, hsh, page, person_index:)
super(id, hsh, page)
@id = "age#{person_index}_known"
@check_answer_label = ""
@header = "Do you know person #{person_index}’s age?"
@type = "radio"
@check_answers_card_number = person_index
@hint_text = ""
@answer_options = ANSWER_OPTIONS
@conditional_for = { "age#{person_index}" => [0] }
@hidden_in_check_answers = { "depends_on" => [{ "age#{person_index}_known" => 0 }, { "age#{person_index}_known" => 1 }] }
end
ANSWER_OPTIONS = { "0" => { "value" => "Yes" }, "1" => { "value" => "No" } }.freeze
end

2
spec/models/form/lettings/pages/person3_age_spec.rb

@ -29,7 +29,7 @@ RSpec.describe Form::Lettings::Pages::Person3Age, type: :model do
it "has correct depends_on" do
expect(page.depends_on).to eq(
[{"details_known_3"=>0}],
[{ "details_known_3" => 0 }],
)
end
end

2
spec/models/form/lettings/pages/person6_age_spec.rb

@ -29,7 +29,7 @@ RSpec.describe Form::Lettings::Pages::Person6Age, type: :model do
it "has correct depends_on" do
expect(page.depends_on).to eq(
[{"details_known_6"=>0}],
[{ "details_known_6" => 0 }],
)
end
end

2
spec/models/form/lettings/pages/person7_age_spec.rb

@ -29,7 +29,7 @@ RSpec.describe Form::Lettings::Pages::Person7Age, type: :model do
it "has correct depends_on" do
expect(page.depends_on).to eq(
[{"details_known_7"=>0}],
[{ "details_known_7" => 0 }],
)
end
end

2
spec/models/form/lettings/pages/person8_age_spec.rb

@ -29,7 +29,7 @@ RSpec.describe Form::Lettings::Pages::Person8Age, type: :model do
it "has correct depends_on" do
expect(page.depends_on).to eq(
[{"details_known_8"=>0}],
[{ "details_known_8" => 0 }],
)
end
end

10
spec/models/form/lettings/questions/age2_known_spec.rb

@ -1,15 +1,11 @@
require "rails_helper"
RSpec.describe Form::Lettings::Questions::Age2Known, type: :model do
subject(:question) { described_class.new(question_id, question_definition, page) }
RSpec.describe Form::Lettings::Questions::AgeKnown, type: :model do
subject(:question) { described_class.new(nil, question_definition, page, person_index:) }
let(:question_id) { "age2_known" }
let(:question_definition) { nil }
let(:page) { instance_double(Form::Page) }
before do
allow(page).to receive(:id).and_return("age2_known")
end
let(:person_index) { 2 }
it "has correct page" do
expect(question.page).to eq(page)

6
spec/models/form/lettings/questions/age2_spec.rb

@ -1,11 +1,11 @@
require "rails_helper"
RSpec.describe Form::Lettings::Questions::Age2, type: :model do
subject(:question) { described_class.new(question_id, question_definition, page) }
RSpec.describe Form::Lettings::Questions::Age, type: :model do
subject(:question) { described_class.new(nil, question_definition, page, person_index:) }
let(:question_id) { "age2" }
let(:question_definition) { nil }
let(:page) { instance_double(Form::Page) }
let(:person_index) { 2 }
it "has correct page" do
expect(question.page).to eq(page)

10
spec/models/form/lettings/questions/age3_known_spec.rb

@ -1,15 +1,11 @@
require "rails_helper"
RSpec.describe Form::Lettings::Questions::Age3Known, type: :model do
subject(:question) { described_class.new(question_id, question_definition, page) }
RSpec.describe Form::Lettings::Questions::AgeKnown, type: :model do
subject(:question) { described_class.new(nil, question_definition, page, person_index:) }
let(:question_id) { "age3_known" }
let(:question_definition) { nil }
let(:page) { instance_double(Form::Page) }
before do
allow(page).to receive(:id).and_return("age3_known")
end
let(:person_index) { 3 }
it "has correct page" do
expect(question.page).to eq(page)

6
spec/models/form/lettings/questions/age3_spec.rb

@ -1,11 +1,11 @@
require "rails_helper"
RSpec.describe Form::Lettings::Questions::Age3, type: :model do
subject(:question) { described_class.new(question_id, question_definition, page) }
RSpec.describe Form::Lettings::Questions::Age, type: :model do
subject(:question) { described_class.new(nil, question_definition, page, person_index:) }
let(:question_id) { "age3" }
let(:question_definition) { nil }
let(:page) { instance_double(Form::Page) }
let(:person_index) { 3 }
it "has correct page" do
expect(question.page).to eq(page)

10
spec/models/form/lettings/questions/age4_known_spec.rb

@ -1,15 +1,11 @@
require "rails_helper"
RSpec.describe Form::Lettings::Questions::Age4Known, type: :model do
subject(:question) { described_class.new(question_id, question_definition, page) }
RSpec.describe Form::Lettings::Questions::AgeKnown, type: :model do
subject(:question) { described_class.new(nil, question_definition, page, person_index:) }
let(:question_id) { "age4_known" }
let(:question_definition) { nil }
let(:page) { instance_double(Form::Page) }
before do
allow(page).to receive(:id).and_return("age4_known")
end
let(:person_index) { 4 }
it "has correct page" do
expect(question.page).to eq(page)

6
spec/models/form/lettings/questions/age4_spec.rb

@ -1,11 +1,11 @@
require "rails_helper"
RSpec.describe Form::Lettings::Questions::Age4, type: :model do
subject(:question) { described_class.new(question_id, question_definition, page) }
RSpec.describe Form::Lettings::Questions::Age, type: :model do
subject(:question) { described_class.new(nil, question_definition, page, person_index:) }
let(:question_id) { "age4" }
let(:question_definition) { nil }
let(:page) { instance_double(Form::Page) }
let(:person_index) { 4 }
it "has correct page" do
expect(question.page).to eq(page)

10
spec/models/form/lettings/questions/age5_known_spec.rb

@ -1,15 +1,11 @@
require "rails_helper"
RSpec.describe Form::Lettings::Questions::Age5Known, type: :model do
subject(:question) { described_class.new(question_id, question_definition, page) }
RSpec.describe Form::Lettings::Questions::AgeKnown, type: :model do
subject(:question) { described_class.new(nil, question_definition, page, person_index:) }
let(:question_id) { "age5_known" }
let(:question_definition) { nil }
let(:page) { instance_double(Form::Page) }
before do
allow(page).to receive(:id).and_return("age5_known")
end
let(:person_index) { 5 }
it "has correct page" do
expect(question.page).to eq(page)

6
spec/models/form/lettings/questions/age5_spec.rb

@ -1,11 +1,11 @@
require "rails_helper"
RSpec.describe Form::Lettings::Questions::Age5, type: :model do
subject(:question) { described_class.new(question_id, question_definition, page) }
RSpec.describe Form::Lettings::Questions::Age, type: :model do
subject(:question) { described_class.new(nil, question_definition, page, person_index:) }
let(:question_id) { "age5" }
let(:question_definition) { nil }
let(:page) { instance_double(Form::Page) }
let(:person_index) { 5 }
it "has correct page" do
expect(question.page).to eq(page)

10
spec/models/form/lettings/questions/age6_known_spec.rb

@ -1,15 +1,11 @@
require "rails_helper"
RSpec.describe Form::Lettings::Questions::Age6Known, type: :model do
subject(:question) { described_class.new(question_id, question_definition, page) }
RSpec.describe Form::Lettings::Questions::AgeKnown, type: :model do
subject(:question) { described_class.new(nil, question_definition, page, person_index:) }
let(:question_id) { "age6_known" }
let(:question_definition) { nil }
let(:page) { instance_double(Form::Page) }
before do
allow(page).to receive(:id).and_return("age6_known")
end
let(:person_index) { 6 }
it "has correct page" do
expect(question.page).to eq(page)

6
spec/models/form/lettings/questions/age6_spec.rb

@ -1,11 +1,11 @@
require "rails_helper"
RSpec.describe Form::Lettings::Questions::Age6, type: :model do
subject(:question) { described_class.new(question_id, question_definition, page) }
RSpec.describe Form::Lettings::Questions::Age, type: :model do
subject(:question) { described_class.new(nil, question_definition, page, person_index:) }
let(:question_id) { "age6" }
let(:question_definition) { nil }
let(:page) { instance_double(Form::Page) }
let(:person_index) { 6 }
it "has correct page" do
expect(question.page).to eq(page)

10
spec/models/form/lettings/questions/age7_known_spec.rb

@ -1,15 +1,11 @@
require "rails_helper"
RSpec.describe Form::Lettings::Questions::Age7Known, type: :model do
subject(:question) { described_class.new(question_id, question_definition, page) }
RSpec.describe Form::Lettings::Questions::AgeKnown, type: :model do
subject(:question) { described_class.new(nil, question_definition, page, person_index:) }
let(:question_id) { "age7_known" }
let(:question_definition) { nil }
let(:page) { instance_double(Form::Page) }
before do
allow(page).to receive(:id).and_return("age7_known")
end
let(:person_index) { 7 }
it "has correct page" do
expect(question.page).to eq(page)

6
spec/models/form/lettings/questions/age7_spec.rb

@ -1,11 +1,11 @@
require "rails_helper"
RSpec.describe Form::Lettings::Questions::Age7, type: :model do
subject(:question) { described_class.new(question_id, question_definition, page) }
RSpec.describe Form::Lettings::Questions::Age, type: :model do
subject(:question) { described_class.new(nil, question_definition, page, person_index:) }
let(:question_id) { "age7" }
let(:question_definition) { nil }
let(:page) { instance_double(Form::Page) }
let(:person_index) { 7 }
it "has correct page" do
expect(question.page).to eq(page)

10
spec/models/form/lettings/questions/age8_known_spec.rb

@ -1,15 +1,11 @@
require "rails_helper"
RSpec.describe Form::Lettings::Questions::Age8Known, type: :model do
subject(:question) { described_class.new(question_id, question_definition, page) }
RSpec.describe Form::Lettings::Questions::AgeKnown, type: :model do
subject(:question) { described_class.new(nil, question_definition, page, person_index:) }
let(:question_id) { "age8_known" }
let(:question_definition) { nil }
let(:page) { instance_double(Form::Page) }
before do
allow(page).to receive(:id).and_return("age8_known")
end
let(:person_index) { 8 }
it "has correct page" do
expect(question.page).to eq(page)

6
spec/models/form/lettings/questions/age8_spec.rb

@ -1,11 +1,11 @@
require "rails_helper"
RSpec.describe Form::Lettings::Questions::Age8, type: :model do
subject(:question) { described_class.new(question_id, question_definition, page) }
RSpec.describe Form::Lettings::Questions::Age, type: :model do
subject(:question) { described_class.new(nil, question_definition, page, person_index:) }
let(:question_id) { "age8" }
let(:question_definition) { nil }
let(:page) { instance_double(Form::Page) }
let(:person_index) { 8 }
it "has correct page" do
expect(question.page).to eq(page)

Loading…
Cancel
Save