diff --git a/packages/playground/ssr-react/__tests__/ssr-react.spec.ts b/packages/playground/ssr-react/__tests__/ssr-react.spec.ts
index 64457de30b17a3..bf161e03e5143c 100644
--- a/packages/playground/ssr-react/__tests__/ssr-react.spec.ts
+++ b/packages/playground/ssr-react/__tests__/ssr-react.spec.ts
@@ -1,10 +1,4 @@
-import {
- editFile,
- getColor,
- isBuild,
- untilUpdated,
- autoRetry
-} from '../../testUtils'
+import { editFile, getColor, isBuild, untilUpdated } from '../../testUtils'
import { port } from './serve'
import fetch from 'node-fetch'
@@ -44,10 +38,9 @@ test('hmr', async () => {
})
test('client navigation', async () => {
+ await untilUpdated(() => page.textContent('a[href="/about"]'), 'About')
await page.click('a[href="/about"]')
- await autoRetry(async () => {
- expect(await page.textContent('h1')).toMatch('About')
- })
+ await untilUpdated(() => page.textContent('h1'), 'About')
editFile('src/pages/About.jsx', (code) =>
code.replace('
About', 'changed')
)
diff --git a/packages/playground/ssr-react/server.js b/packages/playground/ssr-react/server.js
index 4a6a653a3a781b..7c0c1a81152445 100644
--- a/packages/playground/ssr-react/server.js
+++ b/packages/playground/ssr-react/server.js
@@ -26,7 +26,13 @@ async function createServer(
root,
logLevel: isTest ? 'error' : 'info',
server: {
- middlewareMode: true
+ middlewareMode: true,
+ watch: {
+ // During tests we edit the files too fast and sometimes chokidar
+ // misses change events, so enforce polling for consistency
+ usePolling: true,
+ interval: 100
+ }
}
})
// use vite's connect instance as middleware
diff --git a/packages/playground/ssr-vue/__tests__/ssr-vue.spec.ts b/packages/playground/ssr-vue/__tests__/ssr-vue.spec.ts
index 343c1140f81106..a86916b1ad7594 100644
--- a/packages/playground/ssr-vue/__tests__/ssr-vue.spec.ts
+++ b/packages/playground/ssr-vue/__tests__/ssr-vue.spec.ts
@@ -1,10 +1,4 @@
-import {
- editFile,
- getColor,
- isBuild,
- untilUpdated,
- autoRetry
-} from '../../testUtils'
+import { editFile, getColor, isBuild, untilUpdated } from '../../testUtils'
import { port } from './serve'
import fetch from 'node-fetch'
@@ -115,10 +109,9 @@ test('hmr', async () => {
})
test('client navigation', async () => {
+ await untilUpdated(() => page.textContent('a[href="/about"]'), 'About')
await page.click('a[href="/about"]')
- await autoRetry(async () => {
- expect(await page.textContent('h1')).toMatch('About')
- })
+ await untilUpdated(() => page.textContent('h1'), 'About')
editFile('src/pages/About.vue', (code) => code.replace('About', 'changed'))
await untilUpdated(() => page.textContent('h1'), 'changed')
})
diff --git a/packages/playground/ssr-vue/server.js b/packages/playground/ssr-vue/server.js
index 969ab6dacee01a..4ccbc21a4816ab 100644
--- a/packages/playground/ssr-vue/server.js
+++ b/packages/playground/ssr-vue/server.js
@@ -31,7 +31,13 @@ async function createServer(
root,
logLevel: isTest ? 'error' : 'info',
server: {
- middlewareMode: true
+ middlewareMode: true,
+ watch: {
+ // During tests we edit the files too fast and sometimes chokidar
+ // misses change events, so enforce polling for consistency
+ usePolling: true,
+ interval: 100
+ }
}
})
// use vite's connect instance as middleware
diff --git a/packages/playground/testUtils.ts b/packages/playground/testUtils.ts
index 10e2d9d618532c..3da60754c891d0 100644
--- a/packages/playground/testUtils.ts
+++ b/packages/playground/testUtils.ts
@@ -119,34 +119,3 @@ export async function untilUpdated(
}
}
}
-
-export async function autoRetry(
- test: () => void | Promise
-): Promise {
- const timeout = 60 * 1000
- const period = 100
- const numberOfTries = timeout / period
- let i = 0
- while (true) {
- try {
- await test()
- return
- } catch (err) {
- i = i + 1
- if (i > numberOfTries) {
- throw err
- }
- }
- await sleep(period)
- }
-
- return
-
- function sleep(milliseconds: number): Promise {
- return new Promise((resolve) =>
- setTimeout(() => {
- resolve()
- }, milliseconds)
- )
- }
-}