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 failedCount = 0;
|
||||||
let runtimeAlivePendingCount = 0;
|
let runtimeAlivePendingCount = 0;
|
||||||
const normalizedExpected = expectedMembers.map(normalizeMemberName).filter(Boolean);
|
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];
|
const entry = members[memberName];
|
||||||
if (!entry) {
|
if (!entry) {
|
||||||
pendingCount += 1;
|
pendingCount += 1;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
import { describe, expect, it } from 'vitest';
|
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', () => {
|
describe('TeamLaunchStateEvaluator', () => {
|
||||||
it('keeps member spawn statuses for persisted members even when expectedMembers is stale', () => {
|
it('keeps member spawn statuses for persisted members even when expectedMembers is stale', () => {
|
||||||
|
|
@ -55,4 +58,27 @@ describe('TeamLaunchStateEvaluator', () => {
|
||||||
pendingPermissionRequestIds: ['req-1'],
|
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