























@@ -455,21 +455,17 @@ describe("loadPluginManifestRegistry", () => {
455455config: { plugins: { entries: { "external-chat": { enabled: false } } } },
456456candidates: [candidate],
457457});
458-expect(
459-disabledRegistry.diagnostics.some((diagnostic) =>
460-diagnostic.message.includes("without channelConfigs metadata"),
461-),
462-).toBe(false);
458+expect(disabledRegistry.diagnostics.map((diagnostic) => diagnostic.message)).not.toEqual(
459+expect.arrayContaining([expect.stringContaining("without channelConfigs metadata")]),
460+);
463461464462const allowlistRegistry = loadPluginManifestRegistry({
465463config: { plugins: { allow: ["other-plugin"] } },
466464candidates: [candidate],
467465});
468-expect(
469-allowlistRegistry.diagnostics.some((diagnostic) =>
470-diagnostic.message.includes("without channelConfigs metadata"),
471-),
472-).toBe(false);
466+expect(allowlistRegistry.diagnostics.map((diagnostic) => diagnostic.message)).not.toEqual(
467+expect.arrayContaining([expect.stringContaining("without channelConfigs metadata")]),
468+);
473469});
474470475471it("suppresses duplicate warnings for explicit installed globals overriding bundled plugins", () => {
@@ -1216,11 +1212,9 @@ describe("loadPluginManifestRegistry", () => {
12161212type: "object",
12171213additionalProperties: false,
12181214});
1219-expect(
1220-registry.diagnostics.some((diagnostic) =>
1221-diagnostic.message.includes("without channelConfigs metadata"),
1222-),
1223-).toBe(false);
1215+expect(registry.diagnostics.map((diagnostic) => diagnostic.message)).not.toEqual(
1216+expect.arrayContaining([expect.stringContaining("without channelConfigs metadata")]),
1217+);
12241218});
1225121912261220it("hydrates supplemental official external catalog contracts for lagging npm manifests", () => {
@@ -1249,11 +1243,9 @@ describe("loadPluginManifestRegistry", () => {
12491243}),
12501244}),
12511245);
1252-expect(
1253-registry.diagnostics.some((diagnostic) =>
1254-diagnostic.message.includes("without channelConfigs metadata"),
1255-),
1256-).toBe(false);
1246+expect(registry.diagnostics.map((diagnostic) => diagnostic.message)).not.toEqual(
1247+expect.arrayContaining([expect.stringContaining("without channelConfigs metadata")]),
1248+);
12571249});
1258125012591251it("fills missing official external catalog descriptors for partial npm channel configs", () => {
@@ -1888,7 +1880,7 @@ describe("loadPluginManifestRegistry", () => {
18881880expect(registry.plugins).toEqual([]);
18891881expectRegistryDiagnosticContains(registry, expectedMessage);
18901882if (expectWarn) {
1891-expect(registry.diagnostics.some((diag) => diag.level === "warn")).toBe(true);
1883+expect(registry.diagnostics.map((diag) => diag.level)).toContain("warn");
18921884}
18931885});
18941886@@ -1920,11 +1912,9 @@ describe("loadPluginManifestRegistry", () => {
19201912});
1921191319221914expect(registry.plugins.map((plugin) => plugin.id)).toEqual(["codex"]);
1923-expect(
1924-registry.diagnostics.some((diag) =>
1925-diag.message.includes("openclaw.install.minHostVersion must use"),
1926-),
1927-).toBe(false);
1915+expect(registry.diagnostics.map((diag) => diag.message)).not.toEqual(
1916+expect.arrayContaining([expect.stringContaining("openclaw.install.minHostVersion must use")]),
1917+);
19281918});
1929191919301920it("does not runtime-gate bundled source plugins by install minHostVersion", () => {
@@ -1949,7 +1939,7 @@ describe("loadPluginManifestRegistry", () => {
19491939env: { OPENCLAW_VERSION: "2026.4.30" } as NodeJS.ProcessEnv,
19501940});
195119411952-expect(registry.plugins.some((plugin) => plugin.id === "codex")).toBe(true);
1942+expect(registry.plugins.map((plugin) => plugin.id)).toContain("codex");
19531943expect(registry.diagnostics.map((diag) => diag.message)).not.toEqual(
19541944expect.arrayContaining([expect.stringContaining("requires OpenClaw")]),
19551945);
@@ -2251,7 +2241,7 @@ describe("loadPluginManifestRegistry", () => {
22512241rootDir: fixture.rootDir,
22522242origin: "bundled",
22532243});
2254-expect(registry.plugins.some((entry) => entry.id === "bundled-hardlink")).toBe(true);
2244+expect(registry.plugins.map((entry) => entry.id)).toContain("bundled-hardlink");
22552245expect(hasUnsafeManifestDiagnostic(registry)).toBe(false);
22562246});
22572247@@ -2338,12 +2328,12 @@ describe("loadPluginManifestRegistry", () => {
23382328});
2339232923402330expect(olderHost.plugins).toEqual([]);
2341-expect(
2342-olderHost.diagnostics.some((diag) => diag.message.includes("this host is 2026.3.21")),
2343-).toBe(true);
2344-expect(newerHost.plugins.some((plugin) => plugin.id === "synology-chat")).toBe(true);
2345-expect(
2346-newerHost.diagnostics.some((diag) => diag.message.includes("this host is 2026.3.21")),
2347-).toBe(false);
2331+expect(olderHost.diagnostics.map((diag) => diag.message)).toEqual(
2332+expect.arrayContaining([expect.stringContaining("this host is 2026.3.21")]),
2333+);
2334+expect(newerHost.plugins.map((plugin) => plugin.id)).toContain("synology-chat");
2335+expect(newerHost.diagnostics.map((diag) => diag.message)).not.toEqual(
2336+expect.arrayContaining([expect.stringContaining("this host is 2026.3.21")]),
2337+);
23482338});
23492339});
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。