Some tests left timers running when they ended, and --forceExit hid them. Both test scripts in package.json drop it.
Left open, by file:
tests/backgroundApproval.test.js: the background's 20-second timer, which runs while a test leaves an approval pending. It is now stubbed for the whole file, not one describe block.
tests/backgroundStateIsolation.test.js: the same timer, now stubbed.
tests/chainSwitchGate.test.js: the same timer, now stubbed.
tests/coldWorkerChainSwitch.test.js: the same timer, now stubbed.
tests/coldWorkerSendTransaction.test.js: the same timer, now stubbed.
tests/connectedSitesWorkerRestart.test.js: the same timer, now stubbed.
tests/addressKey.test.js: a flash message's timer, now on fake timers.
tests/deleteWalletLostPassword.test.js: a flash message's timer, now on fake timers.
tests/sendAmountRule.test.js: a flash message's timer, now on fake timers.
tests/sendMax.test.js: a flash message's timer, now on fake timers.
tests/walletDefects.test.js: a flash message's timer, now on fake timers.
A test that waited on real zero-delay timeouts to let a screen settle now calls jest.advanceTimersByTimeAsync(0) instead.
In tests/backgroundApproval.test.js, the one test that spies on that timer itself is unchanged: jest.spyOn hands it the file's stub.
Judgement call: ethers' own short timers still end after some tests: a 250 ms request cache and a 0 ms network event. They stop by themselves, and no test can reach them.
Model: opus-5-5
Some tests left timers running when they ended, and `--forceExit` hid them. Both test scripts in `package.json` drop it.
Left open, by file:
- `tests/backgroundApproval.test.js`: the background's 20-second timer, which runs while a test leaves an approval pending. It is now stubbed for the whole file, not one `describe` block.
- `tests/backgroundStateIsolation.test.js`: the same timer, now stubbed.
- `tests/chainSwitchGate.test.js`: the same timer, now stubbed.
- `tests/coldWorkerChainSwitch.test.js`: the same timer, now stubbed.
- `tests/coldWorkerSendTransaction.test.js`: the same timer, now stubbed.
- `tests/connectedSitesWorkerRestart.test.js`: the same timer, now stubbed.
- `tests/addressKey.test.js`: a flash message's timer, now on fake timers.
- `tests/deleteWalletLostPassword.test.js`: a flash message's timer, now on fake timers.
- `tests/sendAmountRule.test.js`: a flash message's timer, now on fake timers.
- `tests/sendMax.test.js`: a flash message's timer, now on fake timers.
- `tests/walletDefects.test.js`: a flash message's timer, now on fake timers.
A test that waited on real zero-delay timeouts to let a screen settle now calls `jest.advanceTimersByTimeAsync(0)` instead.
In `tests/backgroundApproval.test.js`, the one test that spies on that timer itself is unchanged: `jest.spyOn` hands it the file's stub.
Judgement call: ethers' own short timers still end after some tests: a 250 ms request cache and a 0 ms network event. They stop by themselves, and no test can reach them.
Model: opus-5-5
Some tests left timers running when they ended, and --forceExit hid them.
- Six background test files leave an approval pending, so the background's
20-second timer ran forever. Each file now stubs that timer, as two blocks
in tests/backgroundApproval.test.js already did.
- Five popup test files show a flash message, and its timer outlived the
test. They now run on fake timers.
Both test scripts in package.json drop --forceExit.
Model: opus-5-5
Each test that left a timer running now stubs or fakes it, and every changed test still asserts what it did before.
Follow-up note: in the PR body, "ethers' own short timers still end after some tests: a 250 ms request cache and a 0 ms network event" reads two ways; "Two ethers timers can still run for up to 250 ms after a test ends." reads once.
Model: opus-5-5
**Review: PASS**
Each test that left a timer running now stubs or fakes it, and every changed test still asserts what it did before.
Follow-up note: in the PR body, "ethers' own short timers still end after some tests: a 250 ms request cache and a 0 ms network event" reads two ways; "Two ethers timers can still run for up to 250 ms after a test ends." reads once.
Model: opus-5-5
clawbot
merged commit acb2577fec into next2026-10-28 01:09:13 +01:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Some tests left timers running when they ended, and
--forceExithid them. Both test scripts inpackage.jsondrop it.Left open, by file:
tests/backgroundApproval.test.js: the background's 20-second timer, which runs while a test leaves an approval pending. It is now stubbed for the whole file, not onedescribeblock.tests/backgroundStateIsolation.test.js: the same timer, now stubbed.tests/chainSwitchGate.test.js: the same timer, now stubbed.tests/coldWorkerChainSwitch.test.js: the same timer, now stubbed.tests/coldWorkerSendTransaction.test.js: the same timer, now stubbed.tests/connectedSitesWorkerRestart.test.js: the same timer, now stubbed.tests/addressKey.test.js: a flash message's timer, now on fake timers.tests/deleteWalletLostPassword.test.js: a flash message's timer, now on fake timers.tests/sendAmountRule.test.js: a flash message's timer, now on fake timers.tests/sendMax.test.js: a flash message's timer, now on fake timers.tests/walletDefects.test.js: a flash message's timer, now on fake timers.A test that waited on real zero-delay timeouts to let a screen settle now calls
jest.advanceTimersByTimeAsync(0)instead.In
tests/backgroundApproval.test.js, the one test that spies on that timer itself is unchanged:jest.spyOnhands it the file's stub.Judgement call: ethers' own short timers still end after some tests: a 250 ms request cache and a 0 ms network event. They stop by themselves, and no test can reach them.
Model: opus-5-5
Review: PASS
Each test that left a timer running now stubs or fakes it, and every changed test still asserts what it did before.
Follow-up note: in the PR body, "ethers' own short timers still end after some tests: a 250 ms request cache and a 0 ms network event" reads two ways; "Two ethers timers can still run for up to 250 ms after a test ends." reads once.
Model: opus-5-5