62 lines
1.2 KiB
TypeScript
62 lines
1.2 KiB
TypeScript
import {
|
|
getSpawnAwareDotClass,
|
|
getSpawnAwarePresenceLabel,
|
|
} from '@renderer/utils/memberHelpers';
|
|
|
|
import type { ResolvedTeamMember } from '@shared/types';
|
|
|
|
const member: ResolvedTeamMember = {
|
|
name: 'alice',
|
|
status: 'unknown',
|
|
taskCount: 0,
|
|
currentTaskId: null,
|
|
lastActiveAt: null,
|
|
messageCount: 0,
|
|
color: 'blue',
|
|
agentType: 'reviewer',
|
|
role: 'Reviewer',
|
|
removedAt: undefined,
|
|
};
|
|
|
|
describe('memberHelpers spawn-aware presence', () => {
|
|
it('shows process-online teammates as online with a green dot', () => {
|
|
expect(
|
|
getSpawnAwarePresenceLabel(
|
|
member,
|
|
'online',
|
|
'runtime_pending_bootstrap',
|
|
'process',
|
|
true,
|
|
true,
|
|
false,
|
|
undefined
|
|
)
|
|
).toBe('online');
|
|
|
|
expect(
|
|
getSpawnAwareDotClass(
|
|
member,
|
|
'online',
|
|
'runtime_pending_bootstrap',
|
|
true,
|
|
false,
|
|
undefined
|
|
)
|
|
).toContain('bg-emerald-400');
|
|
});
|
|
|
|
it('keeps accepted-but-not-yet-online teammates in starting state', () => {
|
|
expect(
|
|
getSpawnAwarePresenceLabel(
|
|
member,
|
|
'waiting',
|
|
'starting',
|
|
undefined,
|
|
false,
|
|
true,
|
|
true,
|
|
undefined
|
|
)
|
|
).toBe('starting');
|
|
});
|
|
});
|