49 lines · 1.3 KB · TypeScript
RawDownload
import { describe, expect, it } from "vitest"; import {  projectAddInputSchema,  projectAddResultSchema,  projectListResultSchema,  projectRemoveInputSchema,} from "./project"; describe("project contracts", () => {  it("parses project list result", () => {    const result = projectListResultSchema.parse([      {        id: "project-1",        cwd: "/tmp/project",        name: "project",        createdAt: "2026-02-10T00:00:00.000Z",        updatedAt: "2026-02-10T00:00:00.000Z",      },    ]);     expect(result).toHaveLength(1);    expect(result[0]?.id).toBe("project-1");  });   it("trims add input cwd", () => {    const parsed = projectAddInputSchema.parse({ cwd: "  /tmp/project  " });    expect(parsed.cwd).toBe("/tmp/project");  });   it("requires add result created flag", () => {    const parsed = projectAddResultSchema.parse({      project: {        id: "project-1",        cwd: "/tmp/project",        name: "project",        createdAt: "2026-02-10T00:00:00.000Z",        updatedAt: "2026-02-10T00:00:00.000Z",      },      created: true,    });    expect(parsed.created).toBe(true);  });   it("parses remove input", () => {    const parsed = projectRemoveInputSchema.parse({ id: "project-1" });    expect(parsed.id).toBe("project-1");  });});