diff --git a/app/controllers/case_logs_controller.rb b/app/controllers/case_logs_controller.rb
index f82906129..876e337ff 100644
--- a/app/controllers/case_logs_controller.rb
+++ b/app/controllers/case_logs_controller.rb
@@ -28,7 +28,6 @@ class CaseLogsController < ApplicationController
def create
case_log = CaseLog.new(case_log_params)
- case_log.form.current_user = current_user
respond_to do |format|
format.html do
case_log.save!
@@ -62,7 +61,6 @@ class CaseLogsController < ApplicationController
format.html { edit }
format.json do
if @case_log
- @case_log.form.current_user = current_user
render json: @case_log, status: :ok
else
render_not_found_json("Log", params[:id])
@@ -74,7 +72,7 @@ class CaseLogsController < ApplicationController
def edit
@case_log = current_user.case_logs.find_by(id: params[:id])
if @case_log
- render :edit
+ render :edit, locals: { current_user: }
else
render_not_found
end
diff --git a/app/controllers/form_controller.rb b/app/controllers/form_controller.rb
index 6f7bc3790..df924665a 100644
--- a/app/controllers/form_controller.rb
+++ b/app/controllers/form_controller.rb
@@ -25,8 +25,7 @@ class FormController < ApplicationController
if @case_log
current_url = request.env["PATH_INFO"]
subsection = @case_log.form.get_subsection(current_url.split("/")[-2])
- @case_log.form.current_user = current_user
- render "form/check_answers", locals: { subsection: }
+ render "form/check_answers", locals: { subsection:, current_user: }
else
render_not_found
end
@@ -51,8 +50,7 @@ class FormController < ApplicationController
end
@subsection = @case_log.form.subsection_for_page(page)
@page = @case_log.form.get_page(page.id)
- @case_log.form.current_user = current_user
- if @page.routed_to?(@case_log) && @page.subsection.enabled?(@case_log)
+ if @page.routed_to?(@case_log, current_user)
render "form/page"
else
redirect_to case_log_path(@case_log)
@@ -111,15 +109,15 @@ private
if is_referrer_check_answers?
page_ids = @case_log.form.subsection_for_page(@page).pages.map(&:id)
page_index = page_ids.index(@page.id)
- next_page = @case_log.form.next_page(@page, @case_log)
- previous_page = @case_log.form.previous_page(page_ids, page_index, @case_log)
+ next_page = @case_log.form.next_page(@page, @case_log, current_user)
+ previous_page = @case_log.form.previous_page(page_ids, page_index, @case_log, current_user)
if next_page.to_s.include?("value_check") || next_page == previous_page
return "/logs/#{@case_log.id}/#{next_page.dasherize}?referrer=check_answers"
else
return send("case_log_#{@case_log.form.subsection_for_page(@page).id}_check_answers_path", @case_log)
end
end
- redirect_path = @case_log.form.next_page_redirect_path(@page, @case_log)
+ redirect_path = @case_log.form.next_page_redirect_path(@page, @case_log, current_user)
send(redirect_path, @case_log)
end
end
diff --git a/app/helpers/check_answers_helper.rb b/app/helpers/check_answers_helper.rb
index afa95069b..982cab7cc 100644
--- a/app/helpers/check_answers_helper.rb
+++ b/app/helpers/check_answers_helper.rb
@@ -1,9 +1,9 @@
module CheckAnswersHelper
include GovukLinkHelper
- def display_answered_questions_summary(subsection, case_log)
- total = subsection.applicable_questions_count(case_log)
- answered = subsection.answered_questions_count(case_log)
+ def display_answered_questions_summary(subsection, case_log, current_user)
+ total = total_count(subsection, case_log, current_user)
+ answered = answered_questions_count(subsection, case_log, current_user)
if total == answered
'
You answered all the questions.
'.html_safe
else
@@ -11,6 +11,24 @@ module CheckAnswersHelper
end
end
+private
+
+ def answered_questions_count(subsection, case_log, current_user)
+ answered_questions(subsection, case_log, current_user).count
+ end
+
+ def answered_questions(subsection, case_log, current_user)
+ total_applicable_questions(subsection, case_log, current_user).select { |q| q.completed?(case_log) }
+ end
+
+ def total_count(subsection, case_log, current_user)
+ total_applicable_questions(subsection, case_log, current_user).count
+ end
+
+ def total_applicable_questions(subsection, case_log, current_user)
+ subsection.applicable_questions(case_log).reject { |q| q.hidden_in_check_answers?(case_log, current_user) }
+ end
+
def get_answer_label(question, case_log)
question.answer_label(case_log).presence || "You didn’t answer this question".html_safe
end
diff --git a/app/helpers/tasklist_helper.rb b/app/helpers/tasklist_helper.rb
index 9822958bb..5ca37b56c 100644
--- a/app/helpers/tasklist_helper.rb
+++ b/app/helpers/tasklist_helper.rb
@@ -11,19 +11,26 @@ module TasklistHelper
case_log.form.subsections.count { |subsection| subsection.status(case_log) == status }
end
- def next_page_or_check_answers(subsection, case_log)
+ def next_page_or_check_answers(subsection, case_log, current_user)
path = if subsection.is_started?(case_log)
"case_log_#{subsection.id}_check_answers_path"
else
- next_page = subsection.pages.first.routed_to?(case_log) ? subsection.pages.first.id : case_log.form.next_page(subsection.pages.first, case_log)
- "case_log_#{next_page}_path"
+ "case_log_#{next_question_page(subsection, case_log, current_user)}_path"
end
send(path, case_log)
end
- def subsection_link(subsection, case_log)
+ def next_question_page(subsection, case_log, current_user)
+ if subsection.pages.first.routed_to?(case_log, current_user)
+ subsection.pages.first.id
+ else
+ case_log.form.next_page(subsection.pages.first, case_log, current_user)
+ end
+ end
+
+ def subsection_link(subsection, case_log, current_user)
if subsection.status(case_log) != :cannot_start_yet
- next_page_path = next_page_or_check_answers(subsection, case_log).to_s
+ next_page_path = next_page_or_check_answers(subsection, case_log, current_user).to_s
govuk_link_to(subsection.label, next_page_path.dasherize, aria: { describedby: subsection.id.dasherize })
else
subsection.label
diff --git a/app/models/form.rb b/app/models/form.rb
index 228057dc8..6176f8850 100644
--- a/app/models/form.rb
+++ b/app/models/form.rb
@@ -2,7 +2,6 @@ class Form
attr_reader :form_definition, :sections, :subsections, :pages, :questions,
:start_date, :end_date, :type, :name, :setup_definition,
:setup_sections, :form_sections
- attr_accessor :current_user
include Form::Setup
@@ -30,9 +29,9 @@ class Form
pages.find { |p| p.id == id.to_s.underscore }
end
- def get_question(id, case_log)
+ def get_question(id, case_log, current_user = nil)
all_questions = questions.select { |q| q.id == id.to_s.underscore }
- routed_question = all_questions.find { |q| q.page.routed_to?(case_log) } if case_log
+ routed_question = all_questions.find { |q| q.page.routed_to?(case_log, current_user) } if case_log
routed_question || all_questions[0]
end
@@ -40,20 +39,24 @@ class Form
subsections.find { |s| s.pages.find { |p| p.id == page.id } }
end
- def next_page(page, case_log)
+ def next_page(page, case_log, current_user)
page_ids = subsection_for_page(page).pages.map(&:id)
page_index = page_ids.index(page.id)
- page_id = page.id.include?("value_check") && case_log[page.questions[0].id] == 1 && page.routed_to?(case_log) ? previous_page(page_ids, page_index, case_log) : page_ids[page_index + 1]
+ page_id = if page.id.include?("value_check") && case_log[page.questions[0].id] == 1 && page.routed_to?(case_log, current_user)
+ previous_page(page_ids, page_index, case_log, current_user)
+ else
+ page_ids[page_index + 1]
+ end
nxt_page = get_page(page_id)
return :check_answers if nxt_page.nil?
- return nxt_page.id if nxt_page.routed_to?(case_log)
+ return nxt_page.id if nxt_page.routed_to?(case_log, current_user)
- next_page(nxt_page, case_log)
+ next_page(nxt_page, case_log, current_user)
end
- def next_page_redirect_path(page, case_log)
- nxt_page = next_page(page, case_log)
+ def next_page_redirect_path(page, case_log, current_user)
+ nxt_page = next_page(page, case_log, current_user)
if nxt_page == :check_answers
"case_log_#{subsection_for_page(page).id}_check_answers_path"
else
@@ -115,23 +118,22 @@ class Form
}.flatten
end
- def invalidated_pages(case_log)
- pages.select { |p| p.invalidated?(case_log) }
+ def invalidated_pages(case_log, current_user = nil)
+ pages.reject { |p| p.routed_to?(case_log, current_user) }
end
def invalidated_questions(case_log)
invalidated_page_questions(case_log) + invalidated_conditional_questions(case_log)
end
- def invalidated_page_questions(case_log)
+ def invalidated_page_questions(case_log, current_user = nil)
# we're already treating address fields as a special case and reset their values upon saving a case_log
address_questions = %w[postcode_known la ppcodenk previous_la_known prevloc postcode_full ppostcode_full]
- invalidated_pages(case_log).flat_map(&:questions).reject { |q| address_questions.include?(q.id) } || []
+ questions.reject { |q| q.page.routed_to?(case_log, current_user) || q.derived? || address_questions.include?(q.id) } || []
end
def enabled_page_questions(case_log)
- pages_that_are_routed_to_or_derived = pages.select { |p| p.routed_to?(case_log) || p.derived }
- pages_that_are_routed_to_or_derived.flat_map(&:questions) || []
+ questions - invalidated_page_questions(case_log)
end
def invalidated_conditional_questions(case_log)
@@ -146,11 +148,11 @@ class Form
questions.select { |q| q.type == "numeric" }
end
- def previous_page(page_ids, page_index, case_log)
+ def previous_page(page_ids, page_index, case_log, current_user)
prev_page = get_page(page_ids[page_index - 1])
- return prev_page.id if prev_page.routed_to?(case_log)
+ return prev_page.id if prev_page.routed_to?(case_log, current_user)
- previous_page(page_ids, page_index - 1, case_log)
+ previous_page(page_ids, page_index - 1, case_log, current_user)
end
def send_chain(arr, case_log)
diff --git a/app/models/form/page.rb b/app/models/form/page.rb
index 1b7c76107..601063557 100644
--- a/app/models/form/page.rb
+++ b/app/models/form/page.rb
@@ -1,6 +1,6 @@
class Form::Page
- attr_accessor :id, :header, :description, :questions, :derived,
- :depends_on, :title_text, :informative_text, :subsection, :hide_subsection_label
+ attr_accessor :id, :header, :description, :questions, :depends_on, :title_text,
+ :informative_text, :subsection, :hide_subsection_label
def initialize(id, hsh, subsection)
@id = id
@@ -10,7 +10,6 @@ class Form::Page
@description = hsh["description"]
@questions = hsh["questions"].map { |q_id, q| Form::Question.new(q_id, q, self) }
@depends_on = hsh["depends_on"]
- @derived = hsh["derived"]
@title_text = hsh["title_text"]
@informative_text = hsh["informative_text"]
@hide_subsection_label = hsh["hide_subsection_label"]
@@ -19,7 +18,7 @@ class Form::Page
delegate :form, to: :subsection
- def routed_to?(case_log)
+ def routed_to?(case_log, _current_user)
return true unless depends_on || subsection.depends_on
subsection.enabled?(case_log) && form.depends_on_met(depends_on, case_log)
@@ -31,10 +30,6 @@ class Form::Page
end
end
- def invalidated?(case_log)
- !routed_to?(case_log)
- end
-
private
def conditional_question_ids
diff --git a/app/models/form/question.rb b/app/models/form/question.rb
index e60802b3c..35d776e6c 100644
--- a/app/models/form/question.rb
+++ b/app/models/form/question.rb
@@ -3,7 +3,7 @@ class Form::Question
:type, :min, :max, :step, :width, :fields_to_add, :result_field,
:conditional_for, :readonly, :answer_options, :page, :check_answer_label,
:inferred_answers, :hidden_in_check_answers, :inferred_check_answers_value,
- :guidance_partial, :prefix, :suffix, :requires_js, :fields_added
+ :guidance_partial, :prefix, :suffix, :requires_js, :fields_added, :derived
def initialize(id, hsh, page)
@id = id
@@ -26,6 +26,7 @@ class Form::Question
@inferred_answers = hsh["inferred_answers"]
@inferred_check_answers_value = hsh["inferred_check_answers_value"]
@hidden_in_check_answers = hsh["hidden_in_check_answers"]
+ @derived = hsh["derived"]
@prefix = hsh["prefix"]
@suffix = hsh["suffix"]
@requires_js = hsh["requires_js"]
@@ -65,7 +66,7 @@ class Form::Question
conditional_on.all? { |condition| evaluate_condition(condition, case_log) }
end
- def hidden_in_check_answers?(case_log)
+ def hidden_in_check_answers?(case_log, _current_user = nil)
if hidden_in_check_answers.is_a?(Hash)
form.depends_on_met(hidden_in_check_answers["depends_on"], case_log)
else
@@ -73,6 +74,14 @@ class Form::Question
end
end
+ def displayed_to_user?(case_log)
+ page.routed_to?(case_log, nil) && enabled?(case_log)
+ end
+
+ def derived?
+ !!derived
+ end
+
def has_inferred_check_answers_value?(case_log)
return true if selected_answer_option_is_derived?(case_log)
return inferred_check_answers_value["condition"].values[0] == case_log[inferred_check_answers_value["condition"].keys[0]] if inferred_check_answers_value.present?
diff --git a/app/models/form/setup/pages/created_by.rb b/app/models/form/setup/pages/created_by.rb
index e9463ccdb..a32741eab 100644
--- a/app/models/form/setup/pages/created_by.rb
+++ b/app/models/form/setup/pages/created_by.rb
@@ -14,11 +14,7 @@ class Form::Setup::Pages::CreatedBy < ::Form::Page
]
end
- def routed_to?(_case_log)
- !!form.current_user&.support?
- end
-
- def invalidated?(_case_log)
- false
+ def routed_to?(_case_log, current_user)
+ !!current_user&.support?
end
end
diff --git a/app/models/form/setup/pages/needs_type.rb b/app/models/form/setup/pages/needs_type.rb
index fe3a3e7ef..f1c78e1f1 100644
--- a/app/models/form/setup/pages/needs_type.rb
+++ b/app/models/form/setup/pages/needs_type.rb
@@ -6,7 +6,6 @@ class Form::Setup::Pages::NeedsType < ::Form::Page
@description = ""
@questions = questions
@depends_on = [{ "supported_housing_schemes_enabled?" => true }]
- @derived = true
@subsection = subsection
end
diff --git a/app/models/form/setup/pages/organisation.rb b/app/models/form/setup/pages/organisation.rb
index d02cf9b97..011d010ed 100644
--- a/app/models/form/setup/pages/organisation.rb
+++ b/app/models/form/setup/pages/organisation.rb
@@ -14,11 +14,7 @@ class Form::Setup::Pages::Organisation < ::Form::Page
]
end
- def routed_to?(_case_log)
- !!form.current_user&.support?
- end
-
- def invalidated?(_case_log)
- false
+ def routed_to?(_case_log, current_user)
+ !!current_user&.support?
end
end
diff --git a/app/models/form/setup/questions/created_by_id.rb b/app/models/form/setup/questions/created_by_id.rb
index f92c688f8..e01ae01c9 100644
--- a/app/models/form/setup/questions/created_by_id.rb
+++ b/app/models/form/setup/questions/created_by_id.rb
@@ -32,7 +32,11 @@ class Form::Setup::Questions::CreatedById < ::Form::Question
answer_options[value]
end
- def hidden_in_check_answers
- !form.current_user.support?
+ def hidden_in_check_answers?(_case_log, current_user)
+ !current_user.support?
+ end
+
+ def derived?
+ true
end
end
diff --git a/app/models/form/setup/questions/needs_type.rb b/app/models/form/setup/questions/needs_type.rb
index ba974e152..bf368ef68 100644
--- a/app/models/form/setup/questions/needs_type.rb
+++ b/app/models/form/setup/questions/needs_type.rb
@@ -7,6 +7,7 @@ class Form::Setup::Questions::NeedsType < ::Form::Question
@hint_text = ""
@type = "radio"
@answer_options = ANSWER_OPTIONS
+ @derived = true
@page = page
end
diff --git a/app/models/form/setup/questions/owning_organisation_id.rb b/app/models/form/setup/questions/owning_organisation_id.rb
index 857ccaf68..ec48a4303 100644
--- a/app/models/form/setup/questions/owning_organisation_id.rb
+++ b/app/models/form/setup/questions/owning_organisation_id.rb
@@ -32,7 +32,11 @@ class Form::Setup::Questions::OwningOrganisationId < ::Form::Question
answer_options[value]
end
- def hidden_in_check_answers
- !form.current_user.support?
+ def hidden_in_check_answers?(_case_log, current_user)
+ !current_user.support?
+ end
+
+ def derived?
+ true
end
end
diff --git a/app/models/form/setup/subsections/setup.rb b/app/models/form/setup/subsections/setup.rb
index c99b9f125..04974c44d 100644
--- a/app/models/form/setup/subsections/setup.rb
+++ b/app/models/form/setup/subsections/setup.rb
@@ -19,4 +19,14 @@ class Form::Subsections::Setup < ::Form::Subsection
Form::Setup::Pages::PropertyReference.new(nil, nil, self),
]
end
+
+ def applicable_questions(case_log)
+ questions.select { |q| support_only_questions.include?(q.id) } + super
+ end
+
+private
+
+ def support_only_questions
+ %w[owning_organisation_id created_by_id].freeze
+ end
end
diff --git a/app/models/form/subsection.rb b/app/models/form/subsection.rb
index 463f0ef9f..7c6d86698 100644
--- a/app/models/form/subsection.rb
+++ b/app/models/form/subsection.rb
@@ -34,7 +34,7 @@ class Form::Subsection
qs = applicable_questions(case_log)
qs_optional_removed = qs.reject { |q| case_log.optional_fields.include?(q.id) }
- return :not_started if qs.all? { |question| case_log[question.id].blank? || question.read_only? }
+ return :not_started if qs.all? { |question| case_log[question.id].blank? || question.read_only? || question.derived? }
return :completed if qs_optional_removed.all? { |question| question.completed?(case_log) }
:in_progress
@@ -48,27 +48,9 @@ class Form::Subsection
%i[in_progress completed].include?(status(case_log))
end
- def applicable_questions_count(case_log)
- applicable_questions(case_log).count
- end
-
- def answered_questions_count(case_log)
- answered_questions(case_log).count
- end
-
def applicable_questions(case_log)
- questions.select { |q| (displayed_to_user?(case_log, q) && !q.hidden_in_check_answers?(case_log)) || q.has_inferred_check_answers_value?(case_log) }
- end
-
- def answered_questions(case_log)
- applicable_questions(case_log).select { |question| question.completed?(case_log) }
- end
-
- def unanswered_questions(case_log)
- applicable_questions(case_log) - answered_questions(case_log)
- end
-
- def displayed_to_user?(case_log, question)
- question.page.routed_to?(case_log) && question.enabled?(case_log)
+ questions.select do |q|
+ (q.displayed_to_user?(case_log) && !q.derived?) || q.has_inferred_check_answers_value?(case_log)
+ end
end
end
diff --git a/app/views/case_logs/_tasklist.html.erb b/app/views/case_logs/_tasklist.html.erb
index 49089f2a3..14ff87274 100644
--- a/app/views/case_logs/_tasklist.html.erb
+++ b/app/views/case_logs/_tasklist.html.erb
@@ -12,7 +12,7 @@
<% subsection_status = subsection.status(@case_log) %>
- <%= subsection_link(subsection, @case_log) %>
+ <%= subsection_link(subsection, @case_log, current_user) %>
<%= status_tag(subsection_status, "app-task-list__tag") %>
diff --git a/app/views/form/_check_answers_summary_list.html.erb b/app/views/form/_check_answers_summary_list.html.erb
index a2aa3311f..6b7761437 100644
--- a/app/views/form/_check_answers_summary_list.html.erb
+++ b/app/views/form/_check_answers_summary_list.html.erb
@@ -1,5 +1,5 @@
<%= govuk_summary_list do |summary_list| %>
- <% subsection.applicable_questions(@case_log).each do |question| %>
+ <% total_applicable_questions(subsection, @case_log, current_user).each do |question| %>
<% summary_list.row do |row| %>
<% row.key { question.check_answer_label.to_s.presence || question.header.to_s } %>
<% row.value do %>
diff --git a/app/views/form/check_answers.html.erb b/app/views/form/check_answers.html.erb
index 216bc747b..8db15d81e 100644
--- a/app/views/form/check_answers.html.erb
+++ b/app/views/form/check_answers.html.erb
@@ -15,7 +15,7 @@
<% if subsection.id == "setup" && subsection.status(@case_log) == :completed %>
<%= govuk_inset_text(text: "Changing these answers might remove answers you’ve already given in other sections.") %>
<% end %>
- <%= display_answered_questions_summary(subsection, @case_log) %>
+ <%= display_answered_questions_summary(subsection, @case_log, current_user) %>
<%= render partial: "form/check_answers_summary_list", locals: {
subsection:,
diff --git a/config/forms/2021_2022.json b/config/forms/2021_2022.json
index d6d4f1403..b84092479 100644
--- a/config/forms/2021_2022.json
+++ b/config/forms/2021_2022.json
@@ -7880,6 +7880,7 @@
"hint_text": "",
"hidden_in_check_answers": true,
"type": "radio",
+ "derived": true,
"answer_options": {
"0": {
"value": "Yes"
@@ -7890,7 +7891,6 @@
}
}
},
- "derived": true,
"depends_on": [false]
},
"outstanding_amount": {
diff --git a/config/forms/2022_2023.json b/config/forms/2022_2023.json
index 0d9a97115..30cd73344 100644
--- a/config/forms/2022_2023.json
+++ b/config/forms/2022_2023.json
@@ -7828,6 +7828,7 @@
"hint_text": "",
"hidden_in_check_answers": true,
"type": "radio",
+ "derived": true,
"answer_options": {
"0": {
"value": "Yes"
@@ -7838,7 +7839,6 @@
}
}
},
- "derived": true,
"depends_on": [false]
},
"outstanding_amount": {
diff --git a/spec/factories/case_log.rb b/spec/factories/case_log.rb
index 6ec46628a..7e0bdec44 100644
--- a/spec/factories/case_log.rb
+++ b/spec/factories/case_log.rb
@@ -76,6 +76,7 @@ FactoryBot.define do
tcharge { 325 }
layear { 2 }
waityear { 1 }
+ postcode_known { 1 }
postcode_full { Faker::Address.postcode }
reasonpref { 1 }
cbl { 1 }
diff --git a/spec/features/organisation_spec.rb b/spec/features/organisation_spec.rb
index 8d9bee660..118638d84 100644
--- a/spec/features/organisation_spec.rb
+++ b/spec/features/organisation_spec.rb
@@ -107,7 +107,6 @@ RSpec.describe "User Features" do
let(:number_of_case_logs) { CaseLog.count }
before do
- first_log.update!(startdate: Time.utc(2022, 6, 2, 10, 36, 49))
visit("/organisations/#{org_id}/logs")
end
diff --git a/spec/fixtures/forms/2022_2023.json b/spec/fixtures/forms/2022_2023.json
index a1b017d30..81c190a46 100644
--- a/spec/fixtures/forms/2022_2023.json
+++ b/spec/fixtures/forms/2022_2023.json
@@ -29,6 +29,7 @@
"hint_text": "",
"hidden_in_check_answers": true,
"type": "radio",
+ "derived": true,
"answer_options": {
"0": {
"value": "Yes"
@@ -39,7 +40,6 @@
}
}
},
- "derived": true,
"depends_on": [false]
}
},
diff --git a/spec/helpers/check_answers_helper_spec.rb b/spec/helpers/check_answers_helper_spec.rb
index 8c7b4e69d..593df3971 100644
--- a/spec/helpers/check_answers_helper_spec.rb
+++ b/spec/helpers/check_answers_helper_spec.rb
@@ -4,11 +4,12 @@ RSpec.describe CheckAnswersHelper do
let(:form) { case_log.form }
let(:subsection) { form.get_subsection("household_characteristics") }
let(:case_log) { FactoryBot.build(:case_log, :in_progress) }
+ let(:current_user) { FactoryBot.build(:user) }
describe "display_answered_questions_summary" do
context "when a section hasn't been completed yet" do
it "returns that you have unanswered questions" do
- expect(display_answered_questions_summary(subsection, case_log))
+ expect(display_answered_questions_summary(subsection, case_log, current_user))
.to match(/You have answered 2 of 7 questions./)
end
end
@@ -20,9 +21,9 @@ RSpec.describe CheckAnswersHelper do
case_log.propcode = "123"
case_log.ecstat1 = 200
case_log.ecstat2 = 9
- expect(display_answered_questions_summary(subsection, case_log))
+ expect(display_answered_questions_summary(subsection, case_log, current_user))
.to match(/You answered all the questions./)
- expect(display_answered_questions_summary(subsection, case_log))
+ expect(display_answered_questions_summary(subsection, case_log, current_user))
.not_to match(/href/)
end
end
diff --git a/spec/helpers/tasklist_helper_spec.rb b/spec/helpers/tasklist_helper_spec.rb
index daf7ba0d9..e0e6e94ef 100644
--- a/spec/helpers/tasklist_helper_spec.rb
+++ b/spec/helpers/tasklist_helper_spec.rb
@@ -6,12 +6,12 @@ RSpec.describe TasklistHelper do
describe "get next incomplete section" do
it "returns the first subsection name if it is not completed" do
- expect(get_next_incomplete_section(case_log).id).to eq("setup")
+ expect(get_next_incomplete_section(case_log).id).to eq("household_characteristics")
end
it "returns the first subsection name if it is partially completed" do
case_log["tenancycode"] = 123
- expect(get_next_incomplete_section(case_log).id).to eq("setup")
+ expect(get_next_incomplete_section(case_log).id).to eq("household_characteristics")
end
end
@@ -29,7 +29,7 @@ RSpec.describe TasklistHelper do
end
it "returns the number of sections in progress" do
- expect(get_subsections_count(case_log, :in_progress)).to eq(4)
+ expect(get_subsections_count(case_log, :in_progress)).to eq(3)
end
it "returns 0 for invalid state" do
@@ -39,27 +39,29 @@ RSpec.describe TasklistHelper do
describe "get_next_page_or_check_answers" do
let(:subsection) { case_log.form.get_subsection("household_characteristics") }
+ let(:user) { FactoryBot.build(:user) }
it "returns the check answers page path if the section has been started already" do
- expect(next_page_or_check_answers(subsection, case_log)).to match(/check-answers/)
+ expect(next_page_or_check_answers(subsection, case_log, user)).to match(/check-answers/)
end
it "returns the first question page path for the section if it has not been started yet" do
- expect(next_page_or_check_answers(subsection, empty_case_log)).to match(/tenant-code-test/)
+ expect(next_page_or_check_answers(subsection, empty_case_log, user)).to match(/tenant-code-test/)
end
it "when first question being not routed to returns the next routed question link" do
empty_case_log.housingneeds_a = "No"
- expect(next_page_or_check_answers(subsection, empty_case_log)).to match(/person-1-gender/)
+ expect(next_page_or_check_answers(subsection, empty_case_log, user)).to match(/person-1-gender/)
end
end
describe "subsection link" do
let(:subsection) { case_log.form.get_subsection("household_characteristics") }
+ let(:user) { FactoryBot.build(:user) }
context "with a subsection that's enabled" do
it "returns the subsection link url" do
- expect(subsection_link(subsection, case_log)).to match(/household-characteristics/)
+ expect(subsection_link(subsection, case_log, user)).to match(/household-characteristics/)
end
end
@@ -69,7 +71,7 @@ RSpec.describe TasklistHelper do
end
it "returns the label instead of a link" do
- expect(subsection_link(subsection, case_log)).to match(subsection.label)
+ expect(subsection_link(subsection, case_log, user)).to match(subsection.label)
end
end
end
diff --git a/spec/models/form/page_spec.rb b/spec/models/form/page_spec.rb
index 57c9393b3..26762534b 100644
--- a/spec/models/form/page_spec.rb
+++ b/spec/models/form/page_spec.rb
@@ -3,6 +3,7 @@ require "rails_helper"
RSpec.describe Form::Page, type: :model do
subject(:page) { described_class.new(page_id, page_definition, subsection) }
+ let(:user) { FactoryBot.create(:user) }
let(:case_log) { FactoryBot.build(:case_log) }
let(:form) { case_log.form }
let(:section_id) { "rent_and_charges" }
@@ -45,19 +46,19 @@ RSpec.describe Form::Page, type: :model do
let(:case_log) { FactoryBot.build(:case_log, :in_progress) }
it "knows if it's been routed to" do
- expect(page.routed_to?(case_log)).to be true
+ expect(page.routed_to?(case_log, user)).to be true
end
context "with routing conditions" do
let(:page_id) { "dependent_page" }
it "evaluates not met conditions correctly" do
- expect(page.routed_to?(case_log)).to be false
+ expect(page.routed_to?(case_log, user)).to be false
end
it "evaluates met conditions correctly" do
case_log.incfreq = 1
- expect(page.routed_to?(case_log)).to be true
+ expect(page.routed_to?(case_log, user)).to be true
end
end
@@ -68,12 +69,12 @@ RSpec.describe Form::Page, type: :model do
it "evaluates not met conditions correctly" do
case_log.age2 = 12
- expect(page.routed_to?(case_log)).to be false
+ expect(page.routed_to?(case_log, user)).to be false
end
it "evaluates met conditions correctly" do
case_log.age2 = 17
- expect(page.routed_to?(case_log)).to be true
+ expect(page.routed_to?(case_log, user)).to be true
end
end
@@ -84,8 +85,8 @@ RSpec.describe Form::Page, type: :model do
let(:completed_case_log) { FactoryBot.build(:case_log, :completed, incfreq: "Weekly") }
it "evaluates the sections dependencies" do
- expect(page.routed_to?(case_log)).to be false
- expect(page.routed_to?(completed_case_log)).to be true
+ expect(page.routed_to?(case_log, user)).to be false
+ expect(page.routed_to?(completed_case_log, user)).to be true
end
end
end
diff --git a/spec/models/form/question_spec.rb b/spec/models/form/question_spec.rb
index 4057e4687..78909766b 100644
--- a/spec/models/form/question_spec.rb
+++ b/spec/models/form/question_spec.rb
@@ -361,9 +361,9 @@ RSpec.describe Form::Question, type: :model do
end
it "can work out if the question will be shown in check answers" do
- expect(question.hidden_in_check_answers?(case_log)).to be(false)
+ expect(question.hidden_in_check_answers?(case_log, nil)).to be(false)
case_log.layear = 0
- expect(question.hidden_in_check_answers?(case_log)).to be(true)
+ expect(question.hidden_in_check_answers?(case_log, nil)).to be(true)
end
end
end
diff --git a/spec/models/form/setup/pages/created_by_spec.rb b/spec/models/form/setup/pages/created_by_spec.rb
index 600d34c4f..9e1c38dcb 100644
--- a/spec/models/form/setup/pages/created_by_spec.rb
+++ b/spec/models/form/setup/pages/created_by_spec.rb
@@ -33,33 +33,19 @@ RSpec.describe Form::Setup::Pages::CreatedBy, type: :model do
expect(page.depends_on).to be nil
end
- it "has the correct derived" do
- expect(page.derived).to be nil
- end
-
context "when the current user is a support user" do
let(:support_user) { FactoryBot.build(:user, :support) }
- before do
- allow(subsection).to receive(:form).and_return(form)
- allow(form).to receive(:current_user).and_return(support_user)
- end
-
it "is shown" do
- expect(page.routed_to?(case_log)).to be true
+ expect(page.routed_to?(case_log, support_user)).to be true
end
end
context "when the current user is not a support user" do
let(:user) { FactoryBot.build(:user) }
- before do
- allow(subsection).to receive(:form).and_return(form)
- allow(form).to receive(:current_user).and_return(user)
- end
-
it "is not shown" do
- expect(page.routed_to?(case_log)).to be false
+ expect(page.routed_to?(case_log, user)).to be false
end
end
end
diff --git a/spec/models/form/setup/pages/needs_type_spec.rb b/spec/models/form/setup/pages/needs_type_spec.rb
index ae1106129..88b10fd64 100644
--- a/spec/models/form/setup/pages/needs_type_spec.rb
+++ b/spec/models/form/setup/pages/needs_type_spec.rb
@@ -30,8 +30,4 @@ RSpec.describe Form::Setup::Pages::NeedsType, type: :model do
it "has the correct depends_on" do
expect(page.depends_on).to eq([{ "supported_housing_schemes_enabled?" => true }])
end
-
- it "has the correct derived" do
- expect(page.derived).to be true
- end
end
diff --git a/spec/models/form/setup/pages/organisation_spec.rb b/spec/models/form/setup/pages/organisation_spec.rb
index 582525365..f4c7f3f23 100644
--- a/spec/models/form/setup/pages/organisation_spec.rb
+++ b/spec/models/form/setup/pages/organisation_spec.rb
@@ -33,33 +33,19 @@ RSpec.describe Form::Setup::Pages::Organisation, type: :model do
expect(page.depends_on).to be nil
end
- it "has the correct derived" do
- expect(page.derived).to be nil
- end
-
context "when the current user is a support user" do
let(:support_user) { FactoryBot.build(:user, :support) }
- before do
- allow(subsection).to receive(:form).and_return(form)
- allow(form).to receive(:current_user).and_return(support_user)
- end
-
it "is shown" do
- expect(page.routed_to?(case_log)).to be true
+ expect(page.routed_to?(case_log, support_user)).to be true
end
end
context "when the current user is not a support user" do
let(:user) { FactoryBot.build(:user) }
- before do
- allow(subsection).to receive(:form).and_return(form)
- allow(form).to receive(:current_user).and_return(user)
- end
-
it "is not shown" do
- expect(page.routed_to?(case_log)).to be false
+ expect(page.routed_to?(case_log, user)).to be false
end
end
end
diff --git a/spec/models/form/setup/pages/property_reference_spec.rb b/spec/models/form/setup/pages/property_reference_spec.rb
index f347f7a55..555ee97f2 100644
--- a/spec/models/form/setup/pages/property_reference_spec.rb
+++ b/spec/models/form/setup/pages/property_reference_spec.rb
@@ -30,8 +30,4 @@ RSpec.describe Form::Setup::Pages::PropertyReference, type: :model do
it "has the correct depends_on" do
expect(page.depends_on).to be nil
end
-
- it "has the correct derived" do
- expect(page.derived).to be nil
- end
end
diff --git a/spec/models/form/setup/pages/renewal_spec.rb b/spec/models/form/setup/pages/renewal_spec.rb
index 86de88f0c..f37cb3ef1 100644
--- a/spec/models/form/setup/pages/renewal_spec.rb
+++ b/spec/models/form/setup/pages/renewal_spec.rb
@@ -30,8 +30,4 @@ RSpec.describe Form::Setup::Pages::Renewal, type: :model do
it "has the correct depends_on" do
expect(page.depends_on).to be nil
end
-
- it "has the correct derived" do
- expect(page.derived).to be nil
- end
end
diff --git a/spec/models/form/setup/pages/rent_type_spec.rb b/spec/models/form/setup/pages/rent_type_spec.rb
index f3604c7ac..981ca4bf6 100644
--- a/spec/models/form/setup/pages/rent_type_spec.rb
+++ b/spec/models/form/setup/pages/rent_type_spec.rb
@@ -30,8 +30,4 @@ RSpec.describe Form::Setup::Pages::RentType, type: :model do
it "has the correct depends_on" do
expect(page.depends_on).to eq([{ "supported_housing_schemes_enabled?" => true }])
end
-
- it "has the correct derived" do
- expect(page.derived).to be true
- end
end
diff --git a/spec/models/form/setup/pages/tenancy_start_date_spec.rb b/spec/models/form/setup/pages/tenancy_start_date_spec.rb
index b4ebd2c36..546038287 100644
--- a/spec/models/form/setup/pages/tenancy_start_date_spec.rb
+++ b/spec/models/form/setup/pages/tenancy_start_date_spec.rb
@@ -30,8 +30,4 @@ RSpec.describe Form::Setup::Pages::TenancyStartDate, type: :model do
it "has the correct depends_on" do
expect(page.depends_on).to be nil
end
-
- it "has the correct derived" do
- expect(page.derived).to be nil
- end
end
diff --git a/spec/models/form/setup/pages/tenant_code_spec.rb b/spec/models/form/setup/pages/tenant_code_spec.rb
index 14bbe6480..dea2eb73d 100644
--- a/spec/models/form/setup/pages/tenant_code_spec.rb
+++ b/spec/models/form/setup/pages/tenant_code_spec.rb
@@ -30,8 +30,4 @@ RSpec.describe Form::Setup::Pages::TenantCode, type: :model do
it "has the correct depends_on" do
expect(page.depends_on).to be nil
end
-
- it "has the correct derived" do
- expect(page.derived).to be nil
- end
end
diff --git a/spec/models/form/setup/questions/created_by_id_spec.rb b/spec/models/form/setup/questions/created_by_id_spec.rb
index 8ec615ebd..84a7083be 100644
--- a/spec/models/form/setup/questions/created_by_id_spec.rb
+++ b/spec/models/form/setup/questions/created_by_id_spec.rb
@@ -46,31 +46,23 @@ RSpec.describe Form::Setup::Questions::CreatedById, type: :model do
expect(question.answer_options).to eq(expected_answer_options)
end
+ it "is marked as derived" do
+ expect(question.derived?).to be true
+ end
+
context "when the current user is support" do
let(:support_user) { FactoryBot.build(:user, :support) }
- before do
- allow(page).to receive(:subsection).and_return(subsection)
- allow(subsection).to receive(:form).and_return(form)
- allow(form).to receive(:current_user).and_return(support_user)
- end
-
it "is shown in check answers" do
- expect(question.hidden_in_check_answers).to be false
+ expect(question.hidden_in_check_answers?(nil, support_user)).to be false
end
end
context "when the current user is not support" do
let(:user) { FactoryBot.build(:user) }
- before do
- allow(page).to receive(:subsection).and_return(subsection)
- allow(subsection).to receive(:form).and_return(form)
- allow(form).to receive(:current_user).and_return(user)
- end
-
it "is not shown in check answers" do
- expect(question.hidden_in_check_answers).to be true
+ expect(question.hidden_in_check_answers?(nil, user)).to be true
end
end
diff --git a/spec/models/form/setup/questions/irproduct_other_spec.rb b/spec/models/form/setup/questions/irproduct_other_spec.rb
index 4001ebfe3..1d3d9ef3d 100644
--- a/spec/models/form/setup/questions/irproduct_other_spec.rb
+++ b/spec/models/form/setup/questions/irproduct_other_spec.rb
@@ -26,4 +26,8 @@ RSpec.describe Form::Setup::Questions::IrproductOther, type: :model do
it "has the correct type" do
expect(question.type).to eq("text")
end
+
+ it "is not marked as derived" do
+ expect(question.derived?).to be false
+ end
end
diff --git a/spec/models/form/setup/questions/needs_type_spec.rb b/spec/models/form/setup/questions/needs_type_spec.rb
index feca18481..485ac4164 100644
--- a/spec/models/form/setup/questions/needs_type_spec.rb
+++ b/spec/models/form/setup/questions/needs_type_spec.rb
@@ -27,6 +27,10 @@ RSpec.describe Form::Setup::Questions::NeedsType, type: :model do
expect(question.type).to eq("radio")
end
+ it "is marked as derived" do
+ expect(question.derived?).to be true
+ end
+
it "has the correct answer_options" do
expect(question.answer_options).to eq({
"1" => { "value" => "General needs" },
diff --git a/spec/models/form/setup/questions/owning_organisation_id_spec.rb b/spec/models/form/setup/questions/owning_organisation_id_spec.rb
index 81cf21478..5e4c5f787 100644
--- a/spec/models/form/setup/questions/owning_organisation_id_spec.rb
+++ b/spec/models/form/setup/questions/owning_organisation_id_spec.rb
@@ -46,31 +46,23 @@ RSpec.describe Form::Setup::Questions::OwningOrganisationId, type: :model do
expect(question.answer_options).to eq(expected_answer_options)
end
+ it "is marked as derived" do
+ expect(question.derived?).to be true
+ end
+
context "when the current user is support" do
let(:support_user) { FactoryBot.build(:user, :support) }
- before do
- allow(page).to receive(:subsection).and_return(subsection)
- allow(subsection).to receive(:form).and_return(form)
- allow(form).to receive(:current_user).and_return(support_user)
- end
-
it "is shown in check answers" do
- expect(question.hidden_in_check_answers).to be false
+ expect(question.hidden_in_check_answers?(nil, support_user)).to be false
end
end
context "when the current user is not support" do
let(:user) { FactoryBot.build(:user) }
- before do
- allow(page).to receive(:subsection).and_return(subsection)
- allow(subsection).to receive(:form).and_return(form)
- allow(form).to receive(:current_user).and_return(user)
- end
-
it "is not shown in check answers" do
- expect(question.hidden_in_check_answers).to be true
+ expect(question.hidden_in_check_answers?(nil, user)).to be true
end
end
diff --git a/spec/models/form/setup/questions/property_reference_spec.rb b/spec/models/form/setup/questions/property_reference_spec.rb
index 2cdcb9e2b..21144ff52 100644
--- a/spec/models/form/setup/questions/property_reference_spec.rb
+++ b/spec/models/form/setup/questions/property_reference_spec.rb
@@ -34,4 +34,8 @@ RSpec.describe Form::Setup::Questions::PropertyReference, type: :model do
it "has the correct width" do
expect(question.width).to eq(10)
end
+
+ it "is not marked as derived" do
+ expect(question.derived?).to be false
+ end
end
diff --git a/spec/models/form/setup/questions/renewal_spec.rb b/spec/models/form/setup/questions/renewal_spec.rb
index 565d6c768..5ecb5daef 100644
--- a/spec/models/form/setup/questions/renewal_spec.rb
+++ b/spec/models/form/setup/questions/renewal_spec.rb
@@ -37,4 +37,8 @@ RSpec.describe Form::Setup::Questions::Renewal, type: :model do
"0" => { "value" => "No" },
})
end
+
+ it "is not marked as derived" do
+ expect(question.derived?).to be false
+ end
end
diff --git a/spec/models/form/setup/questions/rent_type_spec.rb b/spec/models/form/setup/questions/rent_type_spec.rb
index 73dedeb40..e52a89627 100644
--- a/spec/models/form/setup/questions/rent_type_spec.rb
+++ b/spec/models/form/setup/questions/rent_type_spec.rb
@@ -45,4 +45,8 @@ RSpec.describe Form::Setup::Questions::RentType, type: :model do
"5" => { "value" => "Other intermediate rent product" },
})
end
+
+ it "is not marked as derived" do
+ expect(question.derived?).to be false
+ end
end
diff --git a/spec/models/form/setup/questions/tenancy_start_date_spec.rb b/spec/models/form/setup/questions/tenancy_start_date_spec.rb
index c1c861edb..8fee79422 100644
--- a/spec/models/form/setup/questions/tenancy_start_date_spec.rb
+++ b/spec/models/form/setup/questions/tenancy_start_date_spec.rb
@@ -26,4 +26,8 @@ RSpec.describe Form::Setup::Questions::TenancyStartDate, type: :model do
it "has the correct type" do
expect(question.type).to eq("date")
end
+
+ it "is not marked as derived" do
+ expect(question.derived?).to be false
+ end
end
diff --git a/spec/models/form/setup/questions/tenant_code_spec.rb b/spec/models/form/setup/questions/tenant_code_spec.rb
index e4a4745ef..7a38f230f 100644
--- a/spec/models/form/setup/questions/tenant_code_spec.rb
+++ b/spec/models/form/setup/questions/tenant_code_spec.rb
@@ -34,4 +34,8 @@ RSpec.describe Form::Setup::Questions::TenantCode, type: :model do
it "has the correct width" do
expect(question.width).to eq(10)
end
+
+ it "is not marked as derived" do
+ expect(question.derived?).to be false
+ end
end
diff --git a/spec/models/form/subsection_spec.rb b/spec/models/form/subsection_spec.rb
index 804292f6c..1b876520a 100644
--- a/spec/models/form/subsection_spec.rb
+++ b/spec/models/form/subsection_spec.rb
@@ -75,27 +75,6 @@ RSpec.describe Form::Subsection, type: :model do
it "has question helpers for the number of applicable questions" do
expected_questions = %w[tenancycode age1 sex1 ecstat1 hhmemb ecstat2 propcode]
expect(subsection.applicable_questions(case_log).map(&:id)).to eq(expected_questions)
- expect(subsection.applicable_questions_count(case_log)).to eq(7)
- end
-
- it "has question helpers for the number of answered questions" do
- subsection_definition = section_definition["subsections"]["household_needs"]
- subsection = described_class.new("household_needs", subsection_definition, section)
- expected_questions = %w[armedforces illness accessibility_requirements prevloc condition_effects]
- case_log.armedforces = 3
- case_log.illness = 1
- case_log.housingneeds_a = 1
- case_log.previous_la_known = 1
- case_log.is_previous_la_inferred = false
- case_log.prevloc = "E06000014"
- case_log.illness_type_1 = 1
- expect(subsection.answered_questions(case_log).map(&:id)).to eq(expected_questions)
- expect(subsection.answered_questions_count(case_log)).to eq(5)
- end
-
- it "has a question helpers for the unanswered questions" do
- expected_questions = %w[sex1 ecstat1 hhmemb ecstat2 propcode]
- expect(subsection.unanswered_questions(case_log).map(&:id)).to eq(expected_questions)
end
end
diff --git a/spec/models/form_spec.rb b/spec/models/form_spec.rb
index ffcb68f86..5b1cb1924 100644
--- a/spec/models/form_spec.rb
+++ b/spec/models/form_spec.rb
@@ -1,6 +1,7 @@
require "rails_helper"
RSpec.describe Form, type: :model do
+ let(:user) { FactoryBot.build(:user) }
let(:case_log) { FactoryBot.build(:case_log, :in_progress) }
let(:form) { case_log.form }
let(:completed_case_log) { FactoryBot.build(:case_log, :completed) }
@@ -11,7 +12,7 @@ RSpec.describe Form, type: :model do
let(:value_check_previous_page) { form.get_page("net_income_value_check") }
it "returns the next page given the previous" do
- expect(form.next_page(previous_page, case_log)).to eq("person_1_gender")
+ expect(form.next_page(previous_page, case_log, user)).to eq("person_1_gender")
end
context "when the current page is a value check page" do
@@ -23,12 +24,12 @@ RSpec.describe Form, type: :model do
it "returns the previous page if answer is `No` and the page is routed to" do
case_log.net_income_value_check = 1
- expect(form.next_page(value_check_previous_page, case_log)).to eq("net_income")
+ expect(form.next_page(value_check_previous_page, case_log, user)).to eq("net_income")
end
it "returns the next page if answer is `Yes` answer and the page is routed to" do
case_log.net_income_value_check = 0
- expect(form.next_page(value_check_previous_page, case_log)).to eq("net_income_uc_proportion")
+ expect(form.next_page(value_check_previous_page, case_log, user)).to eq("net_income_uc_proportion")
end
end
end
@@ -44,12 +45,12 @@ RSpec.describe Form, type: :model do
it "returns the previous page if the page is routed to" do
page_index = page_ids.index("conditional_question_no_second_page")
- expect(form.previous_page(page_ids, page_index, case_log)).to eq("conditional_question_no_page")
+ expect(form.previous_page(page_ids, page_index, case_log, user)).to eq("conditional_question_no_page")
end
it "returns the page before the previous one if the previous page is not routed to" do
page_index = page_ids.index("conditional_question_no_page")
- expect(form.previous_page(page_ids, page_index, case_log)).to eq("conditional_question")
+ expect(form.previous_page(page_ids, page_index, case_log, user)).to eq("conditional_question")
end
end
end
@@ -60,16 +61,16 @@ RSpec.describe Form, type: :model do
let(:previous_conditional_page) { form.get_page("conditional_question") }
it "returns a correct page path if there is no conditional routing" do
- expect(form.next_page_redirect_path(previous_page, case_log)).to eq("case_log_net_income_uc_proportion_path")
+ expect(form.next_page_redirect_path(previous_page, case_log, user)).to eq("case_log_net_income_uc_proportion_path")
end
it "returns a check answers page if previous page is the last page" do
- expect(form.next_page_redirect_path(last_previous_page, case_log)).to eq("case_log_income_and_benefits_check_answers_path")
+ expect(form.next_page_redirect_path(last_previous_page, case_log, user)).to eq("case_log_income_and_benefits_check_answers_path")
end
it "returns a correct page path if there is conditional routing" do
case_log["preg_occ"] = 2
- expect(form.next_page_redirect_path(previous_conditional_page, case_log)).to eq("case_log_conditional_question_no_page_path")
+ expect(form.next_page_redirect_path(previous_conditional_page, case_log, user)).to eq("case_log_conditional_question_no_page_path")
end
end
@@ -92,6 +93,7 @@ RSpec.describe Form, type: :model do
end
def answer_property_information(case_log)
+ case_log.postcode_known = 1
case_log.wchair = "No"
end
@@ -192,7 +194,7 @@ RSpec.describe Form, type: :model do
end
end
- context "when a page is marked as `derived` and `depends_on: false`" do
+ context "when a question is marked as `derived` and `depends_on: false`" do
let(:case_log) { FactoryBot.build(:case_log, :in_progress, startdate: Time.utc(2023, 2, 2, 10, 36, 49)) }
it "does not count it's questions as invalidated" do
diff --git a/spec/requests/schemes_controller_spec.rb b/spec/requests/schemes_controller_spec.rb
index 38692811e..c2092b7f8 100644
--- a/spec/requests/schemes_controller_spec.rb
+++ b/spec/requests/schemes_controller_spec.rb
@@ -429,7 +429,8 @@ RSpec.describe SchemesController, type: :request do
end
it "has correct page 1 of 2 title" do
- expect(page).to have_title("#{scheme.service_name} (page 2 of 2) - Submit social housing lettings and sales data (CORE) - GOV.UK")
+ expected_title = CGI.escapeHTML("#{scheme.service_name} (page 2 of 2) - Submit social housing lettings and sales data (CORE) - GOV.UK")
+ expect(page).to have_title(expected_title)
end
it "has pagination links" do