/** * Verify tree-shaking readiness: * - sideEffects: false is set in package.json * - At least 5 named subpath exports are declared */ import { readFileSync } from "node:fs"; import { join } from "node:path"; import { describe, expect, it } from "@suaveplan/testing/runner"; const PKG_ROOT = join(import.meta.dirname, ".."); const pkg = JSON.parse( readFileSync(join(PKG_ROOT, "package.json"), "utf-8") ) as { sideEffects: boolean | string[]; exports: Record; }; describe("tree-shake", () => { it("sideEffects is false", { timeout: 5000 }, () => { expect(pkg.sideEffects).toBe(false); }); it("has at least 5 subpath exports (excluding package.json)", { timeout: 5000, }, () => { const subpaths = Object.keys(pkg.exports).filter( (k) => k !== "./package.json" ); expect(subpaths.length).toBeGreaterThanOrEqual(5); }); it("root export '.' is declared", { timeout: 5000 }, () => { expect(pkg.exports["."]).toBeDefined(); }); it("cursor subpath export is declared", { timeout: 5000 }, () => { expect(pkg.exports["./cursor"]).toBeDefined(); }); it("offset subpath export is declared", { timeout: 5000 }, () => { expect(pkg.exports["./offset"]).toBeDefined(); }); it("keyset subpath export is declared", { timeout: 5000 }, () => { expect(pkg.exports["./keyset"]).toBeDefined(); }); it("adapters subpath export is declared", { timeout: 5000 }, () => { expect(pkg.exports["./adapters"]).toBeDefined(); }); it("helpers subpath export is declared", { timeout: 5000 }, () => { expect(pkg.exports["./helpers"]).toBeDefined(); }); it("errors subpath export is declared", { timeout: 5000 }, () => { expect(pkg.exports["./errors"]).toBeDefined(); }); it("schemas subpath export is declared", { timeout: 5000 }, () => { expect(pkg.exports["./schemas"]).toBeDefined(); }); });