Files
suaveplan/packages/devtools/tooling/test-vite/tests/exports.test.ts
2026-05-27 23:47:53 +01:00

45 lines
1.2 KiB
TypeScript

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();
}
});
});