From aea4c6e1dd4752e476b30a3b22d77580b5c796ac Mon Sep 17 00:00:00 2001 From: daiwei Date: Sun, 2 Mar 2025 15:09:08 +0800 Subject: [PATCH] fix: tests --- packages/runtime-core/src/hydrationStrategies.ts | 7 ++++--- packages/vue/__tests__/e2e/hydration-strat-idle.html | 4 ---- packages/vue/__tests__/e2e/hydrationStrategies.spec.ts | 4 ++-- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/packages/runtime-core/src/hydrationStrategies.ts b/packages/runtime-core/src/hydrationStrategies.ts index bad3988483..071ac819b6 100644 --- a/packages/runtime-core/src/hydrationStrategies.ts +++ b/packages/runtime-core/src/hydrationStrategies.ts @@ -18,7 +18,7 @@ const cancelIdleCallback: Window['cancelIdleCallback'] = * listeners. */ export type HydrationStrategy = ( - hydrate: () => void, + hydrate: () => void | Promise, forEachElement: (cb: (el: Element) => any) => void, ) => (() => void) | void @@ -86,11 +86,12 @@ export const hydrateOnInteraction: HydrationStrategyFactory< (hydrate, forEach) => { if (isString(interactions)) interactions = [interactions] let hasHydrated = false - const doHydrate = (e: Event) => { + const doHydrate = async (e: Event) => { if (!hasHydrated) { hasHydrated = true teardown() - hydrate() + // eslint-disable-next-line no-restricted-syntax + await hydrate() // replay event e.target!.dispatchEvent(new (e.constructor as any)(e.type, e)) } diff --git a/packages/vue/__tests__/e2e/hydration-strat-idle.html b/packages/vue/__tests__/e2e/hydration-strat-idle.html index d2e71815ff..f9131e0c6d 100644 --- a/packages/vue/__tests__/e2e/hydration-strat-idle.html +++ b/packages/vue/__tests__/e2e/hydration-strat-idle.html @@ -28,12 +28,8 @@ loader: () => new Promise(resolve => { setTimeout(() => { - debugger console.log('resolve') resolve(Comp) - requestIdleCallback(() => { - console.log('busy') - }) }, 10) }), hydrate: hydrateOnIdle(), diff --git a/packages/vue/__tests__/e2e/hydrationStrategies.spec.ts b/packages/vue/__tests__/e2e/hydrationStrategies.spec.ts index 69934d9591..54c07f3df1 100644 --- a/packages/vue/__tests__/e2e/hydrationStrategies.spec.ts +++ b/packages/vue/__tests__/e2e/hydrationStrategies.spec.ts @@ -31,8 +31,8 @@ describe('async component hydration strategies', () => { expect(await page().evaluate(() => window.isHydrated)).toBe(false) // wait for hydration await page().waitForFunction(() => window.isHydrated) - // assert message order: hyration should happen after already queued main thread work - expect(messages.slice(1)).toMatchObject(['resolve', 'busy', 'hydrated']) + // assert message order + expect(messages.slice(1)).toMatchObject(['resolve', 'hydrated']) await assertHydrationSuccess() }) -- 2.47.2