mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-03 03:03:24 -04:00
test: remove duplicated scenario scaffolding across runtime tests
This commit is contained in:
@@ -34,6 +34,13 @@ type Registered = {
|
||||
methods: Map<string, unknown>;
|
||||
tools: unknown[];
|
||||
};
|
||||
type RegisterVoiceCall = (api: Record<string, unknown>) => void | Promise<void>;
|
||||
type RegisterCliContext = {
|
||||
program: Command;
|
||||
config: Record<string, unknown>;
|
||||
workspaceDir?: string;
|
||||
logger: typeof noopLogger;
|
||||
};
|
||||
|
||||
function setup(config: Record<string, unknown>): Registered {
|
||||
const methods = new Map<string, unknown>();
|
||||
@@ -59,6 +66,34 @@ function setup(config: Record<string, unknown>): Registered {
|
||||
return { methods, tools };
|
||||
}
|
||||
|
||||
async function registerVoiceCallCli(program: Command) {
|
||||
const { register } = plugin as unknown as {
|
||||
register: RegisterVoiceCall;
|
||||
};
|
||||
await register({
|
||||
id: "voice-call",
|
||||
name: "Voice Call",
|
||||
description: "test",
|
||||
version: "0",
|
||||
source: "test",
|
||||
config: {},
|
||||
pluginConfig: { provider: "mock" },
|
||||
runtime: { tts: { textToSpeechTelephony: vi.fn() } },
|
||||
logger: noopLogger,
|
||||
registerGatewayMethod: () => {},
|
||||
registerTool: () => {},
|
||||
registerCli: (fn: (ctx: RegisterCliContext) => void) =>
|
||||
fn({
|
||||
program,
|
||||
config: {},
|
||||
workspaceDir: undefined,
|
||||
logger: noopLogger,
|
||||
}),
|
||||
registerService: () => {},
|
||||
resolvePath: (p: string) => p,
|
||||
});
|
||||
}
|
||||
|
||||
describe("voice-call plugin", () => {
|
||||
beforeEach(() => {
|
||||
runtimeStub = {
|
||||
@@ -145,9 +180,6 @@ describe("voice-call plugin", () => {
|
||||
});
|
||||
|
||||
it("CLI latency summarizes turn metrics from JSONL", async () => {
|
||||
const { register } = plugin as unknown as {
|
||||
register: (api: Record<string, unknown>) => void | Promise<void>;
|
||||
};
|
||||
const program = new Command();
|
||||
const tmpFile = path.join(os.tmpdir(), `voicecall-latency-${Date.now()}.jsonl`);
|
||||
fs.writeFileSync(
|
||||
@@ -162,35 +194,7 @@ describe("voice-call plugin", () => {
|
||||
const logSpy = vi.spyOn(console, "log").mockImplementation(() => {});
|
||||
|
||||
try {
|
||||
await register({
|
||||
id: "voice-call",
|
||||
name: "Voice Call",
|
||||
description: "test",
|
||||
version: "0",
|
||||
source: "test",
|
||||
config: {},
|
||||
pluginConfig: { provider: "mock" },
|
||||
runtime: { tts: { textToSpeechTelephony: vi.fn() } },
|
||||
logger: noopLogger,
|
||||
registerGatewayMethod: () => {},
|
||||
registerTool: () => {},
|
||||
registerCli: (
|
||||
fn: (ctx: {
|
||||
program: Command;
|
||||
config: Record<string, unknown>;
|
||||
workspaceDir?: string;
|
||||
logger: typeof noopLogger;
|
||||
}) => void,
|
||||
) =>
|
||||
fn({
|
||||
program,
|
||||
config: {},
|
||||
workspaceDir: undefined,
|
||||
logger: noopLogger,
|
||||
}),
|
||||
registerService: () => {},
|
||||
resolvePath: (p: string) => p,
|
||||
});
|
||||
await registerVoiceCallCli(program);
|
||||
|
||||
await program.parseAsync(["voicecall", "latency", "--file", tmpFile, "--last", "10"], {
|
||||
from: "user",
|
||||
@@ -208,40 +212,9 @@ describe("voice-call plugin", () => {
|
||||
});
|
||||
|
||||
it("CLI start prints JSON", async () => {
|
||||
const { register } = plugin as unknown as {
|
||||
register: (api: Record<string, unknown>) => void | Promise<void>;
|
||||
};
|
||||
const program = new Command();
|
||||
const logSpy = vi.spyOn(console, "log").mockImplementation(() => {});
|
||||
await register({
|
||||
id: "voice-call",
|
||||
name: "Voice Call",
|
||||
description: "test",
|
||||
version: "0",
|
||||
source: "test",
|
||||
config: {},
|
||||
pluginConfig: { provider: "mock" },
|
||||
runtime: { tts: { textToSpeechTelephony: vi.fn() } },
|
||||
logger: noopLogger,
|
||||
registerGatewayMethod: () => {},
|
||||
registerTool: () => {},
|
||||
registerCli: (
|
||||
fn: (ctx: {
|
||||
program: Command;
|
||||
config: Record<string, unknown>;
|
||||
workspaceDir?: string;
|
||||
logger: typeof noopLogger;
|
||||
}) => void,
|
||||
) =>
|
||||
fn({
|
||||
program,
|
||||
config: {},
|
||||
workspaceDir: undefined,
|
||||
logger: noopLogger,
|
||||
}),
|
||||
registerService: () => {},
|
||||
resolvePath: (p: string) => p,
|
||||
});
|
||||
await registerVoiceCallCli(program);
|
||||
|
||||
await program.parseAsync(["voicecall", "start", "--to", "+1", "--message", "Hello"], {
|
||||
from: "user",
|
||||
|
||||
Reference in New Issue
Block a user