import { describe, it, expect } from 'vitest'; import { BaseEntity } from '../../../src/domain/entities/BaseEntity'; class TestEntity extends BaseEntity { constructor(id?: string) { super(id); } } describe('BaseEntity', () => { it('should create an entity with generated id', () => { const entity = new TestEntity(); expect(entity.id).toBeDefined(); expect(typeof entity.id).toBe('string'); }); it('should create an entity with provided id', () => { const customId = 'custom-id-123'; const entity = new TestEntity(customId); expect(entity.id).toBe(customId); }); it('should have createdAt and updatedAt timestamps', () => { const entity = new TestEntity(); expect(entity.createdAt).toBeInstanceOf(Date); expect(entity.updatedAt).toBeInstanceOf(Date); }); it('should return true when comparing same entity', () => { const entity = new TestEntity(); expect(entity.equals(entity)).toBe(true); }); it('should return true when comparing entities with same id', () => { const id = 'same-id'; const entity1 = new TestEntity(id); const entity2 = new TestEntity(id); expect(entity1.equals(entity2)).toBe(true); }); it('should return false when comparing entities with different ids', () => { const entity1 = new TestEntity(); const entity2 = new TestEntity(); expect(entity1.equals(entity2)).toBe(false); }); });