Squashed 'third_party/pi/' content from commit d981de122
git-subtree-dir: third_party/pi git-subtree-split: d981de1229ef899957bbe968bc8dcda02a21f477
This commit is contained in:
32
packages/coding-agent/test/package-distribution.test.ts
Normal file
32
packages/coding-agent/test/package-distribution.test.ts
Normal file
@@ -0,0 +1,32 @@
|
||||
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" });
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user