* [fetch-utils] Fix FetchUtilsTests.js tests
* Cleanup between tests
* Define `AbortError`
* [fetch-utils] Add `expectConnectionCount` showcasing that the connection stays on when the stream is destroyed
* Revert "[fetch-utils] Add `expectConnectionCount` showcasing that the connection stays on when the stream is destroyed"
This reverts commit b10da7b3fc06a7345df8fd70f27fad70a478bbb4.
* [fetch-utils] Fix `supports abort signals` test
* [fetch-utils] Add tests "aborts the request when the request body is destroyed during transfer"
* [fetch-utils] Add extra waiting step before `expectRequestAborted`
* [fetch-utils] Add `while (!req?.destroyed) await wait(10)`
Unfortunately I couldn't find a better event to await.
To try with this to test flakiness
```
for i in {1..100}; do npm run test:unit || break; echo "Run $i completed"; done
```
* [fetch-utils] Replace arbitrary `wait(10)` by `this.server.waitForEvent('request-received')`
* [fetch-utils] Improve tests per PR comments
See https://github.com/overleaf/internal/pull/20210
1. Replace `waitForEvent` with `once`
2. Replace `waitForRequestAborted` by `expectRequestAborted`
3. Add comment in `expectRequestAborted` empty catch block
Non-flakiness rechecked with `for i in {1..100}; do npm run test:unit || break; echo "Run $i completed"; done`
* [fetch-utils] Add small wait before checking `lastReq === undefined`
Per https://github.com/overleaf/internal/pull/20210#discussion_r1743329462
GitOrigin-RevId: 5fe542e0a8e6011307e03237e2f81404d9a0e674