37 lines
1.2 KiB
TypeScript
37 lines
1.2 KiB
TypeScript
import { mock } from "bun:test";
|
|
|
|
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\u603B\u7ED3\u6807\u9898", usage: {} }),
|
|
stepCountIs: () => () => true,
|
|
tool: () => ({ execute: async () => await Promise.resolve({}) }),
|
|
ToolLoopAgent: function M() {
|
|
// no-op: createAgentUIStreamResponse handles streaming
|
|
},
|
|
}));
|