emma-hermes/ui-tui/src/__tests__/spawnHistoryStore.test.ts

47 lines
1.3 KiB
TypeScript

import { beforeEach, describe, expect, it } from 'vitest'
import { clearSpawnHistory, getSpawnHistory, pushDiskSnapshot } from '../app/spawnHistoryStore.js'
describe('spawnHistoryStore status normalization', () => {
beforeEach(() => {
clearSpawnHistory()
})
it('keeps timeout/error statuses from disk snapshots', () => {
pushDiskSnapshot(
{
finished_at: 1_700_000_001,
label: 'status test',
session_id: 'sess-1',
started_at: 1_700_000_000,
subagents: [
{ goal: 'timeout child', id: 'sa-timeout', index: 0, status: 'timeout' },
{ goal: 'error child', id: 'sa-error', index: 1, status: 'error' }
]
},
'/tmp/snap-timeout-error.json'
)
const statuses = getSpawnHistory()[0]?.subagents.map(s => s.status)
expect(statuses).toEqual(['timeout', 'error'])
})
it('falls back unknown disk statuses to completed', () => {
pushDiskSnapshot(
{
finished_at: 1_700_000_011,
label: 'unknown status test',
session_id: 'sess-2',
started_at: 1_700_000_010,
subagents: [{ goal: 'mystery child', id: 'sa-unknown', index: 0, status: 'mystery_status' }]
},
'/tmp/snap-unknown.json'
)
const status = getSpawnHistory()[0]?.subagents[0]?.status
expect(status).toBe('completed')
})
})