From 69a47fda07df32b5670a0bb0268811d26dfda6fd Mon Sep 17 00:00:00 2001 From: 777genius Date: Sun, 3 May 2026 13:07:04 +0300 Subject: [PATCH] test(team): cover stalled bootstrap runtime rows --- .../team/teamRuntimeDisplayRows.test.ts | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/test/renderer/components/team/teamRuntimeDisplayRows.test.ts b/test/renderer/components/team/teamRuntimeDisplayRows.test.ts index 006a620a..a5ac7463 100644 --- a/test/renderer/components/team/teamRuntimeDisplayRows.test.ts +++ b/test/renderer/components/team/teamRuntimeDisplayRows.test.ts @@ -140,6 +140,29 @@ describe('buildTeamRuntimeDisplayRows', () => { }); }); + it('degrades spawn-only rows when online process evidence has stalled bootstrap', () => { + const rows = buildTeamRuntimeDisplayRows({ + members: [{ name: 'alice' }], + spawnStatuses: { + alice: createSpawnStatus({ + status: 'online', + launchState: 'runtime_pending_bootstrap', + runtimeAlive: true, + bootstrapStalled: true, + runtimeDiagnostic: 'Runtime is alive, but bootstrap did not confirm', + }), + }, + }); + + expect(rows[0]).toMatchObject({ + memberName: 'alice', + state: 'degraded', + source: 'spawn-status', + stateReason: 'Runtime is alive, but bootstrap did not confirm', + actionsAllowed: false, + }); + }); + it('uses explicit spawn status handling without promoting unknown statuses to running', () => { const rows = buildTeamRuntimeDisplayRows({ members: [{ name: 'alice' }, { name: 'bob' }, { name: 'carol' }],