import { describe, expect, it } from "vitest";
import { createTicketToken, isShortTicketToken } from "./ticket-token";

describe("ticket token", () => {
  it("creates short uppercase tokens that are easy to enter", () => {
    const token = createTicketToken();
    expect(isShortTicketToken(token)).toBe(true);
    expect(token).toHaveLength(12);
    expect(token).not.toMatch(/[01IO]/);
  });

  it("generates unique tokens for multiple tickets", () => {
    const tokens = new Set(Array.from({ length: 100 }, () => createTicketToken()));
    expect(tokens.size).toBe(100);
  });

  it("does not accept malformed short tokens", () => {
    expect(isShortTicketToken("gng_old_token")).toBe(false);
    expect(isShortTicketToken("GNG-1234")).toBe(false);
    expect(isShortTicketToken("GNG-ABCDEFGH9")).toBe(false);
  });
});
