Initial commit: Memind H5 portal with MindSpace, Plaza, and agent jobs.
Track application source and tests; exclude local env, user workspaces, and runtime data via .gitignore. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
import assert from 'node:assert/strict';
|
||||
import test from 'node:test';
|
||||
import { mergeMessageContent, mergeStreamingChunk } from './message-stream.mjs';
|
||||
|
||||
test('mergeStreamingChunk appends deltas', () => {
|
||||
assert.equal(mergeStreamingChunk('Hello', ' world'), 'Hello world');
|
||||
});
|
||||
|
||||
test('mergeStreamingChunk accepts cumulative snapshots', () => {
|
||||
assert.equal(mergeStreamingChunk('Hello', 'Hello world'), 'Hello world');
|
||||
});
|
||||
|
||||
test('mergeStreamingChunk ignores duplicate chunks', () => {
|
||||
assert.equal(mergeStreamingChunk('Hello world', 'world'), 'Hello world');
|
||||
assert.equal(mergeStreamingChunk('Done!!', 'Done!!'), 'Done!!');
|
||||
});
|
||||
|
||||
test('mergeStreamingChunk merges overlapping chunks', () => {
|
||||
assert.equal(mergeStreamingChunk('Hello wo', 'orld'), 'Hello world');
|
||||
});
|
||||
|
||||
test('mergeMessageContent merges thinking and text separately', () => {
|
||||
const first = [
|
||||
{ type: 'thinking', thinking: 'Let' },
|
||||
{ type: 'text', text: '搞定' },
|
||||
];
|
||||
const second = [
|
||||
{ type: 'thinking', thinking: 'Let me' },
|
||||
{ type: 'text', text: '搞定!!' },
|
||||
];
|
||||
const merged = mergeMessageContent(first, second);
|
||||
assert.equal(merged.length, 2);
|
||||
assert.equal(merged[0].thinking, 'Let me');
|
||||
assert.equal(merged[1].text, '搞定!!');
|
||||
});
|
||||
|
||||
test('mergeMessageContent avoids duplicate multi-part appends', () => {
|
||||
let content = [];
|
||||
content = mergeMessageContent(content, [
|
||||
{ type: 'thinking', thinking: 'Done!! ' },
|
||||
{ type: 'text', text: '👉 ' },
|
||||
]);
|
||||
content = mergeMessageContent(content, [
|
||||
{ type: 'thinking', thinking: 'Done!! Let me' },
|
||||
{ type: 'text', text: '👉 [欢迎' },
|
||||
]);
|
||||
assert.equal(content.length, 2);
|
||||
assert.equal(content[0].thinking, 'Done!! Let me');
|
||||
assert.equal(content[1].text, '👉 [欢迎');
|
||||
});
|
||||
Reference in New Issue
Block a user