test: share planner and sandbox test helpers

This commit is contained in:
Peter Steinberger
2026-03-26 21:58:32 +00:00
parent 672a24cbde
commit 9dea807b28
9 changed files with 165 additions and 162 deletions

View File

@@ -30,23 +30,31 @@ async function createConversationRuntimeMock(
};
}
vi.mock("openclaw/plugin-sdk/security-runtime", async (importOriginal) => {
const actual = await importOriginal<typeof import("openclaw/plugin-sdk/security-runtime")>();
async function createAllowFromRuntimeMock<TModule>(
importOriginal: () => Promise<TModule>,
): Promise<TModule & { readStoreAllowFromForDmPolicy: typeof readStoreAllowFromForDmPolicy }> {
const actual = await importOriginal();
return {
...actual,
readStoreAllowFromForDmPolicy: async (params: {
provider: string;
accountId: string;
dmPolicy?: string | null;
shouldRead?: boolean | null;
}) => {
if (params.shouldRead === false || params.dmPolicy === "allowlist") {
return [];
}
return await readAllowFromStoreMock(params.provider, params.accountId);
},
readStoreAllowFromForDmPolicy,
};
});
}
async function readStoreAllowFromForDmPolicy(params: {
provider: string;
accountId: string;
dmPolicy?: string | null;
shouldRead?: boolean | null;
}) {
if (params.shouldRead === false || params.dmPolicy === "allowlist") {
return [];
}
return await readAllowFromStoreMock(params.provider, params.accountId);
}
vi.mock("openclaw/plugin-sdk/security-runtime", (importOriginal) =>
createAllowFromRuntimeMock(importOriginal),
);
vi.mock("openclaw/plugin-sdk/conversation-runtime", createConversationRuntimeMock);
vi.mock("openclaw/plugin-sdk/conversation-runtime.js", createConversationRuntimeMock);
@@ -57,23 +65,9 @@ vi.mock("../../../src/pairing/pairing-store.js", async (importOriginal) => {
upsertChannelPairingRequest: (...args: unknown[]) => upsertPairingRequestMock(...args),
};
});
vi.mock("../../../src/security/dm-policy-shared.js", async (importOriginal) => {
const actual = await importOriginal<typeof import("../../../src/security/dm-policy-shared.js")>();
return {
...actual,
readStoreAllowFromForDmPolicy: async (params: {
provider: string;
accountId: string;
dmPolicy?: string | null;
shouldRead?: boolean | null;
}) => {
if (params.shouldRead === false || params.dmPolicy === "allowlist") {
return [];
}
return await readAllowFromStoreMock(params.provider, params.accountId);
},
};
});
vi.mock("../../../src/security/dm-policy-shared.js", (importOriginal) =>
createAllowFromRuntimeMock(importOriginal),
);
export function resetDiscordComponentRuntimeMocks() {
readAllowFromStoreMock.mockClear().mockResolvedValue([]);