import { readFileSync } from "node:fs"; import { resolve } from "node:path"; import { describe, expect, it } from "@suaveplan/testing/runner"; const pkg = JSON.parse( readFileSync(resolve(__dirname, "..", "package.json"), "utf8") ) as { exports: Record< string, { import?: { types?: string; default?: string } } | string >; }; const FEATURE_SUBPATHS = [ "./vite-library-config", "./vite-app-config", "./vitest-config", "./vitest-browser-config", "./browser-environment", "./tree-shake-validator", "./bundle-size-snapshot", "./port-allocator", "./hmr-tester", "./matchers", "./error-codes", "./telemetry", ]; describe("package.json publishes every feature subpath", () => { it("package.json publishes every feature subpath", { timeout: 5000, }, () => { for (const key of FEATURE_SUBPATHS) { const entry = pkg.exports[key]; expect(entry).toBeDefined(); expect(typeof entry).toBe("object"); const obj = entry as { import?: { types?: string; default?: string }; }; expect(obj.import?.types).toBeDefined(); expect(obj.import?.default).toBeDefined(); } }); });