import { describe, it, expect } from "vitest";
import { generateSnippetHandler } from "./generators.js";
describe("Generator Tools", () => {
describe("generateSnippetHandler", () => {
it("should generate api-endpoint", () => {
const result = generateSnippetHandler({
pattern: "api-endpoint",
name: "User",
});
expect(result.content[0].text).toContain("export async function getUser");
expect(result.content[0].text).toContain("interface UserRequest");
});
it("should generate react-component", () => {
const result = generateSnippetHandler({
pattern: "react-component",
name: "Button",
});
expect(result.content[0].text).toContain("export function Button");
expect(result.content[0].text).toContain("interface ButtonProps");
});
it("should generate react-hook", () => {
const result = generateSnippetHandler({
pattern: "react-hook",
name: "Fetch",
});
expect(result.content[0].text).toContain("export function useFetch");
expect(result.content[0].text).toContain("const [loading, setLoading]");
});
it("should generate zod-schema", () => {
const result = generateSnippetHandler({
pattern: "zod-schema",
name: "Product",
});
expect(result.content[0].text).toContain(
"export const ProductSchema = z.object",
);
expect(result.content[0].text).toContain("export type Product = z.infer");
});
it("should generate error-handler", () => {
const result = generateSnippetHandler({
pattern: "error-handler",
name: "App",
});
expect(result.content[0].text).toContain(
"export class AppError extends Error",
);
expect(result.content[0].text).toContain("statusCode: number");
});
});
});