diff --git a/src/tests/fixtures/page_refresh.html b/src/tests/fixtures/page_refresh.html
index ba90f64fa..0dad87edb 100644
--- a/src/tests/fixtures/page_refresh.html
+++ b/src/tests/fixtures/page_refresh.html
@@ -70,7 +70,7 @@
- Page to be refreshed
+ Page to be refreshed
Reload
diff --git a/src/tests/functional/page_refresh_tests.js b/src/tests/functional/page_refresh_tests.js
index c3451ceb6..06a041787 100644
--- a/src/tests/functional/page_refresh_tests.js
+++ b/src/tests/functional/page_refresh_tests.js
@@ -19,6 +19,22 @@ test("renders a page refresh with morphing", async ({ page }) => {
await nextEventNamed(page, "turbo:render", { renderMethod: "morph" })
})
+test("async page refresh with turbo-stream", async ({ page }) => {
+ await page.goto("/src/tests/fixtures/page_refresh.html")
+
+ await expect(page.locator("#title")).toHaveText("Page to be refreshed")
+
+ await page.evaluate(() => document.querySelector("#title").innerText = "Updated")
+ await expect(page.locator("#title")).toHaveText("Updated")
+
+ await page.evaluate(() => {
+ document.body.insertAdjacentHTML("beforeend", ``)
+ })
+
+ await expect(page.locator("#title")).not.toHaveText("Updated")
+ await expect(page.locator("#title")).toHaveText("Page to be refreshed")
+})
+
test("dispatches a turbo:before-morph-element and turbo:morph-element event for each morphed element", async ({ page }) => {
await page.goto("/src/tests/fixtures/page_refresh.html")
await page.fill("#form-text", "Morph me")