Any ideas on this code

```
jest.useFakeTimers() 

it('simpleTimer', async () => {
  async function simpleTimer(callback) {
    await callback()    // LINE-A without await here, test works as expected.
    setTimeout(() => {
      simpleTimer(callback)
    }, 1000)
  }

  const callback = jest.fn()
  await simpleTimer(callback)
  jest.advanceTimersByTime(8000)
  expect(callback).toHaveBeenCalledTimes(9)
}

```

```

Failed with

```
Expected mock function to have been called nine times, but it was called two times.

```

However, If I remove `await` from LINE-A, the test passes. 

Does Promise and Timer not work well?

I think the reason maybe jest is waiting for second promise to resolve.