From: daiwei Date: Sun, 2 Mar 2025 07:09:08 +0000 (+0800) Subject: fix: tests X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=aea4c6e1dd4752e476b30a3b22d77580b5c796ac;p=thirdparty%2Fvuejs%2Fcore.git fix: tests --- 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() })