import { code, namekey, Output, refkey } from "@alloy-js/core";
import { expect, it } from "vitest";
import * as jv from "../src/components/index.js";
import { TestPackage } from "./utils.js";
it("works", () => {
expect(
,
).toRenderTo(`
package me.test.code;
public abstract final class TestClass {}
`);
});
it("takes a namekey", () => {
expect(
,
).toRenderTo(`
package me.test.code;
public abstract final class TestClass {}
`);
});
it("extends class", () => {
expect(
,
).toRenderTo({
"me/test/code/TestSuperclass.java": expect.any(String),
"me/test/code/import/TestSubclass.java": `
package me.test.code.import;
import me.test.code.TestSuperclass;
public class TestSubclass extends TestSuperclass {}
`,
});
});
it("implements interfaces", () => {
expect(
,
).toRenderTo({
"me/test/code/InterfaceOne.java": expect.any(String),
"me/test/code/InterfaceTwo.java": expect.any(String),
"me/test/code/import/TestSubclass.java": `
package me.test.code.import;
import me.test.code.InterfaceOne;
import me.test.code.InterfaceTwo;
public class TestSubclass implements InterfaceOne, InterfaceTwo {}
`,
});
});
it("defines generics", () => {
expect(
,
).toRenderTo(
{
"me/test/code/TypeOne.java": expect.any(String),
"me/test/code/TypeTwo.java": expect.any(String),
"me/test/code/import/TestGenerics.java": `
package me.test.code.import;
import me.test.code.TypeOne;
import me.test.code.TypeTwo;
public class TestGenerics {}
`,
},
{ printWidth: 100 },
);
});