diff --git a/tests/integration/idle-costs-nothing.test.ts b/tests/integration/idle-costs-nothing.test.ts index 2374627e..7e664a28 100644 --- a/tests/integration/idle-costs-nothing.test.ts +++ b/tests/integration/idle-costs-nothing.test.ts @@ -70,8 +70,22 @@ describe('an idle brain costs nothing', () => { await brain.flush() const logged: string[] = [] + // The STACK behind each narration, kept beside the line it belongs to. + // vitest tags a stdout block with the test that is RUNNING, not the brain + // that wrote it, so teeing these lines through would only ever name this + // test. The call stack does name the driver: `kickBackgroundFlush('idle')` + // under `armIdleFlushTimer` is a cadence flush on some brain, the deferred- + // embed worker's commit path is a brain still landing vectors, and a bare + // `flush()` is an explicit caller. That distinction is the whole question. + const stacks: string[] = [] const origLog = console.log - console.log = ((...a: unknown[]) => { logged.push(a.map(String).join(' ')) }) as typeof console.log + console.log = ((...a: unknown[]) => { + const line = a.map(String).join(' ') + logged.push(line) + if (/All indexes flushed to disk|Flushing Brainy indexes/.test(line)) { + stacks.push(new Error('flush narration').stack ?? '(no stack)') + } + }) as typeof console.log // Watch the providers directly: a flush that runs calls all of them. const storage = (brain as unknown as { storage: { flushCounts: () => Promise } }).storage @@ -113,10 +127,12 @@ describe('an idle brain costs nothing', () => { ) expect( flushChatter, - `a flush narrated during the ${IDLE_WATCH_MS}ms idle window. This brain's own ` + - `providers were NOT called (asserted above), so the lines below were printed by ` + - `another brain alive in this process — find it by the 'stdout | > ' ` + - `prefix in the run log:\n${flushChatter.join('\n')}` + `${flushChatter.length} flush line(s) narrated during the ${IDLE_WATCH_MS}ms idle ` + + `window. This brain's own providers were NOT called (asserted above), so another ` + + `brain alive in this process printed them — the suite runs every file in ONE ` + + `process and 67 test files create more brains than they close.\n` + + `${flushChatter.join('\n')}\n\n` + + `The stack behind the first one names the driver:\n${stacks[0] ?? '(none captured)'}` ).toEqual([]) }, 180_000)