mi-gpt/tests/db.ts

59 lines
1.8 KiB
TypeScript
Raw Normal View History

2024-01-30 15:40:31 +00:00
import { assert } from "console";
2024-02-26 04:03:36 +00:00
import {
ConversationManager,
MessageContext,
} from "../src/services/bot/conversation";
2024-02-23 10:10:53 +00:00
import { println } from "../src/utils/base";
import { MessageCRUD } from "../src/services/db/message";
2024-01-30 15:40:31 +00:00
export async function testDB() {
const manager = new ConversationManager({
bot: {
name: "小爱同学",
profile: "我是小爱同学,机器人",
},
master: {
2024-02-29 15:09:19 +00:00
name: "陆小千",
profile: "我是陆小千,人类",
2024-01-30 15:40:31 +00:00
},
room: {
name: "客厅",
2024-02-29 15:09:19 +00:00
description: "陆小千的客厅,小爱同学放在角落里",
2024-01-30 15:40:31 +00:00
},
});
2024-01-31 15:28:08 +00:00
const { room, bot, master, memory } = await manager.get();
assert(room, "❌ 初始化用户失败");
2024-02-26 04:03:36 +00:00
const ctx = { bot, master, room } as MessageContext;
let message = await manager.onMessage(ctx, {
2024-01-31 15:28:08 +00:00
sender: master!,
text: "你好!",
});
assert(message?.text === "你好!", "❌ 插入消息失败");
2024-02-26 04:03:36 +00:00
message = await manager.onMessage(ctx, {
2024-01-31 15:28:08 +00:00
sender: bot!,
text: "你好!很高兴认识你",
});
2024-02-26 04:03:36 +00:00
await manager.onMessage(ctx, {
2024-01-31 15:28:08 +00:00
sender: master!,
text: "你是谁?",
});
2024-02-26 04:03:36 +00:00
await manager.onMessage(ctx, {
2024-01-31 15:28:08 +00:00
sender: bot!,
text: "我是小爱同学,你可以叫我小爱!",
});
const messages = await manager.getMessages({ take: 100 });
assert(messages.length === 4, "❌ 查询消息数量异常");
assert(messages[0].text === "你好!", "❌ 查询消息排序异常");
const newMessages = await MessageCRUD.gets({
take: 100,
cursorId: message!.id,
order: "asc",
});
assert(newMessages.length === 2, "❌ 查询消息数量异常(游标)");
assert(
newMessages[1].text === "我是小爱同学,你可以叫我小爱!",
"❌ 查询消息排序异常(游标)"
);
2024-01-30 15:40:31 +00:00
println("✅ hello world");
}