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) })