Files
hermes-agent/ui-tui/src/__tests__/messageLine.test.ts
T
hermes-seaeye[bot] a7a696ba59 fmt(js): npm run fix on merge (#70455)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-07-24 01:58:39 +00:00

45 lines
1.9 KiB
TypeScript

import { describe, expect, it } from 'vitest'
import { shouldShowResponseSeparator, shouldShowThinkingTrail } from '../components/messageLine.js'
describe('shouldShowResponseSeparator', () => {
it('separates assistant response text from visible details', () => {
expect(shouldShowResponseSeparator({ role: 'assistant', text: 'final', thinking: 'plan' }, true)).toBe(true)
})
it('does not add a response separator without details or body text', () => {
expect(shouldShowResponseSeparator({ role: 'assistant', text: 'final' }, false)).toBe(false)
expect(shouldShowResponseSeparator({ role: 'assistant', text: ' ', thinking: 'plan' }, true)).toBe(false)
})
it('does not add response separators to non-assistant transcript rows', () => {
expect(shouldShowResponseSeparator({ role: 'user', text: 'prompt' }, true)).toBe(false)
expect(shouldShowResponseSeparator({ role: 'system', text: 'note' }, true)).toBe(false)
})
})
describe('shouldShowThinkingTrail', () => {
it('hides an ordinary reasoning trail when every section is hidden', () => {
const msg = { role: 'system', text: '', thinking: 'plan' } as const
expect(shouldShowThinkingTrail(msg, 'hidden', 'hidden', 'hidden')).toBe(false)
})
it('shows an ordinary reasoning trail when any section is visible', () => {
const msg = { role: 'system', text: '', thinking: 'plan' } as const
expect(shouldShowThinkingTrail(msg, 'collapsed', 'hidden', 'hidden')).toBe(true)
expect(shouldShowThinkingTrail(msg, 'hidden', 'collapsed', 'hidden')).toBe(true)
expect(shouldShowThinkingTrail(msg, 'hidden', 'hidden', 'expanded')).toBe(true)
})
it('keeps a MoA reference block visible even when every section is hidden (#64657)', () => {
const msg = {
role: 'system',
text: '',
thinking: '◇ Reference 1/2 — model-a\nadvice-a',
isMoaReference: true
} as const
expect(shouldShowThinkingTrail(msg, 'hidden', 'hidden', 'hidden')).toBe(true)
})
})