Skip to main content
Glama
alexander-zuev

Kollektiv | Your private LLM knowledgebase

form.test.ts1.55 kB
import { FormValidationError, parseFormData } from "@/web/utils/form"; // form.test.ts import { describe, expect, it, vi } from "vitest"; import { z } from "zod"; describe("parseFormData", () => { it("should parse and validate form data successfully", async () => { const mockContext = { req: { parseBody: vi.fn().mockResolvedValue({ name: "John", age: 30 }), }, } as any; const schema = z.object({ name: z.string(), age: z.number(), }); const result = await parseFormData(mockContext, schema); expect(result).toEqual({ name: "John", age: 30 }); expect(mockContext.req.parseBody).toHaveBeenCalledOnce(); }); it("should throw FormValidationError for invalid data", async () => { const mockContext = { req: { parseBody: vi.fn().mockResolvedValue({ name: "John", age: "not-a-number" }), }, } as any; const schema = z.object({ name: z.string(), age: z.number(), }); await expect(parseFormData(mockContext, schema)).rejects.toThrowError(FormValidationError); expect(mockContext.req.parseBody).toHaveBeenCalledOnce(); }); it("should throw an error if parsing the body fails", async () => { const mockContext = { req: { parseBody: vi.fn().mockRejectedValue(new Error("Parsing failed")), }, } as any; const schema = z.object({ name: z.string(), age: z.number(), }); await expect(parseFormData(mockContext, schema)).rejects.toThrowError( "Failed to parse or validate form data.", ); expect(mockContext.req.parseBody).toHaveBeenCalledOnce(); }); });

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/alexander-zuev/kollektiv-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server