


























@@ -6,7 +6,13 @@ import type { PluginDiagnostic } from "../plugins/types.js";
66import type { GatewayRequestContext, GatewayRequestOptions } from "./server-methods/types.js";
7788const loadOpenClawPlugins = vi.hoisted(() => vi.fn());
9-const resolveGatewayStartupPluginIds = vi.hoisted(() => vi.fn(() => ["discord", "telegram"]));
9+const loadPluginLookUpTable = vi.hoisted(() =>
10+vi.fn(() => ({
11+startup: {
12+pluginIds: ["discord", "telegram"],
13+},
14+})),
15+);
1016const applyPluginAutoEnable = vi.hoisted(() =>
1117vi.fn(({ config }) => ({ config, changes: [], autoEnabledReasons: {} })),
1218);
@@ -34,8 +40,8 @@ vi.mock("../plugins/runtime/load-context.js", () => ({
3440createPluginRuntimeLoaderLogger: () => pluginRuntimeLoaderLogger,
3541}));
364237-vi.mock("../plugins/channel-plugin-ids.js", () => ({
38-resolveGatewayStartupPluginIds,
43+vi.mock("../plugins/plugin-lookup-table.js", () => ({
44+loadPluginLookUpTable,
3945}));
40464147vi.mock("../config/plugin-auto-enable.js", () => ({
@@ -243,7 +249,11 @@ beforeAll(async () => {
243249244250beforeEach(() => {
245251loadOpenClawPlugins.mockReset();
246-resolveGatewayStartupPluginIds.mockReset().mockReturnValue(["discord", "telegram"]);
252+loadPluginLookUpTable.mockReset().mockReturnValue({
253+startup: {
254+pluginIds: ["discord", "telegram"],
255+},
256+});
247257applyPluginAutoEnable
248258.mockReset()
249259.mockImplementation(({ config }) => ({ config, changes: [], autoEnabledReasons: {} }));
@@ -306,7 +316,7 @@ describe("loadGatewayPlugins", () => {
306316config: {},
307317env: process.env,
308318});
309-expect(resolveGatewayStartupPluginIds).toHaveBeenCalledWith({
319+expect(loadPluginLookUpTable).toHaveBeenCalledWith({
310320config: {},
311321activationSourceConfig: undefined,
312322workspaceDir: "/tmp",
@@ -354,7 +364,7 @@ describe("loadGatewayPlugins", () => {
354364pluginIds: ["browser"],
355365});
356366357-expect(resolveGatewayStartupPluginIds).not.toHaveBeenCalled();
367+expect(loadPluginLookUpTable).not.toHaveBeenCalled();
358368expect(loadOpenClawPlugins).toHaveBeenCalledWith(
359369expect.objectContaining({
360370onlyPluginIds: ["browser"],
@@ -397,7 +407,7 @@ describe("loadGatewayPlugins", () => {
397407pluginIds: ["slack"],
398408});
399409400-expect(resolveGatewayStartupPluginIds).not.toHaveBeenCalled();
410+expect(loadPluginLookUpTable).not.toHaveBeenCalled();
401411expect(applyPluginAutoEnable).toHaveBeenCalledWith({
402412config: rawConfig,
403413env: process.env,
@@ -415,7 +425,11 @@ describe("loadGatewayPlugins", () => {
415425});
416426417427test("treats an empty startup scope as no plugin load instead of an unscoped load", async () => {
418-resolveGatewayStartupPluginIds.mockReturnValue([]);
428+loadPluginLookUpTable.mockReturnValue({
429+startup: {
430+pluginIds: [],
431+},
432+});
419433420434const result = serverPluginsModule.loadGatewayPlugins({
421435cfg: {},
@@ -431,7 +445,11 @@ describe("loadGatewayPlugins", () => {
431445});
432446433447test("stores workspaceDir on the active registry when startup scope is empty", () => {
434-resolveGatewayStartupPluginIds.mockReturnValue([]);
448+loadPluginLookUpTable.mockReturnValue({
449+startup: {
450+pluginIds: [],
451+},
452+});
435453436454serverPluginsModule.loadGatewayPlugins({
437455cfg: {},
@@ -457,7 +475,7 @@ describe("loadGatewayPlugins", () => {
457475458476loadGatewayPluginsForTest();
459477460-expect(resolveGatewayStartupPluginIds).toHaveBeenCalledWith({
478+expect(loadPluginLookUpTable).toHaveBeenCalledWith({
461479config: autoEnabledConfig,
462480activationSourceConfig: undefined,
463481workspaceDir: "/tmp",
@@ -495,7 +513,7 @@ describe("loadGatewayPlugins", () => {
495513config: rawConfig,
496514env: process.env,
497515});
498-expect(resolveGatewayStartupPluginIds).toHaveBeenCalledWith({
516+expect(loadPluginLookUpTable).toHaveBeenCalledWith({
499517config: resolvedConfig,
500518activationSourceConfig: rawConfig,
501519workspaceDir: "/tmp",
@@ -979,7 +997,7 @@ describe("loadGatewayPlugins", () => {
979997logDiagnostics: false,
980998});
981999982-expect(resolveGatewayStartupPluginIds).not.toHaveBeenCalled();
1000+expect(loadPluginLookUpTable).not.toHaveBeenCalled();
9831001expect(loadOpenClawPlugins).toHaveBeenCalledWith(
9841002expect.objectContaining({
9851003onlyPluginIds: ["discord"],
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。