UNPKG

@skyramp/mcp

Version:

Skyramp MCP (Model Context Protocol) Server - AI-powered test generation and execution

82 lines (81 loc) 3.56 kB
// @ts-ignore import { validateParams, generateSkyrampHeader } from "./utils.js"; describe("validateParams", () => { it("should return null for valid comma-separated key=value pairs", () => { const result = validateParams("foo=bar,baz=qux", "testField"); expect(result).toBeNull(); }); it("should return null for empty string", () => { const result = validateParams("", "testField"); expect(result).toBeNull(); }); it("should return error for JSON-like input", () => { const result = validateParams('{"foo":"bar"}', "testField"); expect(result?.isError).toBe(true); const firstContent = result?.content?.[0]; expect(firstContent?.type).toBe("text"); if (firstContent?.type === "text") { expect(firstContent.text).toMatch(/key=value/); } }); it("should return error for missing value", () => { const result = validateParams("foo=", "testField"); expect(result?.isError).toBe(true); const firstContent = result?.content?.[0]; expect(firstContent?.type).toBe("text"); if (firstContent?.type === "text") { expect(firstContent.text).toMatch(/key=value/); } }); it("should return error for missing key", () => { const result = validateParams("=bar", "testField"); expect(result?.isError).toBe(true); const firstContent = result?.content?.[0]; expect(firstContent?.type).toBe("text"); if (firstContent?.type === "text") { expect(firstContent.text).toMatch(/key=value/); } }); it("should return error for missing key and value", () => { const result = validateParams("=", "testField"); expect(result?.isError).toBe(true); const firstContent = result?.content?.[0]; expect(firstContent?.type).toBe("text"); if (firstContent?.type === "text") { expect(firstContent.text).toMatch(/key=value/); } }); }); describe("generateSkyrampHeader", () => { it("should generate correct header for Python", () => { const header = generateSkyrampHeader("python"); expect(header).toMatch(/^# Generated by Skyramp on/); expect(header).toContain("\n\n"); }); it("should generate correct header for JavaScript", () => { const header = generateSkyrampHeader("javascript"); expect(header).toMatch(/^\/\/ Generated by Skyramp on/); expect(header).toContain("\n\n"); }); it("should generate correct header for TypeScript", () => { const header = generateSkyrampHeader("typescript"); expect(header).toMatch(/^\/\/ Generated by Skyramp on/); expect(header).toContain("\n\n"); }); it("should generate correct header for Java", () => { const header = generateSkyrampHeader("java"); expect(header).toMatch(/^\/\/ Generated by Skyramp on/); expect(header).toContain("\n\n"); }); it("should generate correct header for unknown language", () => { const header = generateSkyrampHeader("unknown"); expect(header).toMatch(/^# Generated by Skyramp on/); expect(header).toContain("\n\n"); }); it("should include timestamp in header", () => { const header = generateSkyrampHeader("python"); // Check that the header contains a timestamp in the expected format expect(header).toMatch(/on \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}/); expect(header).toMatch(/Generated by Skyramp/); }); });