Files
ftb-project-management/apps/web/lib/wenfan-conversation-history.test.ts
Script Generator e5ce2d221e feat(问翻小宝): 增强帮助搜索与会话历史
关键改动:

- 增加问翻小宝会话历史记录规则与测试

- 优化帮助搜索、兜底建议和页面交互结构

- 更新帮助截图资产和截图采集脚本

Co-Authored-By: Codex GPT-5 <codex@openai.com>
2026-07-01 09:20:10 +08:00

55 lines
1.9 KiB
TypeScript

import test from 'node:test';
import assert from 'node:assert/strict';
import {
createWenfanConversationRecord,
deleteWenfanConversationRecord,
updateWenfanConversationRecord,
} from './wenfan-conversation-history';
type TestMessage = {
role: 'assistant' | 'user';
content?: string;
};
const introMessage: TestMessage = {
role: 'assistant',
content: '我是问翻小宝',
};
test('createWenfanConversationRecord creates history only from the new conversation action', () => {
const record = createWenfanConversationRecord('conv-1', [introMessage]);
assert.equal(record.id, 'conv-1');
assert.equal(record.title, '新对话');
assert.deepEqual(record.messages, [introMessage]);
});
test('updateWenfanConversationRecord updates an existing conversation without adding a question record', () => {
const record = createWenfanConversationRecord('conv-1', [introMessage]);
const messages: TestMessage[] = [
introMessage,
{ role: 'user', content: '怎么新建产品?' },
{ role: 'assistant', content: '产品创建帮助' },
{ role: 'user', content: '怎么新建项目?' },
];
const next = updateWenfanConversationRecord([record], 'conv-1', messages);
assert.equal(next.length, 1);
assert.equal(next[0]?.title, '怎么新建产品?');
assert.deepEqual(next[0]?.messages, messages);
});
test('updateWenfanConversationRecord does not create history when there is no active conversation', () => {
const messages: TestMessage[] = [introMessage, { role: 'user', content: '怎么新建产品?' }];
assert.deepEqual(updateWenfanConversationRecord([], null, messages), []);
});
test('deleteWenfanConversationRecord removes a conversation history item', () => {
const first = createWenfanConversationRecord('conv-1', [introMessage]);
const second = createWenfanConversationRecord('conv-2', [introMessage]);
assert.deepEqual(deleteWenfanConversationRecord([first, second], 'conv-1'), [second]);
});