Files
openclaw/src/plugins/runtime/runtime-task-test-harness.ts
Mariano bd3ad3436e tasks: add detached runtime plugin registration contract (#68915)
* tasks: register detached runtime plugins

* tasks: harden detached runtime ownership

* tasks: extract detached runtime contract types

* changelog: note detached runtime contract

* changelog: attribute detached runtime contract
2026-04-19 13:13:11 +02:00

44 lines
1.4 KiB
TypeScript

import { vi } from "vitest";
import { resetDetachedTaskLifecycleRuntimeForTests } from "../../tasks/detached-task-runtime.js";
import {
resetTaskRegistryControlRuntimeForTests,
resetTaskRegistryDeliveryRuntimeForTests,
resetTaskRegistryForTests,
setTaskRegistryControlRuntimeForTests,
setTaskRegistryDeliveryRuntimeForTests,
} from "../../tasks/runtime-internal.js";
import { resetTaskFlowRegistryForTests } from "../../tasks/task-flow-runtime-internal.js";
const runtimeTaskMocks = vi.hoisted(() => ({
sendMessageMock: vi.fn(),
cancelSessionMock: vi.fn(),
killSubagentRunAdminMock: vi.fn(),
}));
export function getRuntimeTaskMocks() {
return runtimeTaskMocks;
}
export function installRuntimeTaskDeliveryMock(): void {
setTaskRegistryDeliveryRuntimeForTests({
sendMessage: runtimeTaskMocks.sendMessageMock,
});
setTaskRegistryControlRuntimeForTests({
getAcpSessionManager: () => ({
cancelSession: runtimeTaskMocks.cancelSessionMock,
}),
killSubagentRunAdmin: (params: unknown) => runtimeTaskMocks.killSubagentRunAdminMock(params),
});
}
export function resetRuntimeTaskTestState(
taskRegistryOptions?: Parameters<typeof resetTaskRegistryForTests>[0],
): void {
resetDetachedTaskLifecycleRuntimeForTests();
resetTaskRegistryControlRuntimeForTests();
resetTaskRegistryDeliveryRuntimeForTests();
resetTaskRegistryForTests(taskRegistryOptions);
resetTaskFlowRegistryForTests({ persist: false });
vi.clearAllMocks();
}