refactor: route more test seams through public plugin APIs

This commit is contained in:
Peter Steinberger
2026-03-27 05:00:35 +00:00
parent 4d630b7e92
commit c2b28753e7
17 changed files with 34 additions and 25 deletions

View File

@@ -4,11 +4,14 @@ export * from "./src/actions/handle-action.guild-admin.js";
export * from "./src/actions/handle-action.js";
export * from "./src/components.js";
export * from "./src/directory-config.js";
export * from "./src/exec-approvals.js";
export * from "./src/group-policy.js";
export * from "./src/normalize.js";
export * from "./src/pluralkit.js";
export * from "./src/probe.js";
export * from "./src/session-key-normalization.js";
export * from "./src/status-issues.js";
export * from "./src/targets.js";
export type { DiscordSendComponents, DiscordSendEmbeds } from "./src/send.shared.js";
export type { DiscordSendResult } from "./src/send.types.js";
export type { DiscordTokenResolution } from "./src/token.js";

View File

@@ -1,4 +1,5 @@
export * from "./src/accounts.js";
export * from "./src/group-policy.js";
export * from "./src/probe.js";
export * from "./src/target-parsing-helpers.js";
export * from "./src/targets.js";

View File

@@ -1,4 +1,5 @@
export * from "./src/accounts.js";
export * from "./src/format.js";
export * from "./src/identity.js";
export * from "./src/message-actions.js";
export * from "./src/monitor.js";
@@ -7,3 +8,4 @@ export * from "./src/probe.js";
export * from "./src/reaction-level.js";
export * from "./src/send-reactions.js";
export * from "./src/send.js";
export { normalizeSignalAccountInput } from "./src/setup-surface.js";

View File

@@ -12,6 +12,7 @@ export * from "./src/interactive-replies.js";
export * from "./src/message-actions.js";
export * from "./src/group-policy.js";
export * from "./src/monitor/allow-list.js";
export * from "./src/probe.js";
export * from "./src/sent-thread-cache.js";
export * from "./src/targets.js";
export * from "./src/threading-tool-context.js";

View File

@@ -13,6 +13,7 @@ export * from "./src/model-buttons.js";
export * from "./src/normalize.js";
export * from "./src/outbound-adapter.js";
export * from "./src/outbound-params.js";
export * from "./src/probe.js";
export * from "./src/reaction-level.js";
export * from "./src/sticker-cache.js";
export * from "./src/status-issues.js";
@@ -20,3 +21,4 @@ export * from "./src/targets.js";
export * from "./src/update-offset-store.js";
export type { TelegramButtonStyle, TelegramInlineButtons } from "./src/button-types.js";
export type { StickerMetadata } from "./src/bot/types.js";
export type { TelegramTokenResolution } from "./src/token.js";

View File

@@ -1,5 +1,5 @@
import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
import { parseFeishuConversationId } from "../../extensions/feishu/src/conversation-id.js";
import { parseFeishuConversationId } from "../../extensions/feishu/api.js";
import { resolveAgentWorkspaceDir } from "../agents/agent-scope.js";
import type { ChannelConfiguredBindingProvider, ChannelPlugin } from "../channels/plugins/types.js";
import type { OpenClawConfig } from "../config/config.js";

View File

@@ -1,5 +1,5 @@
import { beforeEach, describe, expect, it } from "vitest";
import { normalizeTelegramMessagingTarget } from "../../extensions/telegram/src/normalize.js";
import { normalizeTelegramMessagingTarget } from "../../extensions/telegram/api.js";
import { setActivePluginRegistry } from "../plugins/runtime.js";
import { createChannelTestPluginBase, createTestRegistry } from "../test-utils/channel-plugins.js";
import { extractMessagingToolSend } from "./pi-embedded-subscribe.tools.js";

View File

@@ -2,8 +2,8 @@ import fs from "node:fs/promises";
import os from "node:os";
import path from "node:path";
import { describe, expect, it, vi } from "vitest";
import { resolveDiscordGroupRequireMention } from "../../extensions/discord/src/group-policy.js";
import { resolveSlackGroupRequireMention } from "../../extensions/slack/src/group-policy.js";
import { resolveDiscordGroupRequireMention } from "../../extensions/discord/api.js";
import { resolveSlackGroupRequireMention } from "../../extensions/slack/api.js";
import type { OpenClawConfig } from "../config/config.js";
import type { GroupKeyResolution } from "../config/sessions.js";
import { resetPluginRuntimeStateForTest } from "../plugins/runtime.js";

View File

