Browse Source

CLDC-2670: Fix linter error and tests

pull/2362/head
Robert Sullivan 2 years ago
parent
commit
3db712b891
  1. 4
      app/controllers/form_controller.rb
  2. 11
      app/models/form.rb
  3. 2
      app/views/form/_check_answers_summary_list.html.erb
  4. 4
      spec/features/form/check_answers_page_lettings_logs_spec.rb

4
app/controllers/form_controller.rb

@ -214,10 +214,10 @@ private
end
is_new_answer_from_check_answers = is_referrer_type?("check_answers_new_answer")
redirect_path = form.next_page_redirect_path(@page, @log, current_user, is_new_answer_from_check_answers)
redirect_path = form.next_page_redirect_path(@page, @log, current_user, ignore_answered: is_new_answer_from_check_answers)
referrer = is_new_answer_from_check_answers ? "check_answers_new_answer" : nil
send(redirect_path, @log, { referrer: referrer})
send(redirect_path, @log, { referrer: })
end
def redirect_path_to_question(page_to_show, unanswered_pages)

11
app/models/form.rb

@ -80,7 +80,7 @@ class Form
subsections.find { |s| s.pages.find { |p| p.id == page.id } }
end
def next_page_id(page, log, current_user, ignore_answered = false)
def next_page_id(page, log, current_user, ignore_answered: false)
return page.next_unresolved_page_id || :check_answers if log.unresolved
page_ids = subsection_for_page(page).pages.map(&:id)
@ -94,14 +94,13 @@ class Form
return :check_answers if next_page.nil?
return next_page.id if next_page.routed_to?(log, current_user) &&
(!ignore_answered || next_page.has_unanswered_questions?(log))
(!ignore_answered || next_page.has_unanswered_questions?(log))
next_page_id(next_page, log, current_user, ignore_answered)
next_page_id(next_page, log, current_user, ignore_answered:)
end
def next_page_redirect_path(page, log, current_user, ignore_answered = false)
puts ignore_answered
next_page_id = next_page_id(page, log, current_user, ignore_answered)
def next_page_redirect_path(page, log, current_user, ignore_answered: false)
next_page_id = next_page_id(page, log, current_user, ignore_answered:)
if next_page_id == :check_answers
"#{type}_log_#{subsection_for_page(page).id}_check_answers_path"
else

2
app/views/form/_check_answers_summary_list.html.erb

@ -31,7 +31,7 @@
href: action_href(
@log,
question.page.id,
question.displayed_as_answered?(@log) || referrer_unanswered.nil? ? referrer : referrer_unanswered
question.displayed_as_answered?(@log) || !defined?(referrer_unanswered) ? referrer : referrer_unanswered,
),
visually_hidden_text: question.check_answer_label.to_s.downcase,
) %>

4
spec/features/form/check_answers_page_lettings_logs_spec.rb

@ -89,11 +89,11 @@ RSpec.describe "Lettings Log Check Answers Page" do
# Regex explanation: match the string "Answer" but not if it's follow by "the missing questions"
# This way only the links in the table will get picked up
it "has an answer link without a referrer for questions missing an answer" do
it "has an answer link with the check_answers_new_answer referrer for questions missing an answer" do
visit("/lettings-logs/#{empty_lettings_log.id}/#{subsection}/check-answers?referrer=check_answers")
assert_selector "a", text: /Answer (?!the missing questions)/, count: 4
assert_selector "a", text: "Change", count: 0
expect(page).to have_link("Answer", href: "/lettings-logs/#{empty_lettings_log.id}/person-1-age")
expect(page).to have_link("Answer", href: "/lettings-logs/#{empty_lettings_log.id}/person-1-age?referrer=check_answers_new_answer")
end
it "has a change link for answered questions" do

Loading…
Cancel
Save