Files
orca/src/shared/tui-agent-selection.test.ts
T
Jinjing bda658a364 Add agent enablement controls (#2972)
* Add agent enablement controls

Implements the Enable/Disable Agents Dashboard behavior described in docs/enable-disable-agents-dashboard.md, including persisted agent enablement state, filtered launch surfaces, and settings UI affordances.

* Clarify agent availability controls

* Respect disabled agents across workspace and AI defaults

- Filter disabled TUI agents from mobile and quick workspace selection
- Avoid implicitly choosing disabled agents for commit/PR AI settings
- Broadcast settings changes to open windows for disabled-agent updates

* rm design doc

* fix: complete agent enablement propagation
2026-05-28 17:29:49 -07:00

33 lines
1.2 KiB
TypeScript

import { describe, expect, it } from 'vitest'
import { 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'
])
})
})