jestjs/jest

[Bug]: broken runAllTimers

balffr opened this issue · 0 comments

Version

29.7

Steps to reproduce

const Test = () => {
const [count, setCount] = useState(10);

useEffect(() => {
    if (count > 0) {
        setTimeout(() => {setCount(count - 1)}, 1000);
    }
}, [count])

return null

}


jest.useFakeTimers();
jest.spyOn(global, 'setTimeout');

describe('', () => {
it('should call 10 times', () => {
render();

    act(() => {
        jest.runAllTimers();
    });

    expect(setTimeout).toHaveBeenCalledTimes(10);

});

});

Expected behavior

10 setTimeout calls are expected

Actual behavior

only 2 times it was called

Additional context

No response

Environment

ubuntu 22.04