diff --git a/packages/boot/app-boot/tests/hmr-config.spec.ts b/packages/boot/app-boot/tests/hmr-config.spec.ts index 1de504c221..b555645da8 100644 --- a/packages/boot/app-boot/tests/hmr-config.spec.ts +++ b/packages/boot/app-boot/tests/hmr-config.spec.ts @@ -8,12 +8,12 @@ import Loader from '@cordisjs/plugin-loader' import Timer from '@cordisjs/plugin-timer' import { describe, expect, it, vi } from 'vitest' -async function bootHmr(dir: string, root: string[] = []): Promise { +async function bootHmr(dir: string, root: string[] = [], usePolling?: boolean): Promise { const ctx = new Context() ctx.baseUrl = pathToFileURL(dir).href + '/' await ctx.plugin(Loader) await ctx.plugin(Timer) - await ctx.plugin(Hmr, { root, ignored: [], debounce: 0 }) + await ctx.plugin(Hmr, { root, ignored: [], debounce: 0, usePolling }) return ctx } @@ -32,7 +32,9 @@ describe('HMR exact config paths', () => { const aliasFilename = join(alias, 'module.ts') symlinkSync(target, alias, process.platform === 'win32' ? 'junction' : 'dir') writeFileSync(aliasFilename, 'export const generation = 0\n') - const ctx = await bootHmr(alias, ['.']) + // This acceptance owns alias-to-cache identity. Other cases below exercise + // native events; polling keeps Windows fs.watch queue pressure out of it. + const ctx = await bootHmr(alias, ['.'], true) const filename = join(realpathSync(target), 'module.ts') const expected = pathToFileURL(filename).href const cacheHas = vi.spyOn(ctx.loader.internal!.loadCache, 'has').mockReturnValue(false)