fix(team): keep launch summary aligned with persisted members
This commit is contained in:
parent
72517418d9
commit
400eaf9acd
2 changed files with 34 additions and 2 deletions
|
|
@ -105,8 +105,14 @@ export function summarizePersistedLaunchMembers(
|
|||
let failedCount = 0;
|
||||
let runtimeAlivePendingCount = 0;
|
||||
const normalizedExpected = expectedMembers.map(normalizeMemberName).filter(Boolean);
|
||||
const memberNames = Array.from(
|
||||
new Set([
|
||||
...normalizedExpected,
|
||||
...Object.keys(members).map(normalizeMemberName).filter(Boolean),
|
||||
])
|
||||
);
|
||||
|
||||
for (const memberName of normalizedExpected) {
|
||||
for (const memberName of memberNames) {
|
||||
const entry = members[memberName];
|
||||
if (!entry) {
|
||||
pendingCount += 1;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
import { describe, expect, it } from 'vitest';
|
||||
|
||||
import { snapshotToMemberSpawnStatuses } from '../../../../src/main/services/team/TeamLaunchStateEvaluator';
|
||||
import {
|
||||
snapshotToMemberSpawnStatuses,
|
||||
summarizePersistedLaunchMembers,
|
||||
} from '../../../../src/main/services/team/TeamLaunchStateEvaluator';
|
||||
|
||||
describe('TeamLaunchStateEvaluator', () => {
|
||||
it('keeps member spawn statuses for persisted members even when expectedMembers is stale', () => {
|
||||
|
|
@ -55,4 +58,27 @@ describe('TeamLaunchStateEvaluator', () => {
|
|||
pendingPermissionRequestIds: ['req-1'],
|
||||
});
|
||||
});
|
||||
|
||||
it('counts persisted members in launch summary even when expectedMembers is stale', () => {
|
||||
const summary = summarizePersistedLaunchMembers(
|
||||
['alice'],
|
||||
{
|
||||
alice: {
|
||||
launchState: 'runtime_pending_bootstrap',
|
||||
runtimeAlive: false,
|
||||
},
|
||||
bob: {
|
||||
launchState: 'runtime_pending_permission',
|
||||
runtimeAlive: true,
|
||||
},
|
||||
} as any
|
||||
);
|
||||
|
||||
expect(summary).toEqual({
|
||||
confirmedCount: 0,
|
||||
pendingCount: 2,
|
||||
failedCount: 0,
|
||||
runtimeAlivePendingCount: 1,
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in a new issue