Files
gridpilot.gg/core/media/domain/value-objects/AvatarId.test.ts
Marc Mintel 0a37454171
Some checks failed
Contract Testing / contract-tests (pull_request) Failing after 5m51s
Contract Testing / contract-snapshot (pull_request) Has been skipped
view data tests
2026-01-22 17:28:09 +01:00

84 lines
2.5 KiB
TypeScript

import { AvatarId } from './AvatarId';
describe('AvatarId', () => {
describe('create', () => {
it('creates from valid string', () => {
const avatarId = AvatarId.create('avatar-123');
expect(avatarId.toString()).toBe('avatar-123');
});
it('trims whitespace', () => {
const avatarId = AvatarId.create(' avatar-123 ');
expect(avatarId.toString()).toBe('avatar-123');
});
it('throws error when empty', () => {
expect(() => AvatarId.create('')).toThrow('Avatar ID cannot be empty');
});
it('throws error when only whitespace', () => {
expect(() => AvatarId.create(' ')).toThrow('Avatar ID cannot be empty');
});
it('throws error when null', () => {
expect(() => AvatarId.create(null as any)).toThrow('Avatar ID cannot be empty');
});
it('throws error when undefined', () => {
expect(() => AvatarId.create(undefined as any)).toThrow('Avatar ID cannot be empty');
});
});
describe('toString', () => {
it('returns the string value', () => {
const avatarId = AvatarId.create('avatar-123');
expect(avatarId.toString()).toBe('avatar-123');
});
});
describe('equals', () => {
it('returns true for equal avatar IDs', () => {
const avatarId1 = AvatarId.create('avatar-123');
const avatarId2 = AvatarId.create('avatar-123');
expect(avatarId1.equals(avatarId2)).toBe(true);
});
it('returns false for different avatar IDs', () => {
const avatarId1 = AvatarId.create('avatar-123');
const avatarId2 = AvatarId.create('avatar-456');
expect(avatarId1.equals(avatarId2)).toBe(false);
});
it('returns false for different case', () => {
const avatarId1 = AvatarId.create('avatar-123');
const avatarId2 = AvatarId.create('AVATAR-123');
expect(avatarId1.equals(avatarId2)).toBe(false);
});
});
describe('value object equality', () => {
it('implements value-based equality', () => {
const avatarId1 = AvatarId.create('avatar-123');
const avatarId2 = AvatarId.create('avatar-123');
const avatarId3 = AvatarId.create('avatar-456');
expect(avatarId1.equals(avatarId2)).toBe(true);
expect(avatarId1.equals(avatarId3)).toBe(false);
});
it('maintains equality after toString', () => {
const avatarId1 = AvatarId.create('avatar-123');
const avatarId2 = AvatarId.create('avatar-123');
expect(avatarId1.toString()).toBe(avatarId2.toString());
expect(avatarId1.equals(avatarId2)).toBe(true);
});
});
});