import { describe, it, expect } from 'vitest';
import { generateSessionCode } from '@/lib/session-code';

const ALPHABET = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789';

describe('generateSessionCode', () => {
  it('generates a 6-character code', () => {
    const code = generateSessionCode();
    expect(code).toHaveLength(6);
  });

  it('uses only allowed characters', () => {
    for (let i = 0; i < 50; i++) {
      const code = generateSessionCode();
      expect([...code].every((char) => ALPHABET.includes(char))).toBe(true);
    }
  });

  it('generates different codes on repeated calls', () => {
    const codes = new Set(Array.from({ length: 100 }, () => generateSessionCode()));
    expect(codes.size).toBeGreaterThan(90);
  });

  it('supports custom length', () => {
    expect(generateSessionCode(8)).toHaveLength(8);
  });
});
