@@ -7,6 +7,7 @@ import { describe, expect, it, vi } from "vitest";
|
7 | 7 | import { |
8 | 8 | buildPublishedInstallCommandArgs, |
9 | 9 | buildPublishedInstallScenarios, |
| 10 | +collectInstalledBundledExtensionManifestErrors, |
10 | 11 | collectInstalledBundledRuntimeSidecarPaths, |
11 | 12 | collectInstalledContextEngineRuntimeErrors, |
12 | 13 | collectInstalledPluginSdkZodArtifactErrors, |
@@ -408,6 +409,42 @@ describe("collectInstalledPackageErrors", () => {
|
408 | 409 | rmSync(packageRoot, { recursive: true, force: true }); |
409 | 410 | } |
410 | 411 | }); |
| 412 | + |
| 413 | +it("surfaces invalid installed bundled extension manifests", () => { |
| 414 | +const packageRoot = makeInstalledPackageRoot(); |
| 415 | + |
| 416 | +try { |
| 417 | +writeFileSync(join(packageRoot, "package.json"), '{"version":"2026.3.23"}\n', "utf8"); |
| 418 | +mkdirSync(join(packageRoot, "dist", "extensions", "telegram"), { recursive: true }); |
| 419 | +writeFileSync( |
| 420 | +join(packageRoot, "dist", "extensions", "telegram", "package.json"), |
| 421 | +"{not-json\n", |
| 422 | +"utf8", |
| 423 | +); |
| 424 | +writeFileSync( |
| 425 | +join(packageRoot, "dist", "extensions", "telegram", "runtime-api.js"), |
| 426 | +"export {};\n", |
| 427 | +"utf8", |
| 428 | +); |
| 429 | + |
| 430 | +const manifestErrors = collectInstalledBundledExtensionManifestErrors(packageRoot); |
| 431 | +expect(manifestErrors).toHaveLength(1); |
| 432 | +expect(manifestErrors[0]).toContain( |
| 433 | +"installed bundled extension manifest invalid: failed to parse", |
| 434 | +); |
| 435 | +expect(manifestErrors[0]).toContain("dist/extensions/telegram/package.json"); |
| 436 | + |
| 437 | +expect( |
| 438 | +collectInstalledPackageErrors({ |
| 439 | +expectedVersion: "2026.3.23", |
| 440 | +installedVersion: "2026.3.23", |
| 441 | + packageRoot, |
| 442 | +}), |
| 443 | +).toContain(manifestErrors[0]); |
| 444 | +} finally { |
| 445 | +rmSync(packageRoot, { recursive: true, force: true }); |
| 446 | +} |
| 447 | +}); |
411 | 448 | }); |
412 | 449 | |
413 | 450 | describe("collectInstalledContextEngineRuntimeErrors", () => { |
|