| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- 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}$/);
- });
- });
|