11df9c3589
Three changes needed to support navigating back from a card to the activity page: - Add root_path to the prefer_referrer allowlist on the card show page - Switch event links from HTML target="_top" to data-turbo-frame="_top" so Turbo handles the navigation and turbo:before-visit fires to save the referrer - Normalize trailing slashes in the referrer path comparison so /account_id and /account_id/ both match ref: https://app.fizzy.do/5986089/cards/2390
63 lines
1.9 KiB
Ruby
63 lines
1.9 KiB
Ruby
require "application_system_test_case"
|
|
|
|
class BackLinkNavigationTest < ApplicationSystemTestCase
|
|
test "card back link returns to board filter view when navigating from it" do
|
|
sign_in_as(users(:david))
|
|
|
|
filter_url = board_url(boards(:writebook), creator_ids: [ users(:david).id ])
|
|
visit filter_url
|
|
click_on cards(:logo).title
|
|
|
|
back_link = find("a.btn--back")
|
|
assert_selector "a.btn--back strong", text: "Back to Writebook"
|
|
back_link.click
|
|
assert_current_path filter_url, ignore_query: false
|
|
end
|
|
|
|
test "card back link returns to global filter view when navigating from it" do
|
|
sign_in_as(users(:kevin))
|
|
|
|
filter_url = cards_url(creator_ids: [ users(:kevin).id ])
|
|
visit filter_url
|
|
click_on cards(:text).title
|
|
|
|
assert_selector "a.btn--back strong", text: "Back to all boards"
|
|
find("a.btn--back").click
|
|
assert_current_path filter_url, ignore_query: false
|
|
end
|
|
|
|
test "card back link returns to activity page when navigating from it" do
|
|
sign_in_as(users(:david))
|
|
|
|
assert_text "Layout is broken"
|
|
click_on "Layout is broken"
|
|
|
|
assert_selector "a.btn--back strong", text: "Back to Home"
|
|
find("a.btn--back").click
|
|
assert_current_path root_path
|
|
end
|
|
|
|
test "card back link returns to activity page when navigating from it without trailing slash" do
|
|
sign_in_as(users(:david))
|
|
|
|
activity_url_without_trailing_slash = root_url.chomp("/")
|
|
visit activity_url_without_trailing_slash
|
|
assert_text "Layout is broken"
|
|
click_on "Layout is broken"
|
|
|
|
assert_selector "a.btn--back strong", text: "Back to Home"
|
|
find("a.btn--back").click
|
|
assert_current_path activity_url_without_trailing_slash
|
|
end
|
|
|
|
test "card back link is not rewritten when navigating from a non-filter page" do
|
|
sign_in_as(users(:david))
|
|
|
|
visit account_settings_url
|
|
click_on "Invite people"
|
|
visit card_url(cards(:logo))
|
|
|
|
assert_selector "a.btn--back strong", text: "Back to Writebook"
|
|
end
|
|
end
|