import { Output, refkey } from "@alloy-js/core"; import { expect, it } from "vitest"; import * as ts from "../src/components/index.js"; import { PackageDirectory } from "../src/components/PackageDirectory.js"; it("exports source files", () => { expect( return "Hello world!"; {refkey("getGreeting")}() ; console.log(greeting); , ).toRenderTo({ "greeting.ts": ` function getGreeting() { return "Hello world!"; } `, "printing.ts": ` import { getGreeting } from "./greeting.js"; const greeting = getGreeting(); export function printGreeting() { console.log(greeting); } `, "index.ts": ` export * from "./greeting.js"; export * from "./printing.js"; `, "package.json": ` { "name": "greeting-js", "version": "1.0.0", "type": "module", "devDependencies": { "typescript": "^5.5.2" }, "exports": { "./printing.js": "./dist/printing.js", ".": "./dist/index.js" } } `, "tsconfig.json": expect.anything(), }); }); it("combines ref'd exports with explicit exports", () => { expect( console.log(greeting); , ).toRenderTo({ "index.ts": ` export function printGreeting() { console.log(greeting); } `, "package.json": ` { "name": "greeting-js", "version": "1.0.0", "type": "module", "devDependencies": { "typescript": "^5.5.2" }, "exports": { "./foo": "./foo/test.js", ".": "./dist/index.js" } } `, "tsconfig.json": expect.anything(), }); });