import { InMemoryDriverRepository } from './InMemoryDriverRepository'; import { DriverData } from '../../../../core/dashboard/application/ports/DashboardRepository'; describe('InMemoryDriverRepository', () => { let repository: InMemoryDriverRepository; beforeEach(() => { repository = new InMemoryDriverRepository(); }); describe('findDriverById', () => { it('should return null when driver does not exist', async () => { // Given const driverId = 'non-existent'; // When const result = await repository.findDriverById(driverId); // Then expect(result).toBeNull(); }); it('should return driver when it exists', async () => { // Given const driver: DriverData = { id: 'driver-1', name: 'John Doe', rating: 1500, rank: 10, starts: 100, wins: 10, podiums: 30, leagues: 5, }; repository.addDriver(driver); // When const result = await repository.findDriverById(driver.id); // Then expect(result).toEqual(driver); }); it('should overwrite driver with same id (idempotency)', async () => { // Given const driverId = 'driver-1'; const driver1: DriverData = { id: driverId, name: 'John Doe', rating: 1500, rank: 10, starts: 100, wins: 10, podiums: 30, leagues: 5, }; const driver2: DriverData = { id: driverId, name: 'John Updated', rating: 1600, rank: 5, starts: 101, wins: 11, podiums: 31, leagues: 5, }; // When repository.addDriver(driver1); repository.addDriver(driver2); const result = await repository.findDriverById(driverId); // Then expect(result).toEqual(driver2); }); }); });