fix: preserve chat order and published page scripts
This commit is contained in:
@@ -52,3 +52,31 @@ test('mergeSessionMessagesAfterFinish matches Finish sync merge semantics', () =
|
||||
['u1', 'a1'],
|
||||
);
|
||||
});
|
||||
|
||||
test('mergeConversationSnapshot keeps an omitted middle message between its anchors', () => {
|
||||
const local = [
|
||||
msg('u1', 'user', '第一轮'),
|
||||
msg('a1', 'assistant', '第一轮回复'),
|
||||
msg('u2', 'user', '第二轮'),
|
||||
msg('a2', 'assistant', '第二轮回复'),
|
||||
];
|
||||
const server = [local[0], local[1], local[3]];
|
||||
assert.deepEqual(
|
||||
mergeConversationSnapshot(local, server).map((message) => message.id),
|
||||
['u1', 'a1', 'u2', 'a2'],
|
||||
);
|
||||
});
|
||||
|
||||
test('mergeConversationSnapshot keeps local messages before the first and after the last server anchor', () => {
|
||||
const local = [
|
||||
msg('u0', 'user', '本地前置'),
|
||||
msg('u1', 'user', '服务端消息'),
|
||||
msg('a1', 'assistant', '服务端回复'),
|
||||
msg('a2', 'assistant', '本地尾部'),
|
||||
];
|
||||
const server = [local[1], local[2]];
|
||||
assert.deepEqual(
|
||||
mergeConversationSnapshot(local, server).map((message) => message.id),
|
||||
['u0', 'u1', 'a1', 'a2'],
|
||||
);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user