import { describe, expect, it } from 'vitest';
import { TrackGameId } from './TrackGameId';

describe('TrackGameId', () => {
  it('should create track game id', () => {
    const id = TrackGameId.create('123');
    expect(id.toString()).toBe('123');
    expect(id.props).toBe('123');
  });

  it('should trim whitespace', () => {
    const id = TrackGameId.create('  123  ');
    expect(id.toString()).toBe('123');
  });

  it('should throw for empty id', () => {
    expect(() => TrackGameId.create('')).toThrow('Track game ID cannot be empty');
    expect(() => TrackGameId.create('   ')).toThrow('Track game ID cannot be empty');
  });

  it('should equal same ids', () => {
    const i1 = TrackGameId.create('123');
    const i2 = TrackGameId.create('123');
    expect(i1.equals(i2)).toBe(true);
  });

  it('should not equal different ids', () => {
    const i1 = TrackGameId.create('123');
    const i2 = TrackGameId.create('456');
    expect(i1.equals(i2)).toBe(false);
  });
});