26 lines
1.0 KiB
TypeScript
26 lines
1.0 KiB
TypeScript
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<string, unknown> };
|
|
// 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
|
|
);
|
|
});
|
|
});
|