hermes-agent/ui-tui/src/__tests__/useCompletion.test.ts
2026-05-04 16:14:40 -07:00

35 lines
1.1 KiB
TypeScript

import { describe, expect, it } from 'vitest'
import { completionRequestForInput } from '../hooks/useCompletion.js'
describe('completionRequestForInput', () => {
it('routes real slash commands to slash completion', () => {
expect(completionRequestForInput('/help')).toMatchObject({
method: 'complete.slash',
params: { text: '/help' },
replaceFrom: 1
})
})
it('does not route absolute paths through slash completion', () => {
expect(
completionRequestForInput('/home/d/Desktop/agenda/CrimsonRed/.hermes/plans/2026-05-04-HANDOFF-NEXT.md')
).toMatchObject({
method: 'complete.path',
params: { word: '/home/d/Desktop/agenda/CrimsonRed/.hermes/plans/2026-05-04-HANDOFF-NEXT.md' },
replaceFrom: 0
})
})
it('keeps path completion for trailing absolute path tokens', () => {
expect(completionRequestForInput('read /home/d/Desktop/file.md')).toMatchObject({
method: 'complete.path',
params: { word: '/home/d/Desktop/file.md' },
replaceFrom: 5
})
})
it('leaves plain text alone', () => {
expect(completionRequestForInput('hello there')).toBeNull()
})
})