diff --git a/app/models/form/page.rb b/app/models/form/page.rb index 07b8203b9..0ebbbbb70 100644 --- a/app/models/form/page.rb +++ b/app/models/form/page.rb @@ -29,11 +29,13 @@ class Form::Page def non_conditional_questions @non_conditional_questions ||= questions.reject do |q| - conditional_questions.include?(q.id) + conditional_questions_ids.include?(q.id) end end - def conditional_questions +private + + def conditional_questions_ids @conditional_questions ||= questions.flat_map { |q| next if q.conditional_for.blank? @@ -42,8 +44,6 @@ class Form::Page }.compact end -private - def depends_on_met(case_log) return true unless depends_on diff --git a/spec/models/form/page_spec.rb b/spec/models/form/page_spec.rb index 403227e83..ea0cb2860 100644 --- a/spec/models/form/page_spec.rb +++ b/spec/models/form/page_spec.rb @@ -44,6 +44,16 @@ RSpec.describe Form::Page, type: :model do expect(subject.expected_responses.map(&:id)).to eq(expected_responses) end + context "page with conditional questions" do + let(:page_id) { "housing_benefit" } + + it "knows which questions are not conditional" do + expected_non_conditional_questions = %w[hb] + expect(subject.non_conditional_questions.map(&:id)) + .to eq(expected_non_conditional_questions) + end + end + context "for a given case log" do let(:case_log) { FactoryBot.build(:case_log, :in_progress) }