diff --git a/app/helpers/form_page_helper.rb b/app/helpers/form_page_helper.rb
index d503c4f46..d8e4922bf 100644
--- a/app/helpers/form_page_helper.rb
+++ b/app/helpers/form_page_helper.rb
@@ -1,9 +1,4 @@
module FormPageHelper
- def check_answers_href(question, log)
- referrer = question.displayed_as_answered?(log) ? "check_answers" : nil
- action_href(log, question.page.id, referrer)
- end
-
def action_href(log, page_id, referrer)
send("#{log.model_name.param_key}_#{page_id}_path", log, referrer:)
end
diff --git a/app/views/form/_check_answers_summary_list.html.erb b/app/views/form/_check_answers_summary_list.html.erb
index 747b6152f..754f775ea 100644
--- a/app/views/form/_check_answers_summary_list.html.erb
+++ b/app/views/form/_check_answers_summary_list.html.erb
@@ -28,7 +28,7 @@
<% if @log.collection_period_open_for_editing? %>
<% row.with_action(
text: question.action_text(@log),
- href: check_answers_href(question, @log),
+ href: action_href(@log, question.page.id, (question.displayed_as_answered?(@log) || refer_unanswered) ? referrer : nil),
visually_hidden_text: question.check_answer_label.to_s.downcase,
) %>
<% end %>
diff --git a/app/views/form/_interruption_screen_question.html.erb b/app/views/form/_interruption_screen_question.html.erb
index 73c355588..e383539e4 100644
--- a/app/views/form/_interruption_screen_question.html.erb
+++ b/app/views/form/_interruption_screen_question.html.erb
@@ -10,6 +10,7 @@
lettings_log:,
questions: soft_validation_affected_questions(question, @log).filter { |q| q.page.routed_to?(@log, current_user) },
referrer: "interruption_screen",
+ refer_unanswered: true,
} %>
diff --git a/app/views/form/check_answers.html.erb b/app/views/form/check_answers.html.erb
index 7c26dd123..a42e348dc 100644
--- a/app/views/form/check_answers.html.erb
+++ b/app/views/form/check_answers.html.erb
@@ -27,6 +27,7 @@
lettings_log: @log,
questions: total_applicable_questions(subsection, @log, current_user),
referrer: "check_answers",
+ refer_unanswered: false,
} %>
<% end %>
diff --git a/app/views/form/review.html.erb b/app/views/form/review.html.erb
index 39682362d..9795b3c2f 100644
--- a/app/views/form/review.html.erb
+++ b/app/views/form/review.html.erb
@@ -19,7 +19,12 @@
<%= subsection.label %>
- <%= render partial: "form/check_answers_summary_list", locals: { subsection:, questions: total_applicable_questions(subsection, @log, current_user), referrer: "check_answers" } %>
+ <%= render partial: "form/check_answers_summary_list", locals: {
+ subsection:,
+ questions: total_applicable_questions(subsection, @log, current_user),
+ referrer: "check_answers",
+ refer_unanswered: false,
+ } %>
<% end %>
diff --git a/spec/helpers/form_page_helper_spec.rb b/spec/helpers/form_page_helper_spec.rb
index 8a63362c5..aeded6f8d 100644
--- a/spec/helpers/form_page_helper_spec.rb
+++ b/spec/helpers/form_page_helper_spec.rb
@@ -6,36 +6,22 @@ RSpec.describe FormPageHelper do
let(:sales_log) { FactoryBot.create(:sales_log) }
context "with a lettings log" do
- let(:question) { lettings_log.form.questions.detect { |q| q.id == "needstype" } }
-
- it "answer link href helper does not attach referrer when question not answered" do
- expect(check_answers_href(question, lettings_log)).to eq("/lettings-logs/#{lettings_log.id}/needs-type")
- end
-
- it "answer link href helper attaches referrer when question already answered" do
- lettings_log[question.id] = 1
- expect(check_answers_href(question, lettings_log)).to eq("/lettings-logs/#{lettings_log.id}/needs-type?referrer=check_answers")
+ it "has an update answer link href helper" do
+ expect(action_href(lettings_log, "net_income")).to eq("/lettings-logs/#{lettings_log.id}/net-income?referrer=check_answers")
end
- it "has an action href helper" do
- expect(action_href(lettings_log, "net_income", "interruption_screen")).to eq("/lettings-logs/#{lettings_log.id}/net-income?referrer=interruption_screen")
+ it "returns a correct referrer in the url" do
+ expect(action_href(lettings_log, "retirement_value_check", "interruption_screen")).to eq("/lettings-logs/#{lettings_log.id}/retirement-value-check?referrer=interruption_screen")
end
end
context "with a sales log" do
- let(:question) { sales_log.form.questions.detect { |q| q.id == "ownershipsch" } }
-
- it "answer link href helper does not attach referrer when question not answered" do
- expect(check_answers_href(question, sales_log)).to eq("/sales-logs/#{sales_log.id}/ownership-scheme")
- end
-
- it "answer link href helper attaches referrer when question already answered" do
- sales_log[question.id] = 1
- expect(check_answers_href(question, sales_log)).to eq("/sales-logs/#{sales_log.id}/ownership-scheme?referrer=check_answers")
+ it "has an update answer link href helper" do
+ expect(action_href(sales_log, "buyer_1_age")).to eq("/sales-logs/#{sales_log.id}/buyer-1-age?referrer=check_answers")
end
- it "has an action href helper" do
- expect(action_href(sales_log, "buyer_1_age", "interruption_screen")).to eq("/sales-logs/#{sales_log.id}/buyer-1-age?referrer=interruption_screen")
+ it "returns a correct referrer in the url" do
+ expect(action_href(sales_log, "grant_value_check", "interruption_screen")).to eq("/sales-logs/#{sales_log.id}/grant-value-check?referrer=interruption_screen")
end
end
end