import { describe, it, expect, vi } from "vitest";
import { validateCodeHandler } from "./validator.js";
import fs from "fs/promises";
import { exec } from "child_process";
vi.mock("fs/promises");
vi.mock("child_process");
vi.mock("util", () => ({
promisify: (fn: any) => async (cmd: string) => {
if (cmd.includes("prettier")) return { stdout: "", stderr: "" }; // Success
if (cmd.includes("python")) return { stdout: "", stderr: "" };
throw new Error("Command failed");
},
}));
describe("Validator Tools", () => {
describe("validateCodeHandler", () => {
it("should validate js code", async () => {
(fs.writeFile as any).mockResolvedValue(undefined);
(fs.unlink as any).mockResolvedValue(undefined);
const result = await validateCodeHandler({
code: "const x=1;",
language: "javascript",
});
expect(result.content[0].text).toContain("Code is valid");
});
});
});