From a2fb61b29d78a9f762db3faf5d30281cf13e7506 Mon Sep 17 00:00:00 2001 From: MadeTech Dushan Date: Tue, 25 Jan 2022 15:05:42 +0000 Subject: [PATCH] fix answered questions calculation checkbox questions were not being counted appropriately so updated the test for the method along with the method itself --- app/models/form/subsection.rb | 2 +- spec/models/form/subsection_spec.rb | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/models/form/subsection.rb b/app/models/form/subsection.rb index 3bd7892fc..50c5ba960 100644 --- a/app/models/form/subsection.rb +++ b/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) diff --git a/spec/models/form/subsection_spec.rb b/spec/models/form/subsection_spec.rb index 2bb177a0c..4e3c22973 100644 --- a/spec/models/form/subsection_spec.rb +++ b/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