From 0faab0a69f03784e0a4902380c918cd4b9cffacb Mon Sep 17 00:00:00 2001 From: Jonas Kuske Date: Wed, 11 Mar 2026 18:36:17 +0100 Subject: [PATCH] fix: replace setTimeout with queueMicrotask to prevent deadlock When using vitest, setTimeout is mocked and will only advance when instructed to do so. This never happens when used within the testing library, leaving tests deadlocked. We can avoid that using queueMicrotask, which is not affected by mocked time. closes #565 --- projects/testing-library/src/lib/testing-library.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/testing-library/src/lib/testing-library.ts b/projects/testing-library/src/lib/testing-library.ts index 9e135e1b..b31d9c9e 100644 --- a/projects/testing-library/src/lib/testing-library.ts +++ b/projects/testing-library/src/lib/testing-library.ts @@ -589,7 +589,7 @@ async function waitForWrapper( } return await dtlWaitFor(() => { - setTimeout(() => detectChanges(), 0); + queueMicrotask(() => detectChanges()); if (inFakeAsync) { tick(0); }