Files
orca/src/shared/tui-agent-selection.test.ts
Brennan Benson f8b553b7d5 fix(agent-hooks): skip unavailable agent homes (#11442)
* fix(agent-hooks): skip unavailable agent homes

* refactor(agent-hooks): separate Pi and OMP home fix

* test(agent-hooks): update merged protocol harnesses

* fix(agent-hooks): avoid redundant reconciliation

* fix(agent-hooks): harden reconciliation and detection

* test(agent-hooks): cover settings reconciliation

* fix(agent-hooks): hydrate PATH for paired clients
2026-07-29 20:19:18 -07:00

45 lines
1.6 KiB
TypeScript

import { describe, expect, it } from 'vitest'
import {
haveSameDisabledTuiAgents,
normalizeDisabledTuiAgents,
pickTuiAgent
} from './tui-agent-selection'
describe('pickTuiAgent', () => {
it('uses an installed preferred agent', () => {
expect(pickTuiAgent('codex', ['claude', 'codex'])).toBe('codex')
})
it('falls back in desktop catalog order when the preference is absent or stale', () => {
expect(pickTuiAgent(null, ['cursor', 'codex'])).toBe('codex')
expect(pickTuiAgent('gemini', ['cursor', 'codex'])).toBe('codex')
expect(pickTuiAgent(null, ['continue', 'command-code'])).toBe('command-code')
})
it('respects the explicit blank terminal preference', () => {
expect(pickTuiAgent('blank', ['cursor', 'claude'])).toBeNull()
})
it('ignores disabled preferred and fallback agents', () => {
expect(pickTuiAgent('codex', ['claude', 'codex'], ['codex'])).toBe('claude')
expect(pickTuiAgent(null, ['claude', 'codex'], ['claude', 'codex'])).toBeNull()
})
})
describe('normalizeDisabledTuiAgents', () => {
it('dedupes supported agent ids and drops unsupported values', () => {
expect(normalizeDisabledTuiAgents(['codex', 'unknown', 'codex', null, 'claude'])).toEqual([
'codex',
'claude'
])
})
})
describe('haveSameDisabledTuiAgents', () => {
it('compares the normalized disabled-agent sets', () => {
expect(haveSameDisabledTuiAgents(['codex', 'claude'], ['claude', 'codex'])).toBe(true)
expect(haveSameDisabledTuiAgents(['codex', 'unknown'], ['codex'])).toBe(true)
expect(haveSameDisabledTuiAgents(['codex'], ['claude'])).toBe(false)
})
})