From 1521f68b8fa427781b1ef75779062a45bc0f40a3 Mon Sep 17 00:00:00 2001 From: Robert Starsi Date: Tue, 23 Apr 2024 10:03:28 +0200 Subject: [PATCH] Implement refresh fix --- src/core/session.js | 3 ++- src/tests/functional/page_refresh_stream_action_tests.js | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/core/session.js b/src/core/session.js index cdb978348..6a453cb81 100644 --- a/src/core/session.js +++ b/src/core/session.js @@ -109,7 +109,8 @@ export class Session { refresh(url, requestId) { const isRecentRequest = requestId && this.recentRequests.has(requestId) - if (!isRecentRequest) { + const isCurrentUrl = url === document.baseURI + if (!isRecentRequest && isCurrentUrl) { this.visit(url, { action: "replace", shouldCacheSnapshot: false }) } } diff --git a/src/tests/functional/page_refresh_stream_action_tests.js b/src/tests/functional/page_refresh_stream_action_tests.js index 69a214395..d60853cae 100644 --- a/src/tests/functional/page_refresh_stream_action_tests.js +++ b/src/tests/functional/page_refresh_stream_action_tests.js @@ -55,6 +55,7 @@ test("debounce stream page refreshes", async ({ page }) => { }) test("debounced refresh of stale URL does not hijack new location navigated to", async ({ page }) => { + await setLongerPageRefreshDebouncePeriod(page) const urlBeforeVisit = page.url() await page.click("#refresh button") @@ -79,6 +80,6 @@ async function fetchRequestId(page) { }) } -async function visitLocation(page, location) { - return page.evaluate((location) => window.Turbo.visit(location), location) +async function setLongerPageRefreshDebouncePeriod(page, period = 500) { + return page.evaluate((period) => window.Turbo.session.pageRefreshDebouncePeriod = period, period) }