mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 08:20:43 +00:00
perf: mock hot agents import tests
This commit is contained in:
@@ -4,6 +4,15 @@ import { isOpenRouterAnthropicModelRef } from "./anthropic-family-cache-semantic
|
||||
import { __testing as extraParamsTesting, applyExtraParamsToAgent } from "./extra-params.js";
|
||||
import { resolveCacheRetention } from "./prompt-cache-retention.js";
|
||||
|
||||
vi.mock("../../plugins/provider-runtime.js", () => ({
|
||||
prepareProviderExtraParams: ({
|
||||
context,
|
||||
}: {
|
||||
context: { extraParams: Record<string, unknown> };
|
||||
}) => context.extraParams,
|
||||
wrapProviderStreamFn: () => undefined,
|
||||
}));
|
||||
|
||||
function applyAndExpectWrapped(params: {
|
||||
cfg?: Parameters<typeof applyExtraParamsToAgent>[1];
|
||||
extraParamsOverride?: Parameters<typeof applyExtraParamsToAgent>[4];
|
||||
|
||||
@@ -4,6 +4,15 @@ import { createPiAiStreamSimpleMock } from "../../../test/helpers/agents/pi-ai-s
|
||||
import { __testing as extraParamsTesting } from "./extra-params.js";
|
||||
import { runExtraParamsCase } from "./extra-params.test-support.js";
|
||||
|
||||
vi.mock("../../plugins/provider-runtime.js", () => ({
|
||||
prepareProviderExtraParams: ({
|
||||
context,
|
||||
}: {
|
||||
context: { extraParams: Record<string, unknown> };
|
||||
}) => context.extraParams,
|
||||
wrapProviderStreamFn: () => undefined,
|
||||
}));
|
||||
|
||||
vi.mock("@mariozechner/pi-ai", async () =>
|
||||
createPiAiStreamSimpleMock(() =>
|
||||
vi.importActual<typeof import("@mariozechner/pi-ai")>("@mariozechner/pi-ai"),
|
||||
|
||||
@@ -3,6 +3,15 @@ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
||||
import { __testing as extraParamsTesting } from "./extra-params.js";
|
||||
import { runExtraParamsCase } from "./extra-params.test-support.js";
|
||||
|
||||
vi.mock("../../plugins/provider-runtime.js", () => ({
|
||||
prepareProviderExtraParams: ({
|
||||
context,
|
||||
}: {
|
||||
context: { extraParams: Record<string, unknown> };
|
||||
}) => context.extraParams,
|
||||
wrapProviderStreamFn: () => undefined,
|
||||
}));
|
||||
|
||||
vi.mock("@mariozechner/pi-ai", async () => {
|
||||
const original =
|
||||
await vi.importActual<typeof import("@mariozechner/pi-ai")>("@mariozechner/pi-ai");
|
||||
|
||||
@@ -1,9 +1,19 @@
|
||||
import type { StreamFn } from "@mariozechner/pi-agent-core";
|
||||
import type { Context, Model, SimpleStreamOptions } from "@mariozechner/pi-ai";
|
||||
import { vi } from "vitest";
|
||||
import type { ThinkLevel } from "../../auto-reply/thinking.shared.js";
|
||||
import type { OpenClawConfig } from "../../config/types.openclaw.js";
|
||||
import { __testing as extraParamsTesting, applyExtraParamsToAgent } from "./extra-params.js";
|
||||
|
||||
vi.mock("../../plugins/provider-runtime.js", () => ({
|
||||
prepareProviderExtraParams: ({
|
||||
context,
|
||||
}: {
|
||||
context: { extraParams: Record<string, unknown> };
|
||||
}) => context.extraParams,
|
||||
wrapProviderStreamFn: () => undefined,
|
||||
}));
|
||||
|
||||
export type ExtraParamsCapture<TPayload extends Record<string, unknown>> = {
|
||||
headers?: Record<string, string>;
|
||||
options?: SimpleStreamOptions;
|
||||
|
||||
@@ -16,6 +16,87 @@ const taskExecutorMocks = vi.hoisted(() => ({
|
||||
recordTaskRunProgressByRunId: vi.fn(),
|
||||
}));
|
||||
|
||||
const configMocks = vi.hoisted(() => ({
|
||||
loadConfig: vi.fn(() => ({})),
|
||||
}));
|
||||
|
||||
const mediaStoreMocks = vi.hoisted(() => ({
|
||||
saveMediaBuffer: vi.fn(),
|
||||
}));
|
||||
|
||||
const musicGenerationRuntimeMocks = vi.hoisted(() => ({
|
||||
generateMusic: vi.fn(),
|
||||
listRuntimeMusicGenerationProviders: vi.fn(),
|
||||
}));
|
||||
|
||||
const musicGenerateBackgroundMocks = vi.hoisted(() => ({
|
||||
completeMusicGenerationTaskRun: vi.fn((params) => {
|
||||
if (!params.handle) {
|
||||
return;
|
||||
}
|
||||
taskExecutorMocks.completeTaskRunByRunId({
|
||||
runId: params.handle.runId,
|
||||
runtime: "cli",
|
||||
sessionKey: params.handle.requesterSessionKey,
|
||||
});
|
||||
}),
|
||||
createMusicGenerationTaskRun: vi.fn((params) => {
|
||||
const sessionKey = params.sessionKey?.trim();
|
||||
if (!sessionKey) {
|
||||
return null;
|
||||
}
|
||||
const runId = "tool:music_generate:test-run";
|
||||
const task = taskExecutorMocks.createRunningTaskRun({
|
||||
runId,
|
||||
runtime: "cli",
|
||||
requesterSessionKey: sessionKey,
|
||||
ownerKey: sessionKey,
|
||||
scopeKind: "session",
|
||||
task: params.prompt,
|
||||
deliveryStatus: "not_applicable",
|
||||
notifyPolicy: "silent",
|
||||
createdAt: Date.now(),
|
||||
});
|
||||
return {
|
||||
taskId: task.taskId,
|
||||
runId,
|
||||
requesterSessionKey: sessionKey,
|
||||
requesterOrigin: params.requesterOrigin,
|
||||
taskLabel: params.prompt,
|
||||
};
|
||||
}),
|
||||
failMusicGenerationTaskRun: vi.fn((params) => {
|
||||
if (!params.handle) {
|
||||
return;
|
||||
}
|
||||
taskExecutorMocks.failTaskRunByRunId({
|
||||
runId: params.handle.runId,
|
||||
runtime: "cli",
|
||||
sessionKey: params.handle.requesterSessionKey,
|
||||
});
|
||||
}),
|
||||
recordMusicGenerationTaskProgress: vi.fn((params) => {
|
||||
if (!params.handle) {
|
||||
return;
|
||||
}
|
||||
taskExecutorMocks.recordTaskRunProgressByRunId({
|
||||
runId: params.handle.runId,
|
||||
runtime: "cli",
|
||||
sessionKey: params.handle.requesterSessionKey,
|
||||
progressSummary: params.progressSummary,
|
||||
eventSummary: params.eventSummary,
|
||||
});
|
||||
}),
|
||||
wakeMusicGenerationTaskCompletion: vi.fn(),
|
||||
}));
|
||||
|
||||
vi.mock("../../config/config.js", () => configMocks);
|
||||
vi.mock("../../media/store.js", () => mediaStoreMocks);
|
||||
vi.mock("../../media/web-media.js", () => ({
|
||||
loadWebMedia: vi.fn(),
|
||||
}));
|
||||
vi.mock("../../music-generation/runtime.js", () => musicGenerationRuntimeMocks);
|
||||
vi.mock("./music-generate-background.js", () => musicGenerateBackgroundMocks);
|
||||
vi.mock("../../tasks/runtime-internal.js", () => taskRuntimeInternalMocks);
|
||||
vi.mock("../../tasks/task-executor.js", () => taskExecutorMocks);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user