Browse Source

fix answered questions calculation

checkbox questions were not being counted appropriately so updated the test
for the method along with the method itself
pull/244/head
MadeTech Dushan 3 years ago
parent
commit
a2fb61b29d
  1. 2
      app/models/form/subsection.rb
  2. 11
      spec/models/form/subsection_spec.rb

2
app/models/form/subsection.rb

@ -58,7 +58,7 @@ class Form::Subsection
end
def answered_questions(case_log)
applicable_questions(case_log).select { |question| 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)

11
spec/models/form/subsection_spec.rb

@ -47,9 +47,16 @@ RSpec.describe Form::Subsection, type: :model do
end
it "has question helpers for the number of answered questions" do
expected_questions = %w[tenant_code age1]
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"
case_log.housingneeds_a = "Yes"
case_log.la = "York"
case_log.illness_type_1 = "Yes"
expect(subject.answered_questions(case_log).map(&:id)).to eq(expected_questions)
expect(subject.answered_questions_count(case_log)).to eq(2)
expect(subject.answered_questions_count(case_log)).to eq(5)
end
it "has a question helpers for the unanswered questions" do

Loading…
Cancel
Save