Files
orca/src/shared/opencode-launch-command.test.ts
T
NeilandHarshul Rathod bdb897b735 Respect disabled OpenCode variants and refresh WSL settings safely (#23328)
Respect disabled OpenCode variants, preserve explicit config ownership, and refresh WSL guest settings safely across reconnects.

Based on Harshul Rathod proposal #22805.

Co-authored-by: Harshul Rathod <harshulrathod1640@gmail.com>
2026-09-26 22:48:35 -07:00

32 lines
1.2 KiB
TypeScript

import { describe, expect, it } from 'vitest'
import { isOpenCode2LaunchCommand, selectOpenCodeHookAgent } from './opencode-launch-command'
describe('isOpenCode2LaunchCommand', () => {
it.each(['opencode2', '/usr/local/bin/opencode2', 'opencode2.exe', 'opencode2.cmd'])(
'recognizes %s',
(command) => {
expect(isOpenCode2LaunchCommand(command)).toBe(true)
}
)
it.each(['opencode', 'echo opencode2', 'opencode2-helper'])('rejects %s', (command) => {
expect(isOpenCode2LaunchCommand(command)).toBe(false)
})
})
describe('OpenCode hook selection', () => {
it.each([
'opencode --session fixture',
'"C:\\tools\\opencode.exe" --session fixture',
'/usr/local/bin/opencode'
])('preserves disabled v1 identity for %s', (command) => {
expect(selectOpenCodeHookAgent(undefined, command, (agent) => agent === 'opencode2')).toBeNull()
})
it('trusts the supplied identity for wrapped or renamed commands', () => {
expect(selectOpenCodeHookAgent('opencode', 'opencode2', () => true)).toBe('opencode')
expect(
selectOpenCodeHookAgent('opencode2', 'my-wrapper', (agent) => agent === 'opencode2')
).toBe('opencode2')
})
})