From a5534a2ca9c7c29d25031133866caf4dae0bbcf9 Mon Sep 17 00:00:00 2001 From: Olaoluwa Afolabi Date: Thu, 14 Sep 2023 10:28:26 +0100 Subject: [PATCH] fix: Enhance test stability in drive_tests.js (#993) * fix: Enhance test stability in drive_tests.js In the drive_tests.js file, I improved test stability by introducing steps in two test cases: "test drive to external link" and "test drive enabled by default; click link inside data-turbo='false'." The added calls ensure that the respective elements (e.g., "#drive_enabled_external" and "#drive_disabled") are present and visible before interacting with them, reducing the chances of element unavailability issues during test execution. This resolves test failures where elements were not immediately accessible, leading to test timeouts. * Revert 'await page.click(#drive_disabled)' to 'nextBody' for explicit navigation wait This commit reverts one of the changes made in commit 641947d719d4162e90c189f990700bbe898b37dc where I replaced 'nextBody' with 'await page.click(#drive_disabled)'. The reason for this reversion is to stick to explicit waiting for page navigation to ensure that the page has fully transitioned to its new state before making assertions. The 'nextBody' function is used to achieve this waiting behavior, ensuring the reliability of our tests in certain scenarios. * refactor: Removed unnecessary page.waitForSelector from the PR 'https://github.com/hotwired/turbo/commit/641947d719d4162e90c189f990700bbe898b37dc' --- src/tests/functional/drive_tests.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/tests/functional/drive_tests.js b/src/tests/functional/drive_tests.js index 56491bdb0..35ee012ef 100644 --- a/src/tests/functional/drive_tests.js +++ b/src/tests/functional/drive_tests.js @@ -9,7 +9,7 @@ test.beforeEach(async ({ page }) => { }) test("test drive enabled by default; click normal link", async ({ page }) => { - page.click("#drive_enabled") + await page.click("#drive_enabled") await nextBody(page) assert.equal(pathname(page.url()), path) }) @@ -19,7 +19,7 @@ test("test drive to external link", async ({ page }) => { await route.fulfill({ body: "Hello from the outside world" }) }) - page.click("#drive_enabled_external") + await page.click("#drive_enabled_external") await nextBody(page) assert.equal(await page.evaluate(() => window.location.href), "https://example.com/") @@ -27,8 +27,9 @@ test("test drive to external link", async ({ page }) => { }) test("test drive enabled by default; click link inside data-turbo='false'", async ({ page }) => { - page.click("#drive_disabled") + await page.click("#drive_disabled") await nextBody(page) + assert.equal(pathname(page.url()), path) assert.equal(await visitAction(page), "load") })