import { readFileSync } from "node:fs"; import { join } from "node:path"; import { describe, expect, it } from "@suaveplan/testing/runner"; describe("tree-shake", () => { it("sideEffects is false", { timeout: 5000 }, () => { const pkg = JSON.parse( readFileSync(join(__dirname, "..", "package.json"), "utf8") ) as { sideEffects?: boolean }; expect(pkg.sideEffects).toBe(false); }); it("exposes per-primitive subpath exports", { timeout: 5000 }, () => { const pkg = JSON.parse( readFileSync(join(__dirname, "..", "package.json"), "utf8") ) as { exports?: Record }; // We have: ., ./init, ./engines, ./engines/aead, ./engines/sign, // ./engines/agree, ./engines/sealed-box, ./engines/auth-box, // ./primitives/kdf, ./primitives/auth, ./primitives/pwhash, // ./primitives/ristretto255, ./errors + ./package.json = 14 expect(Object.keys(pkg.exports ?? {}).length).toBeGreaterThanOrEqual( 12 ); }); });