Files
dev/packages/coding-agent/test/package-distribution.test.ts
alexion 67b361f0e9 Squashed 'third_party/pi/' content from commit d981de122
git-subtree-dir: third_party/pi
git-subtree-split: d981de1229ef899957bbe968bc8dcda02a21f477
2026-09-14 10:40:08 -04:00

33 lines
1.2 KiB
TypeScript

import { readFileSync } from "node:fs";
import { describe, expect, test } from "vitest";
interface CodingAgentPackageJson {
bin: { pi: string };
main: string;
exports: {
".": { import: string; types: string };
"./client": { source: string };
"./experimental/plugin": { source: string };
"./rpc-entry": { import: string };
};
}
const packageJson = JSON.parse(
readFileSync(new URL("../package.json", import.meta.url), "utf8"),
) as CodingAgentPackageJson;
describe("package distribution entrypoints", () => {
test("uses the bundle for executables and modular output for libraries", () => {
expect(packageJson.bin.pi).toBe("dist/bundle/cli.js");
expect(packageJson.main).toBe("./dist/index.js");
expect(packageJson.exports["."].import).toBe("./dist/index.js");
expect(packageJson.exports["./rpc-entry"].import).toBe("./dist/bundle/rpc-entry.js");
});
// Regression for #9132: internal experimental entrypoints must not be published runtime exports.
test("keeps experimental exports source-only", () => {
expect(packageJson.exports["./client"]).toEqual({ source: "./src/client/index.ts" });
expect(packageJson.exports["./experimental/plugin"]).toEqual({ source: "./src/experimental/plugin.ts" });
});
});