Browse Source

Fix subsection status method

pull/244/head
Kat 4 years ago
parent
commit
30438cbf03
  1. 4
      app/models/form/subsection.rb
  2. 2
      spec/fixtures/forms/2021_2022.json
  3. 15
      spec/models/form/subsection_spec.rb

4
app/models/form/subsection.rb

@ -32,7 +32,7 @@ class Form::Subsection
qs = applicable_questions(case_log)
return :not_started if qs.all? { |question| case_log[question.id].blank? || question.read_only? }
return :completed if qs.all? { |question| question.completed?(case_log) }
return :completed if qs.all? { |question| question.type == "checkbox" ? question.answer_options.keys.any? { |key| case_log[key] == "Yes" } : question.completed?(case_log) }
:in_progress
end
@ -58,7 +58,7 @@ class Form::Subsection
end
def answered_questions(case_log)
applicable_questions(case_log).select { |question| question.type == "checkbox"? question.answer_options.keys.any? { |key| case_log[key] == "Yes" } : case_log[question.id].present? }
applicable_questions(case_log).select { |question| question.type == "checkbox" ? question.answer_options.keys.any? { |key| case_log[key] == "Yes" } : case_log[question.id].present? }
end
def unanswered_questions(case_log)

2
spec/fixtures/forms/2021_2022.json vendored

@ -441,7 +441,7 @@
"dependent_question": {
"check_answer_label": "Dependent Question",
"header": "Question to test page routing",
"type": "checkbox",
"type": "radio",
"answer_options": {
"0": "Option A",
"1": "Option B"

15
spec/models/form/subsection_spec.rb

@ -35,6 +35,17 @@ RSpec.describe Form::Subsection, type: :model do
expect(subject.status(case_log)).to eq(:in_progress)
end
it "has a completed status for completed subsection" do
subsection_definition = section_definition["subsections"]["household_needs"]
subject = Form::Subsection.new("household_needs", subsection_definition, section)
case_log.armedforces = "No"
case_log.illness = "No"
case_log.housingneeds_a = "Yes"
case_log.la = "York"
case_log.illness_type_1 = "Yes"
expect(subject.status(case_log)).to eq(:completed)
end
it "has status helpers" do
expect(subject.is_incomplete?(case_log)).to be(true)
expect(subject.is_started?(case_log)).to be(true)
@ -47,8 +58,8 @@ RSpec.describe Form::Subsection, type: :model do
end
it "has question helpers for the number of answered questions" do
subsection_definition = section_definition["subsections"]["household_needs"]
subject = Form::Subsection.new("household_needs", subsection_definition, section)
subsection_definition = section_definition["subsections"]["household_needs"]
subject = Form::Subsection.new("household_needs", subsection_definition, section)
expected_questions = %w[armedforces illness accessibility_requirements la condition_effects]
case_log.armedforces = "No"
case_log.illness = "No"

Loading…
Cancel
Save