mirror of
https://github.com/garrytan/gbrain.git
synced 2026-07-27 22:15:33 +00:00
test(progress): assert net-zero live-reporter delta, not absolute zero
The 'only one process-level signal handler' test asserted __liveReporterCountForTest() === 0, which encodes 'no other test file in this bun process left a live reporter' — a shard-composition property, not this test's invariant. PR #3096's new test files reshuffled the LPT shard packing so a shardmate's live reporter now lands before progress.test.ts in CI shard 5, failing the test deterministically (both run attempts). Snapshot the count before the 50 lifecycles and assert the delta is zero, mirroring the installedBefore baseline the test already uses for the signal handler. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
9268552d70
commit
093d693502
@@ -216,17 +216,21 @@ describe('progress reporter', () => {
|
||||
});
|
||||
|
||||
test('only one process-level signal handler installed across many reporters', () => {
|
||||
// Baseline: one handler already installed by prior tests in this file.
|
||||
// Baseline: one handler already installed by prior tests in this file, and
|
||||
// possibly live reporters from OTHER test files sharing this bun process
|
||||
// (shard composition is not this test's invariant — assert the delta, not
|
||||
// an absolute zero, or shard reshuffles make this fail spuriously).
|
||||
const installedBefore = __signalHandlerInstalledForTest();
|
||||
const liveBefore = __liveReporterCountForTest();
|
||||
const { stream } = sink(false);
|
||||
for (let i = 0; i < 50; i++) {
|
||||
const p = createProgress({ mode: 'json', stream, minIntervalMs: 0, minItems: 1 });
|
||||
p.start(`phase_${i}`, 1);
|
||||
p.finish();
|
||||
}
|
||||
// After 50 reporter lifecycles, still exactly one handler and zero leaked live entries.
|
||||
// After 50 reporter lifecycles, still exactly one handler and zero NET leaked live entries.
|
||||
expect(__signalHandlerInstalledForTest()).toBe(installedBefore || true);
|
||||
expect(__liveReporterCountForTest()).toBe(0);
|
||||
expect(__liveReporterCountForTest()).toBe(liveBefore);
|
||||
});
|
||||
|
||||
test('startHeartbeat() fires heartbeats and stop() clears', async () => {
|
||||
|
||||
Reference in New Issue
Block a user