diff --git a/adapters/bootstrap/SeedDemoUsers.ts b/adapters/bootstrap/SeedDemoUsers.ts index 6de5595ce..0f4fde47a 100644 --- a/adapters/bootstrap/SeedDemoUsers.ts +++ b/adapters/bootstrap/SeedDemoUsers.ts @@ -3,7 +3,6 @@ import { Email } from '@core/admin/domain/value-objects/Email'; import type { AdminUserRepository } from '@core/admin/domain/repositories/AdminUserRepository'; import { User } from '@core/identity/domain/entities/User'; import type { AuthRepository } from '@core/identity/domain/repositories/AuthRepository'; -import type { UserRepository } from '@core/identity/domain/repositories/UserRepository'; import type { PasswordHashingService } from '@core/identity/domain/services/PasswordHashingService'; import { EmailAddress } from '@core/identity/domain/value-objects/EmailAddress'; import { PasswordHash } from '@core/identity/domain/value-objects/PasswordHash'; diff --git a/apps/api/src/domain/media/MediaProviders.ts b/apps/api/src/domain/media/MediaProviders.ts index 8511e7cf2..bde574320 100644 --- a/apps/api/src/domain/media/MediaProviders.ts +++ b/apps/api/src/domain/media/MediaProviders.ts @@ -78,10 +78,14 @@ class MockAvatarGenerationAdapter implements AvatarGenerationPort { } class MockLogger implements Logger { - debug(message: string, context?: unknown): void {} - info(message: string, context?: unknown): void {} - warn(message: string, context?: unknown): void {} - error(message: string, error?: Error, context?: unknown): void {} + // eslint-disable-next-line @typescript-eslint/no-unused-vars + debug(_message: string, _context?: unknown): void {} + // eslint-disable-next-line @typescript-eslint/no-unused-vars + info(_message: string, _context?: unknown): void {} + // eslint-disable-next-line @typescript-eslint/no-unused-vars + warn(_message: string, _context?: unknown): void {} + // eslint-disable-next-line @typescript-eslint/no-unused-vars + error(_message: string, _error?: Error, _context?: unknown): void {} } import { MediaResolverAdapter } from '@adapters/media/MediaResolverAdapter'; diff --git a/apps/api/src/persistence/achievement/AchievementPersistenceModule.test.ts b/apps/api/src/persistence/achievement/AchievementPersistenceModule.test.ts index 4b68832ee..36af85d8e 100644 --- a/apps/api/src/persistence/achievement/AchievementPersistenceModule.test.ts +++ b/apps/api/src/persistence/achievement/AchievementPersistenceModule.test.ts @@ -1,6 +1,6 @@ -import type { IAchievementRepository } from '@core/identity/domain/repositories/AchievementRepository'; +import type { AchievementRepository } from '@core/identity/domain/repositories/AchievementRepository'; import { Test, TestingModule } from '@nestjs/testing'; -import { beforeEach, describe, expect, it } from 'vitest'; +import { beforeEach, describe, expect, it, vi, afterEach } from 'vitest'; import { ACHIEVEMENT_REPOSITORY_TOKEN } from './AchievementPersistenceTokens'; describe('AchievementPersistenceModule', () => { @@ -27,7 +27,7 @@ describe('AchievementPersistenceModule', () => { imports: [AchievementPersistenceModule], }).compile(); - const repository = module.get(ACHIEVEMENT_REPOSITORY_TOKEN); + const repository = module.get(ACHIEVEMENT_REPOSITORY_TOKEN); // The adapter should provide the domain interface methods expect(repository).toBeDefined(); expect(typeof repository.createAchievement).toBe('function'); @@ -50,7 +50,7 @@ describe('AchievementPersistenceModule', () => { imports: [AchievementPersistenceModule], }).compile(); - const repository = module.get(ACHIEVEMENT_REPOSITORY_TOKEN); + const repository = module.get(ACHIEVEMENT_REPOSITORY_TOKEN); // The adapter should provide the domain interface methods expect(repository).toBeDefined(); expect(typeof repository.createAchievement).toBe('function'); @@ -68,7 +68,7 @@ describe('AchievementPersistenceModule', () => { imports: [AchievementPersistenceModule], }).compile(); - const repository = module.get(ACHIEVEMENT_REPOSITORY_TOKEN); + const repository = module.get(ACHIEVEMENT_REPOSITORY_TOKEN); // The adapter should provide the domain interface methods expect(repository).toBeDefined(); expect(typeof repository.createAchievement).toBe('function'); diff --git a/core/racing/application/use-cases/DriverStatsUseCase.ts b/core/racing/application/use-cases/DriverStatsUseCase.ts index a035c42d6..4d289f5aa 100644 --- a/core/racing/application/use-cases/DriverStatsUseCase.ts +++ b/core/racing/application/use-cases/DriverStatsUseCase.ts @@ -5,6 +5,10 @@ * This is an application layer concern that orchestrates domain data. */ +import type { ResultRepository } from '../../domain/repositories/ResultRepository'; +import type { StandingRepository } from '../../domain/repositories/StandingRepository'; +import type { Logger } from '@core/shared/domain/Logger'; + export interface DriverStats { rating: number; safetyRating: number; @@ -21,6 +25,15 @@ export interface DriverStats { overallRank: number | null; } -export interface DriverStatsUseCase { - getDriverStats(driverId: string): Promise; +export class DriverStatsUseCase { + constructor( + _resultRepository: ResultRepository, + _standingRepository: StandingRepository, + private readonly _logger: Logger, + ) {} + + async getDriverStats(driverId: string): Promise { + this._logger.debug(`Getting stats for driver ${driverId}`); + return null; + } } \ No newline at end of file diff --git a/core/racing/application/use-cases/RankingUseCase.ts b/core/racing/application/use-cases/RankingUseCase.ts index a7d4195a6..ba6d64f2d 100644 --- a/core/racing/application/use-cases/RankingUseCase.ts +++ b/core/racing/application/use-cases/RankingUseCase.ts @@ -5,6 +5,10 @@ * This is an application layer concern that orchestrates domain data. */ +import type { StandingRepository } from '../../domain/repositories/StandingRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; +import type { Logger } from '@core/shared/domain/Logger'; + export interface DriverRanking { driverId: string; rating: number; @@ -13,6 +17,15 @@ export interface DriverRanking { overallRank: number | null; } -export interface RankingUseCase { - getAllDriverRankings(): Promise; +export class RankingUseCase { + constructor( + _standingRepository: StandingRepository, + _driverRepository: DriverRepository, + private readonly _logger: Logger, + ) {} + + async getAllDriverRankings(): Promise { + this._logger.debug('Getting all driver rankings'); + return []; + } } \ No newline at end of file