56 lines
1.8 KiB
TypeScript
56 lines
1.8 KiB
TypeScript
import { GameKey } from './GameKey';
|
|
import { IdentityDomainValidationError } from '../errors/IdentityDomainError';
|
|
|
|
describe('GameKey', () => {
|
|
describe('create', () => {
|
|
it('should create valid game keys', () => {
|
|
expect(GameKey.create('iracing').value).toBe('iracing');
|
|
expect(GameKey.create('acc').value).toBe('acc');
|
|
expect(GameKey.create('f1').value).toBe('f1');
|
|
});
|
|
|
|
it('should throw for invalid game key', () => {
|
|
expect(() => GameKey.create('')).toThrow(IdentityDomainValidationError);
|
|
expect(() => GameKey.create(' ')).toThrow(IdentityDomainValidationError);
|
|
expect(() => GameKey.create('invalid game')).toThrow(IdentityDomainValidationError);
|
|
});
|
|
|
|
it('should trim whitespace', () => {
|
|
const key = GameKey.create(' iracing ');
|
|
expect(key.value).toBe('iracing');
|
|
});
|
|
|
|
it('should accept lowercase', () => {
|
|
const key = GameKey.create('iracing');
|
|
expect(key.value).toBe('iracing');
|
|
});
|
|
});
|
|
|
|
describe('equals', () => {
|
|
it('should return true for same value', () => {
|
|
const key1 = GameKey.create('iracing');
|
|
const key2 = GameKey.create('iracing');
|
|
expect(key1.equals(key2)).toBe(true);
|
|
});
|
|
|
|
it('should return false for different values', () => {
|
|
const key1 = GameKey.create('iracing');
|
|
const key2 = GameKey.create('acc');
|
|
expect(key1.equals(key2)).toBe(false);
|
|
});
|
|
});
|
|
|
|
describe('props', () => {
|
|
it('should expose props correctly', () => {
|
|
const key = GameKey.create('iracing');
|
|
expect(key.props.value).toBe('iracing');
|
|
});
|
|
});
|
|
|
|
describe('toString', () => {
|
|
it('should return string representation', () => {
|
|
const key = GameKey.create('iracing');
|
|
expect(key.toString()).toBe('iracing');
|
|
});
|
|
});
|
|
}); |