import { Output, refkey } from "@alloy-js/core";
import { expect, it } from "vitest";
import * as ts from "../src/index.js";
it("imports external packages", () => {
expect(
,
).toRenderTo({
"consumer/package.json": `
{
"name": "consumer",
"version": "1.0.0",
"type": "module",
"dependencies": {
"greeting-lib": "1.0.0"
},
"devDependencies": {
"typescript": "^5.5.2"
},
"exports": {
".": "./dist/ref.js"
}
}
`,
"consumer/tsconfig.json": expect.anything(),
"greeting-lib/package.json": `
{
"name": "greeting-lib",
"version": "1.0.0",
"type": "module",
"devDependencies": {
"typescript": "^5.5.2"
},
"exports": {
".": "./dist/index.js"
}
}
`,
"greeting-lib/tsconfig.json": expect.anything(),
"greeting-lib/index.ts": expect.anything(),
"greeting-lib/greetings.ts": expect.anything(),
"greeting-lib/logGreetings.ts": expect.anything(),
"consumer/ref.ts": `
import { getGreeting } from "greeting-lib";
getGreeting();
`,
});
});
it("combines explicit dependencies with referenced dependencies", () => {
expect(
,
).toRenderTo({
"consumer/package.json": `
{
"name": "consumer",
"version": "1.0.0",
"type": "module",
"dependencies": {
"foo": "bar",
"greeting-lib": "1.0.0"
},
"devDependencies": {
"typescript": "^5.5.2"
},
"exports": {
".": "./dist/ref.js"
}
}
`,
"consumer/tsconfig.json": expect.anything(),
"greeting-lib/package.json": `
{
"name": "greeting-lib",
"version": "1.0.0",
"type": "module",
"devDependencies": {
"typescript": "^5.5.2"
},
"exports": {
".": "./dist/index.js"
}
}
`,
"greeting-lib/tsconfig.json": expect.anything(),
"greeting-lib/index.ts": expect.anything(),
"greeting-lib/greetings.ts": expect.anything(),
"greeting-lib/logGreetings.ts": expect.anything(),
"consumer/ref.ts": `
import { getGreeting } from "greeting-lib";
getGreeting();
`,
});
});