@@ -82,6 +82,17 @@ export default defineConfig(
|
||||
"CallExpression[callee.object.name='vi'][callee.property.name='mock'] > Literal[value=/^pdfjs-dist/]",
|
||||
message:
|
||||
"Banned: vi.mock('pdfjs-dist', factory) causes a birpc teardown race in browser-mode specs — see ADR 012. Use the libLoader prop injection pattern instead."
|
||||
},
|
||||
{
|
||||
// ADR 012 / #553. The named mechanism: an async vi.mock factory whose
|
||||
// body performs `await import(...)` produces a late birpc roundtrip
|
||||
// during worker teardown. The factory body must be synchronous; if
|
||||
// you need to share state between the spec and the mock, use
|
||||
// `vi.hoisted` (see DropZone.svelte.spec.ts).
|
||||
selector:
|
||||
"CallExpression[callee.object.name='vi'][callee.property.name='mock'][arguments.1.type='ArrowFunctionExpression'][arguments.1.async=true]:has(AwaitExpression > ImportExpression)",
|
||||
message:
|
||||
'Banned: vi.mock(..., async () => { await import(...) }) causes a birpc teardown race in browser-mode specs — see ADR 012. Use a synchronous factory + vi.hoisted instead.'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user