25 lines
911 B
JavaScript
25 lines
911 B
JavaScript
import assert from 'node:assert/strict'
|
|
import test from 'node:test'
|
|
import { createUserMessage } from '../bundle/lib/message.js'
|
|
|
|
test('createUserMessage returns a frozen user message with a fresh id', () => {
|
|
const message = createUserMessage({
|
|
content: [{ type: 'text', text: 'hello' }],
|
|
source: { kind: 'user' },
|
|
})
|
|
|
|
assert.equal(message.role, 'user')
|
|
assert.match(message.id, /^[0-9a-f-]{36}$/)
|
|
assert.deepEqual(message.content, [{ type: 'text', text: 'hello' }])
|
|
assert.deepEqual(message.source, { kind: 'user' })
|
|
assert.ok(Object.isFrozen(message))
|
|
assert.ok(Object.isFrozen(message.content))
|
|
assert.ok(Object.isFrozen(message.content[0]))
|
|
})
|
|
|
|
test('createUserMessage does not reuse an id', () => {
|
|
const a = createUserMessage({ content: [], source: { kind: 'user' } })
|
|
const b = createUserMessage({ content: [], source: { kind: 'user' } })
|
|
assert.notEqual(a.id, b.id)
|
|
})
|