diff --git a/app/views/form/check_answers.html.erb b/app/views/form/check_answers.html.erb
index cb6e0b6fd..7c26dd123 100644
--- a/app/views/form/check_answers.html.erb
+++ b/app/views/form/check_answers.html.erb
@@ -2,7 +2,7 @@
<% content_for :breadcrumbs, govuk_breadcrumbs(breadcrumbs: {
"Home" => root_path,
breadcrumb_logs_title(@log, current_user) => breadcrumb_logs_link(@log, current_user),
- "Log #{@log.id}" => url_for(@log)
+ "Log #{@log.id}" => url_for(@log),
}) %>
diff --git a/app/views/logs/edit.html.erb b/app/views/logs/edit.html.erb
index a32906e37..68bf78e87 100644
--- a/app/views/logs/edit.html.erb
+++ b/app/views/logs/edit.html.erb
@@ -1,7 +1,7 @@
<% content_for :title, "Log #{@log.id}" %>
<% content_for :breadcrumbs, govuk_breadcrumbs(breadcrumbs: {
"Home" => root_path,
- breadcrumb_logs_title(@log, current_user) => breadcrumb_logs_link(@log, current_user)
+ breadcrumb_logs_title(@log, current_user) => breadcrumb_logs_link(@log, current_user),
}) %>
diff --git a/spec/features/form/accessible_autocomplete_spec.rb b/spec/features/form/accessible_autocomplete_spec.rb
index 255f95f83..373d0232d 100644
--- a/spec/features/form/accessible_autocomplete_spec.rb
+++ b/spec/features/form/accessible_autocomplete_spec.rb
@@ -60,7 +60,7 @@ RSpec.describe "Accessible Autocomplete" do
it "maintains enhancement state across back navigation", js: true do
find("#lettings-log-prevloc-field").click.native.send_keys("T", "h", "a", "n", :down, :enter)
click_button("Save and continue")
- click_link(text: "Back")
+ page.go_back
expect(page).to have_selector("input", class: "autocomplete__input", count: 1)
end
end
diff --git a/spec/features/form/form_navigation_spec.rb b/spec/features/form/form_navigation_spec.rb
index 256b16d74..bb326c76c 100644
--- a/spec/features/form/form_navigation_spec.rb
+++ b/spec/features/form/form_navigation_spec.rb
@@ -86,41 +86,18 @@ RSpec.describe "Form Navigation" do
expect(page).to have_current_path("/lettings-logs/#{empty_lettings_log.id}/household-characteristics/check-answers")
end
- describe "Back link directs correctly", js: true do
- it "go back to tasklist page from tenant code" do
- visit("/lettings-logs/#{id}")
- visit("/lettings-logs/#{id}/tenant-code-test")
- click_link(text: "Back")
- expect(page).to have_content("Log #{id}")
- end
-
- it "go back to tenant code page from tenant age page", js: true do
- visit("/lettings-logs/#{id}/tenant-code-test")
- click_button("Save and continue")
- visit("/lettings-logs/#{id}/person-1-age")
- click_link(text: "Back")
- expect(page).to have_field("lettings-log-tenancycode-field")
- end
-
- it "doesn't get stuck in infinite loops", js: true do
- visit("/lettings-logs")
- visit("/lettings-logs/#{id}/net-income")
- fill_in("lettings-log-earnings-field", with: 740)
- choose("lettings-log-incfreq-1-field", allow_label_click: true)
- click_button("Save and continue")
- click_link(text: "Back")
- click_link(text: "Back")
- expect(page).to have_current_path("/lettings-logs/#{id}")
- end
-
- context "when changing an answer from the check answers page", js: true do
- it "the back button routes correctly" do
- visit("/lettings-logs/#{id}/household-characteristics/check-answers")
- first("a", text: /Answer/).click
- click_link("Back")
- expect(page).to have_current_path("/lettings-logs/#{id}/household-characteristics/check-answers")
- end
- end
+ it "has correct breadcrumbs" do
+ visit("/lettings-logs/#{id}/armed-forces")
+ breadcrumbs = page.find_all(".govuk-breadcrumbs__link")
+ expect(breadcrumbs.length).to eq 4
+ expect(breadcrumbs[0].text).to eq "Home"
+ expect(breadcrumbs[0][:href]).to eq root_path
+ expect(breadcrumbs[1].text).to eq "Lettings logs"
+ expect(breadcrumbs[1][:href]).to eq lettings_logs_path
+ expect(breadcrumbs[2].text).to eq "Log #{lettings_log.id}"
+ expect(breadcrumbs[2][:href]).to eq lettings_log_path(lettings_log)
+ expect(breadcrumbs[3].text).to eq "Household needs"
+ expect(breadcrumbs[3][:href]).to eq lettings_log_household_needs_check_answers_path(lettings_log)
end
end
@@ -198,5 +175,14 @@ RSpec.describe "Form Navigation" do
lettings_log.reload
expect(lettings_log.duplicates.count).to eq(1)
end
+
+ it "shows back link to duplicate logs page instead of log breadcrumbs" do
+ expect(lettings_log.duplicates.count).to eq(1)
+ visit("lettings-logs/#{id}/tenant-code-test?first_remaining_duplicate_id=#{id}&original_log_id=#{id}&referrer=duplicate_logs")
+ breadcrumbs = page.find_all(".govuk-breadcrumbs__link")
+ expect(breadcrumbs.length).to eq 0
+ click_link(text: "Back")
+ expect(page).to have_current_path("/lettings-logs/#{id}/duplicate-logs?original_log_id=#{id}")
+ end
end
end
diff --git a/spec/features/form/page_routing_spec.rb b/spec/features/form/page_routing_spec.rb
index e6c821221..7409ff413 100644
--- a/spec/features/form/page_routing_spec.rb
+++ b/spec/features/form/page_routing_spec.rb
@@ -36,7 +36,7 @@ RSpec.describe "Form Page Routing" do
choose("lettings-log-preg-occ-1-field", allow_label_click: true)
click_button("Save and continue")
expect(page).to have_current_path("/lettings-logs/#{id}/conditional-question-yes-page")
- click_link(text: "Back")
+ page.go_back
expect(page).to have_current_path("/lettings-logs/#{id}/conditional-question")
choose("lettings-log-preg-occ-2-field", allow_label_click: true)
click_button("Save and continue")
diff --git a/spec/features/lettings_log_spec.rb b/spec/features/lettings_log_spec.rb
index f5aefb6e4..f8740e6f8 100644
--- a/spec/features/lettings_log_spec.rb
+++ b/spec/features/lettings_log_spec.rb
@@ -157,10 +157,13 @@ RSpec.describe "Lettings Log Features" do
it "has the correct breadcrumbs with the correct links" do
visit lettings_log_setup_check_answers_path(lettings_log)
breadcrumbs = page.find_all(".govuk-breadcrumbs__link")
- expect(breadcrumbs.first.text).to eq "Lettings logs (DLUHC)"
- expect(breadcrumbs.first[:href]).to eq lettings_logs_organisation_path(lettings_log.owning_organisation)
- expect(breadcrumbs[1].text).to eq "Log #{lettings_log.id}"
- expect(breadcrumbs[1][:href]).to eq lettings_log_path(lettings_log)
+ expect(breadcrumbs.length).to eq 3
+ expect(breadcrumbs[0].text).to eq "Home"
+ expect(breadcrumbs[0][:href]).to eq root_path
+ expect(breadcrumbs[1].text).to eq "Lettings logs (DLUHC)"
+ expect(breadcrumbs[1][:href]).to eq lettings_logs_organisation_path(lettings_log.owning_organisation)
+ expect(breadcrumbs[2].text).to eq "Log #{lettings_log.id}"
+ expect(breadcrumbs[2][:href]).to eq lettings_log_path(lettings_log)
end
end
@@ -170,10 +173,13 @@ RSpec.describe "Lettings Log Features" do
it "has the correct breadcrumbs with the correct links" do
visit review_lettings_log_path(lettings_log)
breadcrumbs = page.find_all(".govuk-breadcrumbs__link")
- expect(breadcrumbs.first.text).to eq "Lettings logs (DLUHC)"
- expect(breadcrumbs.first[:href]).to eq lettings_logs_organisation_path(lettings_log.owning_organisation)
- expect(breadcrumbs[1].text).to eq "Log #{lettings_log.id}"
- expect(breadcrumbs[1][:href]).to eq lettings_log_path(lettings_log)
+ expect(breadcrumbs.length).to eq 3
+ expect(breadcrumbs[0].text).to eq "Home"
+ expect(breadcrumbs[0][:href]).to eq root_path
+ expect(breadcrumbs[1].text).to eq "Lettings logs (DLUHC)"
+ expect(breadcrumbs[1][:href]).to eq lettings_logs_organisation_path(lettings_log.owning_organisation)
+ expect(breadcrumbs[2].text).to eq "Log #{lettings_log.id}"
+ expect(breadcrumbs[2][:href]).to eq lettings_log_path(lettings_log)
end
end
diff --git a/spec/features/sales_log_spec.rb b/spec/features/sales_log_spec.rb
index 83fd2f458..2fa221156 100644
--- a/spec/features/sales_log_spec.rb
+++ b/spec/features/sales_log_spec.rb
@@ -164,10 +164,13 @@ RSpec.describe "Sales Log Features" do
it "has the correct breadcrumbs with the correct links" do
visit sales_log_setup_check_answers_path(sales_log.id)
breadcrumbs = page.find_all(".govuk-breadcrumbs__link")
- expect(breadcrumbs.first.text).to eq "Sales logs (DLUHC)"
- expect(breadcrumbs.first[:href]).to eq sales_logs_organisation_path(sales_log.owning_organisation)
- expect(breadcrumbs[1].text).to eq "Log #{sales_log.id}"
- expect(breadcrumbs[1][:href]).to eq sales_log_path(sales_log.id)
+ expect(breadcrumbs.length).to eq 3
+ expect(breadcrumbs[0].text).to eq "Home"
+ expect(breadcrumbs[0][:href]).to eq root_path
+ expect(breadcrumbs[1].text).to eq "Sales logs (DLUHC)"
+ expect(breadcrumbs[1][:href]).to eq sales_logs_organisation_path(sales_log.owning_organisation)
+ expect(breadcrumbs[2].text).to eq "Log #{sales_log.id}"
+ expect(breadcrumbs[2][:href]).to eq sales_log_path(sales_log.id)
end
end
@@ -175,10 +178,13 @@ RSpec.describe "Sales Log Features" do
it "has the correct breadcrumbs with the correct links" do
visit review_sales_log_path(sales_log.id, sales_log: true)
breadcrumbs = page.find_all(".govuk-breadcrumbs__link")
- expect(breadcrumbs.first.text).to eq "Sales logs (DLUHC)"
- expect(breadcrumbs.first[:href]).to eq sales_logs_organisation_path(sales_log.owning_organisation)
- expect(breadcrumbs[1].text).to eq "Log #{sales_log.id}"
- expect(breadcrumbs[1][:href]).to eq sales_log_path(sales_log.id)
+ expect(breadcrumbs.length).to eq 3
+ expect(breadcrumbs[0].text).to eq "Home"
+ expect(breadcrumbs[0][:href]).to eq root_path
+ expect(breadcrumbs[1].text).to eq "Sales logs (DLUHC)"
+ expect(breadcrumbs[1][:href]).to eq sales_logs_organisation_path(sales_log.owning_organisation)
+ expect(breadcrumbs[2].text).to eq "Log #{sales_log.id}"
+ expect(breadcrumbs[2][:href]).to eq sales_log_path(sales_log.id)
end
end
end
diff --git a/spec/views/form/page_view_spec.rb b/spec/views/form/page_view_spec.rb
index 614f56562..6664981f9 100644
--- a/spec/views/form/page_view_spec.rb
+++ b/spec/views/form/page_view_spec.rb
@@ -25,6 +25,7 @@ RSpec.describe "form/page" do
end
before do
+ sign_in create(:user)
assign(:log, lettings_log)
assign(:page, page)
assign(:subsection, subsection)