hermes-agent/ui-tui/src/__tests__/rpc.test.ts

27 lines
827 B
TypeScript

import { describe, expect, it } from 'vitest'
import { asRpcResult, rpcErrorMessage } from '../lib/rpc.js'
describe('asRpcResult', () => {
it('keeps plain object payloads', () => {
expect(asRpcResult({ ok: true, value: 'x' })).toEqual({ ok: true, value: 'x' })
})
it('rejects missing or non-object payloads', () => {
expect(asRpcResult(undefined)).toBeNull()
expect(asRpcResult(null)).toBeNull()
expect(asRpcResult('oops')).toBeNull()
expect(asRpcResult(['bad'])).toBeNull()
})
})
describe('rpcErrorMessage', () => {
it('prefers Error messages', () => {
expect(rpcErrorMessage(new Error('boom'))).toBe('boom')
})
it('falls back for unknown errors', () => {
expect(rpcErrorMessage('broken')).toBe('broken')
expect(rpcErrorMessage({ code: 500 })).toBe('request failed')
})
})