cc-haha/desktop/src/preview-agent/protocol.test.ts
程序员阿江(Relakkes) 06461a93e9 feat(desktop): add preview bridge protocol and host<->page commands
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 17:40:45 +08:00

16 lines
799 B
TypeScript

import { describe, expect, it } from 'vitest'
import { parseHostMessage, serializeAgentMessage } from './protocol'
describe('preview-agent protocol', () => {
it('serializes agent→host messages to a stable envelope', () => {
expect(JSON.parse(serializeAgentMessage({ type: 'ready' }))).toEqual({ v: 1, type: 'ready' })
expect(JSON.parse(serializeAgentMessage({ type: 'navigated', url: 'http://x/', title: 'T' })))
.toEqual({ v: 1, type: 'navigated', url: 'http://x/', title: 'T' })
})
it('parses host→agent messages and rejects unknown/garbage', () => {
expect(parseHostMessage('{"v":1,"type":"enter-picker"}')).toEqual({ type: 'enter-picker' })
expect(parseHostMessage('not json')).toBeNull()
expect(parseHostMessage('{"v":1,"type":"nope"}')).toBeNull()
})
})