import { describe, expect, test } from "bun:test"; import { validateUuid, createAgentId } from "../uuid"; describe("validateUuid", () => { test("validates correct UUID", () => { const result = validateUuid("550e8400-e29b-41d4-a716-446655440000"); expect(result).toBe("550e8400-e29b-41d4-a716-446655440000"); }); test("validates uppercase UUID", () => { const result = validateUuid("550E8400-E29B-41D4-A716-446655440000"); expect(result).toBe("550E8400-E29B-41D4-A716-446655440000"); }); test("returns null for non-string", () => { expect(validateUuid(123)).toBeNull(); expect(validateUuid(null)).toBeNull(); expect(validateUuid(undefined)).toBeNull(); }); test("returns null for invalid UUID format", () => { expect(validateUuid("not-a-uuid")).toBeNull(); expect(validateUuid("550e8400-e29b-41d4-a716")).toBeNull(); expect(validateUuid("550e8400e29b41d4a716446655440000")).toBeNull(); }); test("returns null for empty string", () => { expect(validateUuid("")).toBeNull(); }); test("returns null for UUID with invalid chars", () => { expect(validateUuid("550e8400-e29b-41d4-a716-44665544000g")).toBeNull(); }); test("returns null for UUID with leading/trailing whitespace", () => { expect(validateUuid(" 550e8400-e29b-41d4-a716-446655440000")).toBeNull(); expect(validateUuid("550e8400-e29b-41d4-a716-446655440000 ")).toBeNull(); }); }); describe("createAgentId", () => { test("generates id without label in correct format", () => { const id = createAgentId(); expect(id).toMatch(/^a[0-9a-f]{16}$/); }); test("generates id with label in correct format", () => { const id = createAgentId("compact"); expect(id).toMatch(/^acompact-[0-9a-f]{16}$/); }); });