Files
OG T 745ff300b5
Some checks failed
Deploy to 110 WOOO Server / deploy (push) Failing after 7s
feat: harden A2A funnel and paid proposal intake
2026-06-11 11:28:08 +08:00

50 lines
1.5 KiB
TypeScript

import { describe, it, expect } from "vitest";
import { ListOpenTasksRequestSchema, ClaimTaskRequestSchema, TaskDifficulty } from "../src";
describe("Contracts Zod Validation", () => {
it("should validate a correct ListOpenTasks payload", () => {
const payload = {
skills: ["React", "TypeScript"],
difficulty: TaskDifficulty.COMPONENT,
limit: 10,
};
const result = ListOpenTasksRequestSchema.safeParse(payload);
expect(result.success).toBe(true);
});
it("should validate empty ListOpenTasks payload", () => {
const result = ListOpenTasksRequestSchema.safeParse({});
expect(result.success).toBe(true);
});
it("should reject invalid ListOpenTasks payload", () => {
const payload = {
// limit is a string instead of number
limit: "10",
};
const result = ListOpenTasksRequestSchema.safeParse(payload);
expect(result.success).toBe(false);
});
it("should validate a correct ClaimTask payload", () => {
const payload = {
task_id: "550e8400-e29b-41d4-a716-446655440000",
agent_id: "agent-test-001",
developer_wallet: "0x1234567890123456789012345678901234567890",
};
const result = ClaimTaskRequestSchema.safeParse(payload);
if (!result.success) {
console.error(result.error);
}
expect(result.success).toBe(true);
});
it("should reject invalid ClaimTask payload", () => {
const payload = {
task_id: "not-a-uuid",
};
const result = ClaimTaskRequestSchema.safeParse(payload);
expect(result.success).toBe(false);
});
});