@@ -2,7 +2,7 @@ import { beforeEach, describe, expect, it } from "vitest";
import {
__testing as feishuThreadBindingTesting,
createFeishuThreadBindingManager,
} from "../../../../extensions/feishu/src/thread-bindings.js";
} from "../../../../extensions/feishu/api.js";
import type { OpenClawConfig } from "../../../config/config.js";
import {
__testing as sessionBindingTesting,

View File

@@ -1,5 +1,5 @@
import { describe, expect, it, vi } from "vitest";
import { normalizeSignalAccountInput } from "../../../extensions/signal/src/setup-surface.js";
import { normalizeSignalAccountInput } from "../../../extensions/signal/api.js";
import { telegramOutbound, whatsappOutbound } from "../../../test/channel-outbounds.js";
import type { OpenClawConfig } from "../../config/config.js";
import { normalizeIMessageMessagingTarget } from "./normalize/imessage.js";

View File

@@ -5,26 +5,26 @@ import { afterEach, beforeEach, describe, expect, expectTypeOf, it } from "vites
import {
listDiscordDirectoryGroupsFromConfig,
listDiscordDirectoryPeersFromConfig,
} from "../../../extensions/discord/src/directory-config.js";
import type { DiscordProbe } from "../../../extensions/discord/src/probe.js";
import type { DiscordTokenResolution } from "../../../extensions/discord/src/token.js";
import type { IMessageProbe } from "../../../extensions/imessage/src/probe.js";
import type { SignalProbe } from "../../../extensions/signal/src/probe.js";
type DiscordProbe,
type DiscordTokenResolution,
} from "../../../extensions/discord/api.js";
import type { IMessageProbe } from "../../../extensions/imessage/api.js";
import type { SignalProbe } from "../../../extensions/signal/api.js";
import {
listSlackDirectoryGroupsFromConfig,
listSlackDirectoryPeersFromConfig,
} from "../../../extensions/slack/src/directory-config.js";
import type { SlackProbe } from "../../../extensions/slack/src/probe.js";
type SlackProbe,
} from "../../../extensions/slack/api.js";
import {
listTelegramDirectoryGroupsFromConfig,
listTelegramDirectoryPeersFromConfig,
} from "../../../extensions/telegram/src/directory-config.js";
import type { TelegramProbe } from "../../../extensions/telegram/src/probe.js";
import type { TelegramTokenResolution } from "../../../extensions/telegram/src/token.js";
type TelegramProbe,
type TelegramTokenResolution,
} from "../../../extensions/telegram/api.js";
import {
listWhatsAppDirectoryGroupsFromConfig,
listWhatsAppDirectoryPeersFromConfig,
} from "../../../extensions/whatsapp/src/directory-config.js";
} from "../../../extensions/whatsapp/api.js";
import type { OpenClawConfig } from "../../config/config.js";
import type { LineProbeResult } from "../../plugin-sdk/line.js";
import { clearPluginDiscoveryCache } from "../../plugins/discovery.js";

View File

@@ -1,5 +1,5 @@
import { afterAll, beforeEach, describe, expect, it, vi } from "vitest";
import { parseTelegramTarget } from "../../extensions/telegram/src/targets.js";
import { parseTelegramTarget } from "../../extensions/telegram/api.js";
import type { OpenClawConfig } from "../config/config.js";
const mockStore: Record<string, Record<string, unknown>> = {};

View File

@@ -24,7 +24,7 @@ vi.mock("../../pairing/pairing-store.js", () => ({
readChannelAllowFromStoreSync: vi.fn(() => []),
}));
vi.mock("../../../extensions/whatsapp/src/accounts.js", () => ({
vi.mock("../../plugin-sdk/whatsapp.js", () => ({
resolveWhatsAppAccount: vi.fn(() => ({ allowFrom: [] })),
}));
@@ -33,14 +33,14 @@ const mockedModuleIds = [
"../../infra/outbound/channel-selection.js",
"../../infra/outbound/target-resolver.js",
"../../pairing/pairing-store.js",
"../../../extensions/whatsapp/src/accounts.js",
"../../plugin-sdk/whatsapp.js",
];
import { resolveWhatsAppAccount } from "../../../extensions/whatsapp/src/accounts.js";
import { loadSessionStore } from "../../config/sessions.js";
import { resolveMessageChannelSelection } from "../../infra/outbound/channel-selection.js";
import { maybeResolveIdLikeTarget } from "../../infra/outbound/target-resolver.js";
import { readChannelAllowFromStoreSync } from "../../pairing/pairing-store.js";
import { resolveWhatsAppAccount } from "../../plugin-sdk/whatsapp.js";
import { resolveDeliveryTarget } from "./delivery-target.js";
afterAll(() => {

View File

@@ -1,5 +1,5 @@
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
import { isDiscordExecApprovalClientEnabled } from "../../extensions/discord/src/exec-approvals.js";
import { isDiscordExecApprovalClientEnabled } from "../../extensions/discord/api.js";
import type { ChannelPlugin } from "../channels/plugins/types.js";
import type { OpenClawConfig } from "../config/config.js";
import {

View File

@@ -2,7 +2,7 @@ import fs from "node:fs/promises";
import os from "node:os";
import path from "node:path";
import { afterAll, beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
import { parseTelegramTarget } from "../../extensions/telegram/src/targets.js";
import { parseTelegramTarget } from "../../extensions/telegram/api.js";
import { whatsappOutbound } from "../../test/channel-outbounds.js";
import { HEARTBEAT_PROMPT } from "../auto-reply/heartbeat.js";
import * as replyModule from "../auto-reply/reply.js";

View File

@@ -1,6 +1,6 @@
import path from "node:path";
import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
import { markdownToSignalTextChunks } from "../../../extensions/signal/src/format.js";
import { markdownToSignalTextChunks } from "../../../extensions/signal/api.js";
import {
signalOutbound,
telegramOutbound,

View File

@@ -1,5 +1,5 @@
import { beforeEach, describe, expect, it } from "vitest";
import { parseTelegramTarget } from "../../../extensions/telegram/src/targets.js";
import { parseTelegramTarget } from "../../../extensions/telegram/api.js";
import { telegramOutbound, whatsappOutbound } from "../../../test/channel-outbounds.js";
import type { ChannelOutboundAdapter } from "../../channels/plugins/types.js";
import type { OpenClawConfig } from "../../config/config.js";