fix: 消除并发测试中的 tool 导出竞争和 SQLite 目录碰撞
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import type Database from "bun:sqlite";
|
||||
|
||||
import { describe, expect, mock, test } from "bun:test";
|
||||
import { describe, expect, test } from "bun:test";
|
||||
|
||||
import type { Conversation, Message, RuntimeMode } from "../../../src/shared/api";
|
||||
|
||||
@@ -9,45 +9,11 @@ import { createProject } from "../../../src/server/db/projects";
|
||||
import { createProvider } from "../../../src/server/db/providers";
|
||||
import { createNoopLogger } from "../../../src/server/logger";
|
||||
import { createMigratedMemoryTestDatabase } from "../../helpers";
|
||||
import "../mocks/ai";
|
||||
|
||||
const MODE: RuntimeMode = "test";
|
||||
const LOG = createNoopLogger();
|
||||
|
||||
void mock.module("ai", () => ({
|
||||
createAgentUIStreamResponse: (opts: {
|
||||
agent: unknown;
|
||||
messages: unknown[];
|
||||
onFinish:
|
||||
| ((event: { finishReason?: string; responseMessage: { parts?: Array<{ text: string; type: string }> } }) => void)
|
||||
| undefined;
|
||||
}) => {
|
||||
if (opts.onFinish) {
|
||||
opts.onFinish({
|
||||
responseMessage: {
|
||||
parts: [{ text: "test reply from AI", type: "text" }],
|
||||
},
|
||||
});
|
||||
}
|
||||
return Promise.resolve(
|
||||
new Response(
|
||||
'data: {"type":"start-step"}\n\ndata: {"type":"text-start","id":"txt-1"}\n\ndata: {"type":"text-delta","id":"txt-1","delta":"test reply from AI"}\n\ndata: {"type":"text-end","id":"txt-1"}\n\ndata: {"type":"finish-step"}\n\ndata: {"type":"finish"}\n\n',
|
||||
{
|
||||
headers: { "Content-Type": "text/event-stream" },
|
||||
},
|
||||
),
|
||||
);
|
||||
},
|
||||
createProviderRegistry: () => ({
|
||||
languageModel: () => ({}),
|
||||
}),
|
||||
generateText: () => Promise.resolve({ text: "AI总结标题", usage: {} }),
|
||||
stepCountIs: () => () => true,
|
||||
tool: () => ({ execute: async () => await Promise.resolve({}) }),
|
||||
ToolLoopAgent: function M() {
|
||||
// no-op: createAgentUIStreamResponse handles streaming
|
||||
},
|
||||
}));
|
||||
|
||||
async function createConversationViaHandler(req: Request, db: Database): Promise<Response> {
|
||||
const { handleCreateConversation: h } = await import("../../../src/server/routes/chat/create");
|
||||
return h(req, db, MODE, LOG);
|
||||
|
||||
Reference in New Issue
Block a user