mirror of
https://fastgit.cc/github.com/openclaw/openclaw
synced 2026-04-22 05:42:22 +08:00
test: fix ACP and TTS local failures
This commit is contained in:
@@ -199,6 +199,24 @@ function resolveFirstConversationTargetForTest(params: {
|
||||
return null;
|
||||
}
|
||||
|
||||
function parsePrefixedConversationIdForTest(
|
||||
raw: string | undefined | null,
|
||||
channel: "bluebubbles" | "imessage",
|
||||
): string | undefined {
|
||||
const trimmed = raw
|
||||
?.trim()
|
||||
.replace(new RegExp(`^${channel}:`, "i"), "")
|
||||
.replace(/^chat_guid:/i, "");
|
||||
return trimmed || undefined;
|
||||
}
|
||||
|
||||
function resolvePrefixedConversationIdForTest(
|
||||
targets: Array<string | undefined | null>,
|
||||
channel: "bluebubbles" | "imessage",
|
||||
): string | undefined {
|
||||
return targets.map((target) => parsePrefixedConversationIdForTest(target, channel)).find(Boolean);
|
||||
}
|
||||
|
||||
function setMinimalAcpCommandRegistryForTests(): void {
|
||||
setActivePluginRegistry(
|
||||
createTestRegistry([
|
||||
@@ -300,6 +318,54 @@ function setMinimalAcpCommandRegistryForTests(): void {
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
pluginId: "bluebubbles",
|
||||
source: "test",
|
||||
plugin: {
|
||||
...createChannelTestPluginBase({ id: "bluebubbles", label: "BlueBubbles" }),
|
||||
bindings: {
|
||||
resolveCommandConversation: ({
|
||||
originatingTo,
|
||||
commandTo,
|
||||
fallbackTo,
|
||||
}: {
|
||||
originatingTo?: string;
|
||||
commandTo?: string;
|
||||
fallbackTo?: string;
|
||||
}) => {
|
||||
const conversationId = resolvePrefixedConversationIdForTest(
|
||||
[originatingTo, commandTo, fallbackTo],
|
||||
"bluebubbles",
|
||||
);
|
||||
return conversationId ? { conversationId } : null;
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
pluginId: "imessage",
|
||||
source: "test",
|
||||
plugin: {
|
||||
...createChannelTestPluginBase({ id: "imessage", label: "iMessage" }),
|
||||
bindings: {
|
||||
resolveCommandConversation: ({
|
||||
originatingTo,
|
||||
commandTo,
|
||||
fallbackTo,
|
||||
}: {
|
||||
originatingTo?: string;
|
||||
commandTo?: string;
|
||||
fallbackTo?: string;
|
||||
}) => {
|
||||
const conversationId = resolvePrefixedConversationIdForTest(
|
||||
[originatingTo, commandTo, fallbackTo],
|
||||
"imessage",
|
||||
);
|
||||
return conversationId ? { conversationId } : null;
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
pluginId: "slack",
|
||||
source: "test",
|
||||
|
||||
@@ -2,6 +2,19 @@ import { beforeEach, describe, expect, it, vi } from "vitest";
|
||||
|
||||
const loadBundledPluginPublicSurfaceModuleSync = vi.hoisted(() => vi.fn());
|
||||
const loadActivatedBundledPluginPublicSurfaceModuleSync = vi.hoisted(() => vi.fn());
|
||||
const createLazyFacadeValue = vi.hoisted(() => {
|
||||
return <TFacade extends object, K extends keyof TFacade>(
|
||||
load: () => TFacade,
|
||||
key: K,
|
||||
): TFacade[K] =>
|
||||
((...args: unknown[]) => {
|
||||
const value = load()[key];
|
||||
if (typeof value !== "function") {
|
||||
return value;
|
||||
}
|
||||
return (value as (...runtimeArgs: unknown[]) => unknown)(...args);
|
||||
}) as TFacade[K];
|
||||
});
|
||||
const createLazyFacadeObjectValue = vi.hoisted(() => {
|
||||
return <T extends object>(load: () => T): T =>
|
||||
new Proxy(
|
||||
@@ -25,6 +38,7 @@ const createLazyFacadeValue = vi.hoisted(() => {
|
||||
});
|
||||
|
||||
vi.mock("../plugin-sdk/facade-runtime.js", () => ({
|
||||
createLazyFacadeValue,
|
||||
createLazyFacadeObjectValue,
|
||||
createLazyFacadeValue,
|
||||
loadActivatedBundledPluginPublicSurfaceModuleSync,
|
||||
|
||||
Reference in New Issue
Block a user