


















@@ -19,6 +19,16 @@ const originalBundledPluginsDir = process.env.OPENCLAW_BUNDLED_PLUGINS_DIR;
1919const originalDisableBundledPlugins = process.env.OPENCLAW_DISABLE_BUNDLED_PLUGINS;
2020const tempDirs: string[] = [];
212122+function findDiagnostic(
23+diagnostics: readonly { level?: string; pluginId?: string; message?: string }[],
24+pluginId: string,
25+message: string,
26+): { level?: string; pluginId?: string; message?: string } | undefined {
27+return diagnostics.find(
28+(diagnostic) => diagnostic.pluginId === pluginId && diagnostic.message === message,
29+);
30+}
31+2232function createTempDir(): string {
2333return createTempPluginDir(tempDirs, "openclaw-codex-ext-");
2434}
@@ -125,13 +135,12 @@ describe("agent tool result middleware", () => {
125135},
126136});
127137128-expect(registry.diagnostics).toContainEqual(
129-expect.objectContaining({
130-level: "error",
131-pluginId: "tool-result-middleware",
132-message: "plugin must declare contracts.agentToolResultMiddleware for: codex",
133-}),
138+const diagnostic = findDiagnostic(
139+registry.diagnostics,
140+"tool-result-middleware",
141+"plugin must declare contracts.agentToolResultMiddleware for: codex",
134142);
143+expect(diagnostic?.level).toBe("error");
135144expect(listAgentToolResultMiddlewares("codex")).toHaveLength(0);
136145});
137146@@ -163,13 +172,12 @@ describe("agent tool result middleware", () => {
163172},
164173});
165174166-expect(registry.diagnostics).toContainEqual(
167-expect.objectContaining({
168-level: "error",
169-pluginId: "tool-result-middleware",
170-message: "only bundled plugins can register agent tool result middleware",
171-}),
175+const diagnostic = findDiagnostic(
176+registry.diagnostics,
177+"tool-result-middleware",
178+"only bundled plugins can register agent tool result middleware",
172179);
180+expect(diagnostic?.level).toBe("error");
173181expect(listAgentToolResultMiddlewares("codex")).toHaveLength(0);
174182});
175183@@ -345,13 +353,12 @@ describe("Codex app-server extension factories", () => {
345353},
346354});
347355348-expect(registry.diagnostics).toContainEqual(
349-expect.objectContaining({
350-level: "error",
351-pluginId: "codex-ext",
352-message: "only bundled plugins can register Codex app-server extension factories",
353-}),
356+const diagnostic = findDiagnostic(
357+registry.diagnostics,
358+"codex-ext",
359+"only bundled plugins can register Codex app-server extension factories",
354360);
361+expect(diagnostic?.level).toBe("error");
355362expect(listCodexAppServerExtensionFactories()).toHaveLength(0);
356363});
357364@@ -381,14 +388,12 @@ describe("Codex app-server extension factories", () => {
381388},
382389});
383390384-expect(registry.diagnostics).toContainEqual(
385-expect.objectContaining({
386-level: "error",
387-pluginId: "codex-ext",
388-message:
389-'plugin must declare contracts.embeddedExtensionFactories: ["codex-app-server"] to register Codex app-server extension factories',
390-}),
391+const diagnostic = findDiagnostic(
392+registry.diagnostics,
393+"codex-ext",
394+'plugin must declare contracts.embeddedExtensionFactories: ["codex-app-server"] to register Codex app-server extension factories',
391395);
396+expect(diagnostic?.level).toBe("error");
392397expect(listCodexAppServerExtensionFactories()).toHaveLength(0);
393398});
394399@@ -423,13 +428,12 @@ describe("Codex app-server extension factories", () => {
423428},
424429});
425430426-expect(registry.diagnostics).toContainEqual(
427-expect.objectContaining({
428-level: "error",
429-pluginId: "codex-ext",
430-message: "codex app-server extension factory must be a function",
431-}),
431+const diagnostic = findDiagnostic(
432+registry.diagnostics,
433+"codex-ext",
434+"codex app-server extension factory must be a function",
432435);
436+expect(diagnostic?.level).toBe("error");
433437expect(listCodexAppServerExtensionFactories()).toHaveLength(0);
434438});
435439此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。