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( {code` public interface InterfaceOne { } `} {code` public interface InterfaceTwo { } `} , ).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( {code` public interface TypeOne { } `} {code` public interface TypeTwo { } `} , ).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 }, ); });