Testowanie · Senior · Pytanie 33 z 75
Dlaczego przy vi.useFakeTimers() może zawiesić się test, który czeka na promise z setTimeout w środku?
vi.useFakeTimers();
await sleep(1000); // wewnątrz: new Promise(r => setTimeout(r, 1000))- ✓Poprawna odpowiedź: Timer nie wystrzeli, dopóki czas nie zostanie przesunięty, a test jest zablokowany na
awaiti nie może go przesunąć - 2Fake timery psują promise'y
- 3
awaitnie wolno używać z fake timerami
Wyjaśnienie
Uruchom promise, potem await vi.advanceTimersByTimeAsync(1000), potem poczekaj na promise - wersje async dodatkowo opróżniają mikrozadania.