admin area
This commit is contained in:
90
core/admin/domain/value-objects/UserId.test.ts
Normal file
90
core/admin/domain/value-objects/UserId.test.ts
Normal file
@@ -0,0 +1,90 @@
|
||||
import { UserId } from './UserId';
|
||||
|
||||
describe('UserId', () => {
|
||||
describe('TDD - Test First', () => {
|
||||
it('should create a valid user id from string', () => {
|
||||
// Arrange & Act
|
||||
const userId = UserId.fromString('user-123');
|
||||
|
||||
// Assert
|
||||
expect(userId.value).toBe('user-123');
|
||||
});
|
||||
|
||||
it('should trim whitespace', () => {
|
||||
// Arrange & Act
|
||||
const userId = UserId.fromString(' user-123 ');
|
||||
|
||||
// Assert
|
||||
expect(userId.value).toBe('user-123');
|
||||
});
|
||||
|
||||
it('should throw error for empty string', () => {
|
||||
// Arrange & Act & Assert
|
||||
expect(() => UserId.fromString('')).toThrow('User ID cannot be empty');
|
||||
expect(() => UserId.fromString(' ')).toThrow('User ID cannot be empty');
|
||||
});
|
||||
|
||||
it('should throw error for null or undefined', () => {
|
||||
// Arrange & Act & Assert
|
||||
expect(() => UserId.fromString(null as unknown as string)).toThrow('User ID cannot be empty');
|
||||
expect(() => UserId.fromString(undefined as unknown as string)).toThrow('User ID cannot be empty');
|
||||
});
|
||||
|
||||
it('should handle special characters', () => {
|
||||
// Arrange & Act
|
||||
const userId = UserId.fromString('user-123_test@example');
|
||||
|
||||
// Assert
|
||||
expect(userId.value).toBe('user-123_test@example');
|
||||
});
|
||||
|
||||
it('should support equals comparison', () => {
|
||||
// Arrange
|
||||
const userId1 = UserId.fromString('user-123');
|
||||
const userId2 = UserId.fromString('user-123');
|
||||
const userId3 = UserId.fromString('user-456');
|
||||
|
||||
// Assert
|
||||
expect(userId1.equals(userId2)).toBe(true);
|
||||
expect(userId1.equals(userId3)).toBe(false);
|
||||
});
|
||||
|
||||
it('should support toString', () => {
|
||||
// Arrange
|
||||
const userId = UserId.fromString('user-123');
|
||||
|
||||
// Assert
|
||||
expect(userId.toString()).toBe('user-123');
|
||||
});
|
||||
|
||||
it('should handle very long IDs', () => {
|
||||
// Arrange
|
||||
const longId = 'a'.repeat(1000);
|
||||
|
||||
// Act
|
||||
const userId = UserId.fromString(longId);
|
||||
|
||||
// Assert
|
||||
expect(userId.value).toBe(longId);
|
||||
});
|
||||
|
||||
it('should handle UUID format', () => {
|
||||
// Arrange
|
||||
const uuid = '550e8400-e29b-41d4-a716-446655440000';
|
||||
|
||||
// Act
|
||||
const userId = UserId.fromString(uuid);
|
||||
|
||||
// Assert
|
||||
expect(userId.value).toBe(uuid);
|
||||
});
|
||||
|
||||
it('should handle numeric string IDs', () => {
|
||||
// Arrange & Act
|
||||
const userId = UserId.fromString('123456');
|
||||
|
||||
// Assert
|
||||
expect(userId.value).toBe('123456');
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user