mirror of
https://github.com/CJackHwang/ds2api.git
synced 2026-05-10 19:27:41 +08:00
refactor streaming accumulation and chat history UI
This commit is contained in:
60
tests/node/chat-history-utils.test.js
Normal file
60
tests/node/chat-history-utils.test.js
Normal file
@@ -0,0 +1,60 @@
|
||||
'use strict';
|
||||
|
||||
const test = require('node:test');
|
||||
const assert = require('node:assert/strict');
|
||||
|
||||
async function loadUtils() {
|
||||
return import('../../webui/src/features/chatHistory/chatHistoryUtils.js');
|
||||
}
|
||||
|
||||
test('chat history strict parser merges current input file placeholder', async () => {
|
||||
const {
|
||||
buildListModeMessages,
|
||||
} = await loadUtils();
|
||||
const t = (key) => key;
|
||||
const item = {
|
||||
messages: [{
|
||||
role: 'user',
|
||||
content: 'Continue from the latest state in the attached DS2API_HISTORY.txt context. Treat it as the current working state and answer the latest user request directly.',
|
||||
}],
|
||||
history_text: [
|
||||
'<|begin▁of▁sentence|>',
|
||||
'<|User|>hello',
|
||||
'<|Assistant|>hi<|end▁of▁sentence|>',
|
||||
].join(''),
|
||||
};
|
||||
|
||||
const result = buildListModeMessages(item, t);
|
||||
assert.equal(result.historyMerged, true);
|
||||
assert.deepEqual(result.messages, [
|
||||
{ role: 'user', content: 'hello' },
|
||||
{ role: 'assistant', content: 'hi' },
|
||||
]);
|
||||
});
|
||||
|
||||
test('chat history strict parser inserts history after system messages', async () => {
|
||||
const {
|
||||
buildListModeMessages,
|
||||
} = await loadUtils();
|
||||
const t = (key) => key;
|
||||
const item = {
|
||||
messages: [
|
||||
{ role: 'system', content: 'policy' },
|
||||
{ role: 'user', content: 'latest' },
|
||||
],
|
||||
history_text: [
|
||||
'<|begin▁of▁sentence|>',
|
||||
'<|User|>old',
|
||||
'<|Assistant|>done<|end▁of▁sentence|>',
|
||||
].join(''),
|
||||
};
|
||||
|
||||
const result = buildListModeMessages(item, t);
|
||||
assert.equal(result.historyMerged, true);
|
||||
assert.deepEqual(result.messages, [
|
||||
{ role: 'system', content: 'policy' },
|
||||
{ role: 'user', content: 'old' },
|
||||
{ role: 'assistant', content: 'done' },
|
||||
{ role: 'user', content: 'latest' },
|
||||
]);
|
||||
});
|
||||
Reference in New Issue
Block a user