diff --git a/core/analytics/application/use-cases/GetEntityAnalyticsQuery.test.ts b/core/analytics/application/use-cases/GetEntityAnalyticsQuery.test.ts index c4c374593..140646245 100644 --- a/core/analytics/application/use-cases/GetEntityAnalyticsQuery.test.ts +++ b/core/analytics/application/use-cases/GetEntityAnalyticsQuery.test.ts @@ -1,7 +1,9 @@ import type { Logger } from '@core/shared/domain/Logger'; -import { describe, expect, it, vi, type Mock } from 'vitest'; +import { describe, expect, it, vi, type Mock, beforeEach } from 'vitest'; import type { EntityType } from '../../domain/types/PageView'; import { GetEntityAnalyticsQuery, type GetEntityAnalyticsInput } from './GetEntityAnalyticsQuery'; +import type { PageViewRepository } from '../repositories/PageViewRepository'; +import type { EngagementRepository } from '../../domain/repositories/EngagementRepository'; describe('GetEntityAnalyticsQuery', () => { let pageViewRepository: { diff --git a/core/analytics/application/use-cases/RecordEngagementUseCase.test.ts b/core/analytics/application/use-cases/RecordEngagementUseCase.test.ts index 7e682d568..1c916f8e6 100644 --- a/core/analytics/application/use-cases/RecordEngagementUseCase.test.ts +++ b/core/analytics/application/use-cases/RecordEngagementUseCase.test.ts @@ -1,8 +1,9 @@ import type { Logger } from '@core/shared/domain/Logger'; -import { describe, expect, it, vi, type Mock } from 'vitest'; +import { describe, expect, it, vi, type Mock, beforeEach } from 'vitest'; import { EngagementEvent } from '../../domain/entities/EngagementEvent'; import type { EngagementAction, EngagementEntityType } from '../../domain/types/EngagementEvent'; import { RecordEngagementUseCase, type RecordEngagementInput } from './RecordEngagementUseCase'; +import type { EngagementRepository } from '../../domain/repositories/EngagementRepository'; describe('RecordEngagementUseCase', () => { let engagementRepository: { diff --git a/core/identity/application/queries/GetUserRatingsSummaryQuery.test.ts b/core/identity/application/queries/GetUserRatingsSummaryQuery.test.ts index 2aa492c81..73e2f0af4 100644 --- a/core/identity/application/queries/GetUserRatingsSummaryQuery.test.ts +++ b/core/identity/application/queries/GetUserRatingsSummaryQuery.test.ts @@ -85,8 +85,8 @@ describe('GetUserRatingsSummaryQuery', () => { expect(result.userId).toBe(userId); expect(result.platform.driving.value).toBe(50); // Default expect(result.platform.overallReputation).toBe(50); - expect(result.external.iracing.iRating).toBe(2200); - expect(result.external.iracing.safetyRating).toBe(4.5); + expect(result.external.iracing?.iRating).toBe(2200); + expect(result.external.iracing?.safetyRating).toBe(4.5); expect(result.lastRatingEventAt).toBe('2024-01-01T00:00:00.000Z'); }); diff --git a/core/identity/application/use-cases/ForgotPasswordUseCase.test.ts b/core/identity/application/use-cases/ForgotPasswordUseCase.test.ts index c67152033..ff2932848 100644 --- a/core/identity/application/use-cases/ForgotPasswordUseCase.test.ts +++ b/core/identity/application/use-cases/ForgotPasswordUseCase.test.ts @@ -1,10 +1,13 @@ import type { Logger } from '@core/shared/domain/Logger'; import { Result } from '@core/shared/domain/Result'; -import { describe, expect, it, vi, type Mock } from 'vitest'; +import { describe, expect, it, vi, type Mock, beforeEach } from 'vitest'; import { User } from '../../domain/entities/User'; import { PasswordHash } from '../../domain/value-objects/PasswordHash'; import { UserId } from '../../domain/value-objects/UserId'; import { ForgotPasswordUseCase } from './ForgotPasswordUseCase'; +import type { AuthRepository } from '../../domain/repositories/AuthRepository'; +import type { MagicLinkRepository } from '../../domain/repositories/MagicLinkRepository'; +import type { MagicLinkNotificationPort } from '../ports/MagicLinkNotificationPort'; describe('ForgotPasswordUseCase', () => { let authRepo: { diff --git a/core/identity/application/use-cases/GetCurrentSessionUseCase.test.ts b/core/identity/application/use-cases/GetCurrentSessionUseCase.test.ts index 1ad7ff1fc..c5579c2d4 100644 --- a/core/identity/application/use-cases/GetCurrentSessionUseCase.test.ts +++ b/core/identity/application/use-cases/GetCurrentSessionUseCase.test.ts @@ -1,7 +1,7 @@ import type { Logger } from '@core/shared/domain/Logger'; -import { vi, type Mock } from 'vitest'; +import { vi, type Mock, beforeEach, describe, it, expect } from 'vitest'; import { User } from '../../domain/entities/User'; -import { StoredUser } from '../../domain/repositories/UserRepository'; +import { StoredUser, type UserRepository } from '../../domain/repositories/UserRepository'; import { GetCurrentSessionUseCase } from './GetCurrentSessionUseCase'; describe('GetCurrentSessionUseCase', () => { diff --git a/core/identity/application/use-cases/GetUserUseCase.test.ts b/core/identity/application/use-cases/GetUserUseCase.test.ts index 9252f8fcd..fe9f948fa 100644 --- a/core/identity/application/use-cases/GetUserUseCase.test.ts +++ b/core/identity/application/use-cases/GetUserUseCase.test.ts @@ -1,6 +1,7 @@ import type { Logger } from '@core/shared/domain/Logger'; -import { describe, expect, it, vi, type Mock } from 'vitest'; +import { describe, expect, it, vi, type Mock, beforeEach } from 'vitest'; import { GetUserUseCase } from './GetUserUseCase'; +import type { UserRepository } from '../../domain/repositories/UserRepository'; describe('GetUserUseCase', () => { let userRepo: { diff --git a/core/identity/application/use-cases/LoginUseCase.test.ts b/core/identity/application/use-cases/LoginUseCase.test.ts index b05e096ae..32f8c3599 100644 --- a/core/identity/application/use-cases/LoginUseCase.test.ts +++ b/core/identity/application/use-cases/LoginUseCase.test.ts @@ -1,9 +1,11 @@ import type { Logger } from '@core/shared/domain/Logger'; -import { describe, expect, it, vi, type Mock } from 'vitest'; +import { describe, expect, it, vi, type Mock, beforeEach } from 'vitest'; import { User } from '../../domain/entities/User'; import { PasswordHash } from '../../domain/value-objects/PasswordHash'; import { UserId } from '../../domain/value-objects/UserId'; import { LoginUseCase } from './LoginUseCase'; +import type { AuthRepository } from '../../domain/repositories/AuthRepository'; +import type { PasswordHashingService } from '../ports/PasswordHashingService'; describe('LoginUseCase', () => { let authRepo: { diff --git a/core/identity/application/use-cases/RecordRaceRatingEventsUseCase.test.ts b/core/identity/application/use-cases/RecordRaceRatingEventsUseCase.test.ts index 49deb219d..772f65bae 100644 --- a/core/identity/application/use-cases/RecordRaceRatingEventsUseCase.test.ts +++ b/core/identity/application/use-cases/RecordRaceRatingEventsUseCase.test.ts @@ -16,11 +16,11 @@ class MockRaceResultsProvider implements RaceResultsProvider { this.results = results; } - async getRaceResults(_raceId: string): Promise { + async getRaceResults(): Promise { return this.results; } - async hasRaceResults(_raceId: string): Promise { + async hasRaceResults(): Promise { return this.results !== null; } } diff --git a/core/identity/application/use-cases/SignupSponsorUseCase.test.ts b/core/identity/application/use-cases/SignupSponsorUseCase.test.ts index 800e4b0d6..6f396a1da 100644 --- a/core/identity/application/use-cases/SignupSponsorUseCase.test.ts +++ b/core/identity/application/use-cases/SignupSponsorUseCase.test.ts @@ -1,6 +1,9 @@ import type { Logger } from '@core/shared/domain/Logger'; -import { describe, expect, it, vi, type Mock } from 'vitest'; +import { describe, expect, it, vi, type Mock, beforeEach } from 'vitest'; import { SignupSponsorUseCase } from './SignupSponsorUseCase'; +import type { AuthRepository } from '../../domain/repositories/AuthRepository'; +import type { CompanyRepository } from '../../domain/repositories/CompanyRepository'; +import type { PasswordHashingService } from '../ports/PasswordHashingService'; describe('SignupSponsorUseCase', () => { let authRepo: { diff --git a/core/identity/application/use-cases/SignupUseCase.test.ts b/core/identity/application/use-cases/SignupUseCase.test.ts index 7241b19bd..cabcd844c 100644 --- a/core/identity/application/use-cases/SignupUseCase.test.ts +++ b/core/identity/application/use-cases/SignupUseCase.test.ts @@ -1,9 +1,11 @@ import type { Logger } from '@core/shared/domain/Logger'; -import { describe, expect, it, vi, type Mock } from 'vitest'; +import { describe, expect, it, vi, type Mock, beforeEach } from 'vitest'; import { User } from '../../domain/entities/User'; import { PasswordHash } from '../../domain/value-objects/PasswordHash'; import { UserId } from '../../domain/value-objects/UserId'; import { SignupUseCase } from './SignupUseCase'; +import type { AuthRepository } from '../../domain/repositories/AuthRepository'; +import type { PasswordHashingService } from '../ports/PasswordHashingService'; describe('SignupUseCase', () => { let authRepo: { diff --git a/core/identity/application/use-cases/SignupWithEmailUseCase.test.ts b/core/identity/application/use-cases/SignupWithEmailUseCase.test.ts index 8dd121115..9ef057737 100644 --- a/core/identity/application/use-cases/SignupWithEmailUseCase.test.ts +++ b/core/identity/application/use-cases/SignupWithEmailUseCase.test.ts @@ -1,7 +1,8 @@ import type { Logger } from '@core/shared/domain/Logger'; -import { describe, expect, it, vi, type Mock } from 'vitest'; +import { describe, expect, it, vi, type Mock, beforeEach } from 'vitest'; import type { IdentitySessionPort } from '../ports/IdentitySessionPort'; import { SignupWithEmailUseCase } from './SignupWithEmailUseCase'; +import type { UserRepository } from '../../domain/repositories/UserRepository'; describe('SignupWithEmailUseCase', () => { let userRepository: { diff --git a/core/racing/application/use-cases/AppendTeamRatingEventsUseCase.test.ts b/core/racing/application/use-cases/AppendTeamRatingEventsUseCase.test.ts index 8054b36ee..2416efed8 100644 --- a/core/racing/application/use-cases/AppendTeamRatingEventsUseCase.test.ts +++ b/core/racing/application/use-cases/AppendTeamRatingEventsUseCase.test.ts @@ -5,7 +5,7 @@ import { TeamRatingEvent } from '@core/racing/domain/entities/TeamRatingEvent'; import { TeamRatingEventId } from '@core/racing/domain/value-objects/TeamRatingEventId'; import { TeamRatingDimensionKey } from '@core/racing/domain/value-objects/TeamRatingDimensionKey'; import { TeamRatingDelta } from '@core/racing/domain/value-objects/TeamRatingDelta'; -import { TeamRating } from '../../domain/entities/TeamRating'; +import { TeamRating } from '@core/racing/domain/value-objects/TeamRating'; import { describe, it, expect, beforeEach, afterEach } from 'vitest'; // Mock repositories diff --git a/core/racing/application/use-cases/ApproveLeagueJoinRequestUseCase.test.ts b/core/racing/application/use-cases/ApproveLeagueJoinRequestUseCase.test.ts index ca553ddf5..2f27ca51d 100644 --- a/core/racing/application/use-cases/ApproveLeagueJoinRequestUseCase.test.ts +++ b/core/racing/application/use-cases/ApproveLeagueJoinRequestUseCase.test.ts @@ -1,7 +1,6 @@ import { describe, it, expect, beforeEach, vi, Mock } from 'vitest'; import { ApproveLeagueJoinRequestUseCase, - type ApproveLeagueJoinRequestResult, } from './ApproveLeagueJoinRequestUseCase'; import { League } from '../../domain/entities/League'; import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; diff --git a/core/racing/application/use-cases/ApproveTeamJoinRequestUseCase.test.ts b/core/racing/application/use-cases/ApproveTeamJoinRequestUseCase.test.ts index f4509d683..5b350cd19 100644 --- a/core/racing/application/use-cases/ApproveTeamJoinRequestUseCase.test.ts +++ b/core/racing/application/use-cases/ApproveTeamJoinRequestUseCase.test.ts @@ -1,5 +1,5 @@ import { describe, it, expect, beforeEach, vi, Mock } from 'vitest'; -import { ApproveTeamJoinRequestUseCase, type ApproveTeamJoinRequestResult } from './ApproveTeamJoinRequestUseCase'; +import { ApproveTeamJoinRequestUseCase } from './ApproveTeamJoinRequestUseCase'; import type { TeamMembershipRepository } from '../../domain/repositories/TeamMembershipRepository'; describe('ApproveTeamJoinRequestUseCase', () => { diff --git a/core/racing/application/use-cases/CompleteDriverOnboardingUseCase.test.ts b/core/racing/application/use-cases/CompleteDriverOnboardingUseCase.test.ts index e212ed421..8442a4f46 100644 --- a/core/racing/application/use-cases/CompleteDriverOnboardingUseCase.test.ts +++ b/core/racing/application/use-cases/CompleteDriverOnboardingUseCase.test.ts @@ -2,7 +2,6 @@ import { describe, it, expect, beforeEach, afterEach, vi, Mock } from 'vitest'; import { CompleteDriverOnboardingUseCase, type CompleteDriverOnboardingInput, - type CompleteDriverOnboardingResult, } from './CompleteDriverOnboardingUseCase'; import type { DriverRepository } from '../../domain/repositories/DriverRepository'; import { Driver } from '../../domain/entities/Driver'; diff --git a/core/racing/application/use-cases/CompleteRaceUseCaseWithRatings.test.ts b/core/racing/application/use-cases/CompleteRaceUseCaseWithRatings.test.ts index c3e22e512..8e37472bf 100644 --- a/core/racing/application/use-cases/CompleteRaceUseCaseWithRatings.test.ts +++ b/core/racing/application/use-cases/CompleteRaceUseCaseWithRatings.test.ts @@ -2,7 +2,6 @@ import { describe, it, expect, beforeEach, vi, Mock } from 'vitest'; import { CompleteRaceUseCaseWithRatings, type CompleteRaceWithRatingsInput, - type CompleteRaceWithRatingsResult, } from './CompleteRaceUseCaseWithRatings'; import type { RaceRepository } from '../../domain/repositories/RaceRepository'; import type { RaceRegistrationRepository } from '../../domain/repositories/RaceRegistrationRepository'; @@ -38,7 +37,6 @@ describe('CompleteRaceUseCaseWithRatings', () => { getRaceResults: Mock; hasRaceResults: Mock; }; - let output: { present: Mock }; beforeEach(() => { raceRepository = { diff --git a/core/racing/application/use-cases/CreateLeagueWithSeasonAndScoringUseCase.test.ts b/core/racing/application/use-cases/CreateLeagueWithSeasonAndScoringUseCase.test.ts index a46a293d6..9e177a530 100644 --- a/core/racing/application/use-cases/CreateLeagueWithSeasonAndScoringUseCase.test.ts +++ b/core/racing/application/use-cases/CreateLeagueWithSeasonAndScoringUseCase.test.ts @@ -3,6 +3,10 @@ import { CreateLeagueWithSeasonAndScoringUseCase, type CreateLeagueWithSeasonAndScoringCommand } from './CreateLeagueWithSeasonAndScoringUseCase'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; +import type { LeagueScoringConfigRepository } from '../../domain/repositories/LeagueScoringConfigRepository'; +import type { Logger } from '@core/shared/domain/Logger'; describe('CreateLeagueWithSeasonAndScoringUseCase', () => { let useCase: CreateLeagueWithSeasonAndScoringUseCase; @@ -40,11 +44,13 @@ describe('CreateLeagueWithSeasonAndScoringUseCase', () => { warn: vi.fn(), error: vi.fn(), }; - useCase = new CreateLeagueWithSeasonAndScoringUseCase(leagueRepository as any, - seasonRepository as any, - leagueScoringConfigRepository as any, + useCase = new CreateLeagueWithSeasonAndScoringUseCase( + leagueRepository as unknown as LeagueRepository, + seasonRepository as unknown as SeasonRepository, + leagueScoringConfigRepository as unknown as LeagueScoringConfigRepository, getLeagueScoringPresetById, - logger as any); + logger as unknown as Logger + ); }); it('should create league, season, and scoring successfully', async () => { diff --git a/core/racing/application/use-cases/GetAllLeaguesWithCapacityAndScoringUseCase.test.ts b/core/racing/application/use-cases/GetAllLeaguesWithCapacityAndScoringUseCase.test.ts index 06b744280..2ff78645f 100644 --- a/core/racing/application/use-cases/GetAllLeaguesWithCapacityAndScoringUseCase.test.ts +++ b/core/racing/application/use-cases/GetAllLeaguesWithCapacityAndScoringUseCase.test.ts @@ -7,7 +7,6 @@ import type { SeasonRepository } from '../../domain/repositories/SeasonRepositor import { GetAllLeaguesWithCapacityAndScoringUseCase, type GetAllLeaguesWithCapacityAndScoringInput, - type GetAllLeaguesWithCapacityAndScoringResult, } from './GetAllLeaguesWithCapacityAndScoringUseCase'; describe('GetAllLeaguesWithCapacityAndScoringUseCase', () => { diff --git a/core/racing/application/use-cases/GetDriverTeamUseCase.test.ts b/core/racing/application/use-cases/GetDriverTeamUseCase.test.ts index 62ba1c316..ad70ee261 100644 --- a/core/racing/application/use-cases/GetDriverTeamUseCase.test.ts +++ b/core/racing/application/use-cases/GetDriverTeamUseCase.test.ts @@ -1,10 +1,12 @@ import type { Logger } from '@core/shared/domain/Logger'; import { beforeEach, describe, expect, it, vi } from 'vitest'; import { GetDriverTeamUseCase, type GetDriverTeamInput } from './GetDriverTeamUseCase'; +import type { TeamRepository } from '../../domain/repositories/TeamRepository'; +import type { TeamMembershipRepository } from '../../domain/repositories/TeamMembershipRepository'; describe('GetDriverTeamUseCase', () => { - let mockTeamRepo: any; - let mockMembershipRepo: any; + let mockTeamRepo: TeamRepository; + let mockMembershipRepo: TeamMembershipRepository; let mockLogger: Logger; beforeEach(() => { @@ -16,7 +18,7 @@ describe('GetDriverTeamUseCase', () => { update: vi.fn(), delete: vi.fn(), exists: vi.fn(), - }; + } as unknown as TeamRepository; mockMembershipRepo = { getActiveMembershipForDriver: vi.fn(), @@ -28,7 +30,7 @@ describe('GetDriverTeamUseCase', () => { countByTeamId: vi.fn(), saveJoinRequest: vi.fn(), removeJoinRequest: vi.fn(), - }; + } as unknown as TeamMembershipRepository; mockLogger = { debug: vi.fn(), diff --git a/core/racing/application/use-cases/GetEntitySponsorshipPricingUseCase.test.ts b/core/racing/application/use-cases/GetEntitySponsorshipPricingUseCase.test.ts index 63a9e3490..84490804d 100644 --- a/core/racing/application/use-cases/GetEntitySponsorshipPricingUseCase.test.ts +++ b/core/racing/application/use-cases/GetEntitySponsorshipPricingUseCase.test.ts @@ -5,9 +5,10 @@ import { GetEntitySponsorshipPricingUseCase, type GetEntitySponsorshipPricingInput } from './GetEntitySponsorshipPricingUseCase'; +import type { SponsorshipPricingRepository } from '../../domain/repositories/SponsorshipPricingRepository'; describe('GetEntitySponsorshipPricingUseCase', () => { - let mockSponsorshipPricingRepo: any; + let mockSponsorshipPricingRepo: SponsorshipPricingRepository; let mockLogger: Logger; let mockFindByEntity: Mock; @@ -22,7 +23,7 @@ describe('GetEntitySponsorshipPricingUseCase', () => { save: vi.fn(), exists: vi.fn(), findAcceptingApplications: vi.fn(), - }; + } as unknown as SponsorshipPricingRepository; mockLogger = { debug: vi.fn(), info: vi.fn(), @@ -32,7 +33,7 @@ describe('GetEntitySponsorshipPricingUseCase', () => { }); it('should return PRICING_NOT_CONFIGURED when no pricing found', async () => { - const useCase = new GetEntitySponsorshipPricingUseCase(mockSponsorshipPricingRepo as any, + const useCase = new GetEntitySponsorshipPricingUseCase(mockSponsorshipPricingRepo, mockLogger); const dto: GetEntitySponsorshipPricingInput = { @@ -54,7 +55,7 @@ describe('GetEntitySponsorshipPricingUseCase', () => { }); it('should return pricing data when found', async () => { - const useCase = new GetEntitySponsorshipPricingUseCase(mockSponsorshipPricingRepo as any, + const useCase = new GetEntitySponsorshipPricingUseCase(mockSponsorshipPricingRepo, mockLogger); const dto: GetEntitySponsorshipPricingInput = { @@ -106,7 +107,7 @@ describe('GetEntitySponsorshipPricingUseCase', () => { }); it('should return error when repository throws', async () => { - const useCase = new GetEntitySponsorshipPricingUseCase(mockSponsorshipPricingRepo as any, + const useCase = new GetEntitySponsorshipPricingUseCase(mockSponsorshipPricingRepo, mockLogger); const dto: GetEntitySponsorshipPricingInput = { diff --git a/core/racing/application/use-cases/GetLeagueAdminPermissionsUseCase.test.ts b/core/racing/application/use-cases/GetLeagueAdminPermissionsUseCase.test.ts index a255bb789..d1f10bbf4 100644 --- a/core/racing/application/use-cases/GetLeagueAdminPermissionsUseCase.test.ts +++ b/core/racing/application/use-cases/GetLeagueAdminPermissionsUseCase.test.ts @@ -6,10 +6,12 @@ import { type GetLeagueAdminPermissionsErrorCode, type GetLeagueAdminPermissionsInput } from './GetLeagueAdminPermissionsUseCase'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; describe('GetLeagueAdminPermissionsUseCase', () => { - let mockLeagueRepo: any; - let mockMembershipRepo: any; + let mockLeagueRepo: LeagueRepository; + let mockMembershipRepo: LeagueMembershipRepository; let mockFindById: Mock; let mockGetMembership: Mock; const logger: Logger = { @@ -31,7 +33,7 @@ describe('GetLeagueAdminPermissionsUseCase', () => { exists: vi.fn(), findByOwnerId: vi.fn(), searchByName: vi.fn(), - }; + } as unknown as LeagueRepository; mockMembershipRepo = { getMembership: mockGetMembership, @@ -43,7 +45,7 @@ describe('GetLeagueAdminPermissionsUseCase', () => { removeJoinRequest: vi.fn(), countByLeagueId: vi.fn(), getLeagueMembers: vi.fn(), - }; + } as unknown as LeagueMembershipRepository; }); const createUseCase = () => new GetLeagueAdminPermissionsUseCase(mockLeagueRepo, @@ -107,7 +109,7 @@ describe('GetLeagueAdminPermissionsUseCase', () => { }); it('returns admin permissions for admin role', async () => { - const league = { id: 'league1' } as any; + const league = { id: 'league1' } as unknown as League; mockFindById.mockResolvedValue(league); mockGetMembership.mockResolvedValue({ status: 'active', role: 'admin' }); @@ -127,7 +129,7 @@ describe('GetLeagueAdminPermissionsUseCase', () => { }); it('returns admin permissions for owner role', async () => { - const league = { id: 'league1' } as any; + const league = { id: 'league1' } as unknown as League; mockFindById.mockResolvedValue(league); mockGetMembership.mockResolvedValue({ status: 'active', role: 'owner' }); diff --git a/core/racing/application/use-cases/GetLeagueJoinRequestsUseCase.test.ts b/core/racing/application/use-cases/GetLeagueJoinRequestsUseCase.test.ts index ca388ea94..0d8f56f04 100644 --- a/core/racing/application/use-cases/GetLeagueJoinRequestsUseCase.test.ts +++ b/core/racing/application/use-cases/GetLeagueJoinRequestsUseCase.test.ts @@ -2,7 +2,6 @@ import { describe, it, expect, beforeEach, vi, type Mock } from 'vitest'; import { GetLeagueJoinRequestsUseCase, type GetLeagueJoinRequestsInput, - type GetLeagueJoinRequestsResult, type GetLeagueJoinRequestsErrorCode, } from './GetLeagueJoinRequestsUseCase'; import { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; diff --git a/core/racing/application/use-cases/GetLeagueProtestsUseCase.test.ts b/core/racing/application/use-cases/GetLeagueProtestsUseCase.test.ts index 436d62076..0f85cf495 100644 --- a/core/racing/application/use-cases/GetLeagueProtestsUseCase.test.ts +++ b/core/racing/application/use-cases/GetLeagueProtestsUseCase.test.ts @@ -1,7 +1,6 @@ import { describe, it, expect, beforeEach, vi, Mock } from 'vitest'; import { GetLeagueProtestsUseCase, - GetLeagueProtestsResult, GetLeagueProtestsInput, GetLeagueProtestsErrorCode, } from './GetLeagueProtestsUseCase'; diff --git a/core/racing/application/use-cases/GetLeagueRosterJoinRequestsUseCase.test.ts b/core/racing/application/use-cases/GetLeagueRosterJoinRequestsUseCase.test.ts index c7a2d8135..e454c1aeb 100644 --- a/core/racing/application/use-cases/GetLeagueRosterJoinRequestsUseCase.test.ts +++ b/core/racing/application/use-cases/GetLeagueRosterJoinRequestsUseCase.test.ts @@ -2,7 +2,6 @@ import { describe, it, expect, beforeEach, vi, type Mock } from 'vitest'; import { GetLeagueRosterJoinRequestsUseCase, type GetLeagueRosterJoinRequestsInput, - type GetLeagueRosterJoinRequestsResult, type GetLeagueRosterJoinRequestsErrorCode, } from './GetLeagueRosterJoinRequestsUseCase'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; diff --git a/core/racing/application/use-cases/GetLeagueRosterMembersUseCase.test.ts b/core/racing/application/use-cases/GetLeagueRosterMembersUseCase.test.ts index 67c739997..1c1f48cc0 100644 --- a/core/racing/application/use-cases/GetLeagueRosterMembersUseCase.test.ts +++ b/core/racing/application/use-cases/GetLeagueRosterMembersUseCase.test.ts @@ -2,7 +2,6 @@ import { describe, it, expect, beforeEach, vi, type Mock } from 'vitest'; import { GetLeagueRosterMembersUseCase, type GetLeagueRosterMembersInput, - type GetLeagueRosterMembersResult, type GetLeagueRosterMembersErrorCode, } from './GetLeagueRosterMembersUseCase'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; diff --git a/core/racing/application/use-cases/GetLeagueScoringConfigUseCase.test.ts b/core/racing/application/use-cases/GetLeagueScoringConfigUseCase.test.ts index e9815357d..d691c1be4 100644 --- a/core/racing/application/use-cases/GetLeagueScoringConfigUseCase.test.ts +++ b/core/racing/application/use-cases/GetLeagueScoringConfigUseCase.test.ts @@ -1,4 +1,4 @@ -import { describe, it, expect, beforeEach, vi } from 'vitest'; +import { describe, it, expect, beforeEach, vi, type Mock } from 'vitest'; import { GetLeagueScoringConfigUseCase } from './GetLeagueScoringConfigUseCase'; import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; @@ -12,27 +12,11 @@ import type { LeagueScoringPreset } from '../../domain/types/LeagueScoringPreset describe('GetLeagueScoringConfigUseCase', () => { let useCase: GetLeagueScoringConfigUseCase; - let mockLeagueRepository: { - findById: any; - exists: any; - save: any; - findAll: any; - }; - let mockSeasonRepository: { - findByLeagueId: any; - save: any; - findById: any; - }; - let mockLeagueScoringConfigRepository: { - findBySeasonId: any; - save: any; - }; - let mockGameRepository: { - findById: any; - save: any; - findAll: any; - }; - let mockPresetProvider: { getPresetById: any }; + let mockLeagueRepository: LeagueRepository; + let mockSeasonRepository: SeasonRepository; + let mockLeagueScoringConfigRepository: LeagueScoringConfigRepository; + let mockGameRepository: GameRepository; + let mockPresetProvider: { getPresetById: Mock }; beforeEach(() => { mockLeagueRepository = { @@ -40,35 +24,35 @@ describe('GetLeagueScoringConfigUseCase', () => { exists: vi.fn(), save: vi.fn(), findAll: vi.fn(), - }; + } as unknown as LeagueRepository; mockSeasonRepository = { findByLeagueId: vi.fn(), save: vi.fn(), findById: vi.fn(), - }; + } as unknown as SeasonRepository; mockLeagueScoringConfigRepository = { findBySeasonId: vi.fn(), save: vi.fn(), - }; + } as unknown as LeagueScoringConfigRepository; mockGameRepository = { findById: vi.fn(), save: vi.fn(), findAll: vi.fn(), - }; + } as unknown as GameRepository; mockPresetProvider = { getPresetById: vi.fn(), }; useCase = new GetLeagueScoringConfigUseCase( - mockLeagueRepository as unknown as LeagueRepository, - mockSeasonRepository as unknown as SeasonRepository, - mockLeagueScoringConfigRepository as unknown as LeagueScoringConfigRepository, - mockGameRepository as unknown as GameRepository, - mockPresetProvider as any, + mockLeagueRepository, + mockSeasonRepository, + mockLeagueScoringConfigRepository, + mockGameRepository, + mockPresetProvider as unknown as { getPresetById: (id: string) => LeagueScoringPreset | undefined }, ); }); @@ -96,7 +80,7 @@ describe('GetLeagueScoringConfigUseCase', () => { const result = await useCase.execute({ leagueId: 'league-1' }); expect(result.isOk()).toBe(true); - const value = result.unwrap() as any; + const value = result.unwrap(); expect(value.league).toBe(mockLeague); expect(value.season).toBe(mockSeason); expect(value.scoringConfig).toBe(mockScoringConfig); @@ -221,7 +205,7 @@ describe('GetLeagueScoringConfigUseCase', () => { const result = await useCase.execute({ leagueId: 'league-1' }); expect(result.isOk()).toBe(true); - const value = result.unwrap() as any; + const value = result.unwrap(); expect(value.preset).toBeUndefined(); }); diff --git a/core/racing/application/use-cases/GetLeagueSeasonsUseCase.test.ts b/core/racing/application/use-cases/GetLeagueSeasonsUseCase.test.ts index ee4ee88e7..70f737a05 100644 --- a/core/racing/application/use-cases/GetLeagueSeasonsUseCase.test.ts +++ b/core/racing/application/use-cases/GetLeagueSeasonsUseCase.test.ts @@ -2,14 +2,13 @@ import { describe, it, expect, beforeEach, vi, type Mock } from 'vitest'; import { GetLeagueSeasonsUseCase, type GetLeagueSeasonsInput, - type GetLeagueSeasonsResult, type GetLeagueSeasonsErrorCode, } from './GetLeagueSeasonsUseCase'; -import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; -import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; import { Season } from '../../domain/entities/season/Season'; import { League } from '../../domain/entities/League'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; +import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; describe('GetLeagueSeasonsUseCase', () => { let useCase: GetLeagueSeasonsUseCase; @@ -31,8 +30,10 @@ describe('GetLeagueSeasonsUseCase', () => { exists: vi.fn(), }; - useCase = new GetLeagueSeasonsUseCase(leagueRepository as any, - seasonRepository as any); + useCase = new GetLeagueSeasonsUseCase( + leagueRepository as unknown as LeagueRepository, + seasonRepository as unknown as SeasonRepository + ); }); it('should return seasons with correct isParallelActive flags on success', async () => { diff --git a/core/racing/application/use-cases/GetLeagueStandingsUseCase.test.ts b/core/racing/application/use-cases/GetLeagueStandingsUseCase.test.ts index de5906851..3a3d07d01 100644 --- a/core/racing/application/use-cases/GetLeagueStandingsUseCase.test.ts +++ b/core/racing/application/use-cases/GetLeagueStandingsUseCase.test.ts @@ -3,11 +3,12 @@ import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorC import { GetLeagueStandingsUseCase, type GetLeagueStandingsInput, - type GetLeagueStandingsResult, type GetLeagueStandingsErrorCode, } from './GetLeagueStandingsUseCase'; import { Standing } from '../../domain/entities/Standing'; import { Driver } from '../../domain/entities/Driver'; +import type { StandingRepository } from '../../domain/repositories/StandingRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; describe('GetLeagueStandingsUseCase', () => { let useCase: GetLeagueStandingsUseCase; @@ -26,8 +27,8 @@ describe('GetLeagueStandingsUseCase', () => { findById: vi.fn(), }; - useCase = new GetLeagueStandingsUseCase(standingRepository as any, - driverRepository as any); + useCase = new GetLeagueStandingsUseCase(standingRepository as unknown as StandingRepository, + driverRepository as unknown as DriverRepository); }); it('should return standings with drivers mapped', async () => { diff --git a/core/racing/application/use-cases/GetLeagueStatsUseCase.test.ts b/core/racing/application/use-cases/GetLeagueStatsUseCase.test.ts index e64c66196..dde5d7be8 100644 --- a/core/racing/application/use-cases/GetLeagueStatsUseCase.test.ts +++ b/core/racing/application/use-cases/GetLeagueStatsUseCase.test.ts @@ -2,7 +2,6 @@ import { describe, it, expect, beforeEach, vi, type Mock } from 'vitest'; import { GetLeagueStatsUseCase, type GetLeagueStatsInput, - type GetLeagueStatsResult, type GetLeagueStatsErrorCode, } from './GetLeagueStatsUseCase'; import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; @@ -27,8 +26,8 @@ describe('GetLeagueStatsUseCase', () => { findByLeagueId: vi.fn(), }; getDriverRating = vi.fn(); - useCase = new GetLeagueStatsUseCase(leagueMembershipRepository as any, - raceRepository as any, + useCase = new GetLeagueStatsUseCase(leagueMembershipRepository as unknown as LeagueMembershipRepository, + raceRepository as unknown as RaceRepository, getDriverRating); }); diff --git a/core/racing/application/use-cases/GetLeagueWalletUseCase.test.ts b/core/racing/application/use-cases/GetLeagueWalletUseCase.test.ts index abe598bf9..28d1e7552 100644 --- a/core/racing/application/use-cases/GetLeagueWalletUseCase.test.ts +++ b/core/racing/application/use-cases/GetLeagueWalletUseCase.test.ts @@ -1,7 +1,6 @@ import { describe, it, expect, beforeEach, vi, type Mock } from 'vitest'; import { GetLeagueWalletUseCase, - type GetLeagueWalletResult, type GetLeagueWalletInput, type GetLeagueWalletErrorCode, } from './GetLeagueWalletUseCase'; @@ -40,9 +39,9 @@ describe('GetLeagueWalletUseCase', () => { findByWalletId: vi.fn(), }; - useCase = new GetLeagueWalletUseCase(leagueRepository as any, - leagueWalletRepository as any, - transactionRepository as any); + useCase = new GetLeagueWalletUseCase(leagueRepository as unknown as LeagueRepository, + leagueWalletRepository as unknown as LeagueWalletRepository, + transactionRepository as unknown as TransactionRepository); }); it('returns mapped wallet data when wallet exists', async () => { diff --git a/core/racing/application/use-cases/GetPendingSponsorshipRequestsUseCase.test.ts b/core/racing/application/use-cases/GetPendingSponsorshipRequestsUseCase.test.ts index 6a576c24c..669829215 100644 --- a/core/racing/application/use-cases/GetPendingSponsorshipRequestsUseCase.test.ts +++ b/core/racing/application/use-cases/GetPendingSponsorshipRequestsUseCase.test.ts @@ -1,7 +1,6 @@ import { describe, it, expect, beforeEach, vi, Mock } from 'vitest'; import { GetPendingSponsorshipRequestsUseCase, - type GetPendingSponsorshipRequestsResult, type GetPendingSponsorshipRequestsInput, type GetPendingSponsorshipRequestsErrorCode, } from './GetPendingSponsorshipRequestsUseCase'; diff --git a/core/racing/application/use-cases/GetProfileOverviewUseCase.test.ts b/core/racing/application/use-cases/GetProfileOverviewUseCase.test.ts index 0b6bcf201..d43a6e2ba 100644 --- a/core/racing/application/use-cases/GetProfileOverviewUseCase.test.ts +++ b/core/racing/application/use-cases/GetProfileOverviewUseCase.test.ts @@ -1,13 +1,16 @@ import { describe, it, expect, beforeEach, vi, type Mock } from 'vitest'; import { GetProfileOverviewUseCase, - type GetProfileOverviewResult, } from './GetProfileOverviewUseCase'; import { DriverRepository } from '../../domain/repositories/DriverRepository'; import { TeamRepository } from '../../domain/repositories/TeamRepository'; import { TeamMembershipRepository } from '../../domain/repositories/TeamMembershipRepository'; import { SocialGraphRepository } from '@core/social/domain/repositories/SocialGraphRepository'; import { Driver } from '../../domain/entities/Driver'; +import type { DriverStatsUseCase } from './DriverStatsUseCase'; +import type { RankingUseCase } from './RankingUseCase'; +import type { DriverExtendedProfileProvider } from '../ports/DriverExtendedProfileProvider'; + describe('GetProfileOverviewUseCase', () => { let useCase: GetProfileOverviewUseCase; let driverRepository: { @@ -64,9 +67,9 @@ describe('GetProfileOverviewUseCase', () => { teamRepository as unknown as TeamRepository, teamMembershipRepository as unknown as TeamMembershipRepository, socialRepository as unknown as SocialGraphRepository, - driverExtendedProfileProvider, - driverStatsUseCase as unknown as any, - rankingUseCase as unknown as any); + driverExtendedProfileProvider as unknown as DriverExtendedProfileProvider, + driverStatsUseCase as unknown as DriverStatsUseCase, + rankingUseCase as unknown as RankingUseCase); }); it('should return profile overview for existing driver', async () => { diff --git a/core/racing/application/use-cases/GetRaceProtestsUseCase.test.ts b/core/racing/application/use-cases/GetRaceProtestsUseCase.test.ts index a4cb4c2f4..395cc6443 100644 --- a/core/racing/application/use-cases/GetRaceProtestsUseCase.test.ts +++ b/core/racing/application/use-cases/GetRaceProtestsUseCase.test.ts @@ -2,7 +2,6 @@ import { describe, it, expect, beforeEach, vi, type Mock } from 'vitest'; import { GetRaceProtestsUseCase, type GetRaceProtestsInput, - type GetRaceProtestsResult, type GetRaceProtestsErrorCode, } from './GetRaceProtestsUseCase'; import { Protest } from '../../domain/entities/Protest'; diff --git a/core/racing/application/use-cases/GetRaceResultsDetailUseCase.test.ts b/core/racing/application/use-cases/GetRaceResultsDetailUseCase.test.ts index a96a6669c..45063b6c4 100644 --- a/core/racing/application/use-cases/GetRaceResultsDetailUseCase.test.ts +++ b/core/racing/application/use-cases/GetRaceResultsDetailUseCase.test.ts @@ -2,7 +2,6 @@ import { describe, it, expect, beforeEach, vi, type Mock } from 'vitest'; import { GetRaceResultsDetailUseCase, type GetRaceResultsDetailInput, - type GetRaceResultsDetailResult, type GetRaceResultsDetailErrorCode, } from './GetRaceResultsDetailUseCase'; import type { RaceRepository } from '../../domain/repositories/RaceRepository'; diff --git a/core/racing/application/use-cases/GetRaceWithSOFUseCase.test.ts b/core/racing/application/use-cases/GetRaceWithSOFUseCase.test.ts index a7dd7a86c..0e759f890 100644 --- a/core/racing/application/use-cases/GetRaceWithSOFUseCase.test.ts +++ b/core/racing/application/use-cases/GetRaceWithSOFUseCase.test.ts @@ -39,7 +39,7 @@ describe('GetRaceWithSOFUseCase', () => { raceRepository as unknown as RaceRepository, registrationRepository as unknown as RaceRegistrationRepository, resultRepository as unknown as ResultRepository, - getDriverRating as any + getDriverRating as unknown as (input: { driverId: string }) => Promise<{ rating: number | null; ratingChange: number | null }> ); }); diff --git a/core/racing/application/use-cases/GetRacesPageDataUseCase.test.ts b/core/racing/application/use-cases/GetRacesPageDataUseCase.test.ts index d2b5de33a..3733cb1e4 100644 --- a/core/racing/application/use-cases/GetRacesPageDataUseCase.test.ts +++ b/core/racing/application/use-cases/GetRacesPageDataUseCase.test.ts @@ -8,6 +8,8 @@ import { type GetRacesPageDataInput, type GetRacesPageDataResult, } from './GetRacesPageDataUseCase'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; describe('GetRacesPageDataUseCase', () => { let useCase: GetRacesPageDataUseCase; diff --git a/core/racing/application/use-cases/GetSponsorDashboardUseCase.test.ts b/core/racing/application/use-cases/GetSponsorDashboardUseCase.test.ts index 5893ae6cc..88039172e 100644 --- a/core/racing/application/use-cases/GetSponsorDashboardUseCase.test.ts +++ b/core/racing/application/use-cases/GetSponsorDashboardUseCase.test.ts @@ -2,7 +2,6 @@ import { describe, it, expect, beforeEach, vi, Mock } from 'vitest'; import { GetSponsorDashboardUseCase, type GetSponsorDashboardInput, - type GetSponsorDashboardResult, type GetSponsorDashboardErrorCode, } from './GetSponsorDashboardUseCase'; import { SponsorRepository } from '../../domain/repositories/SponsorRepository'; diff --git a/core/racing/application/use-cases/GetSponsorSponsorshipsUseCase.test.ts b/core/racing/application/use-cases/GetSponsorSponsorshipsUseCase.test.ts index 01b6d7e95..c13bc1096 100644 --- a/core/racing/application/use-cases/GetSponsorSponsorshipsUseCase.test.ts +++ b/core/racing/application/use-cases/GetSponsorSponsorshipsUseCase.test.ts @@ -2,7 +2,6 @@ import { describe, it, expect, beforeEach, vi, Mock } from 'vitest'; import { GetSponsorSponsorshipsUseCase, type GetSponsorSponsorshipsInput, - type GetSponsorSponsorshipsResult, type GetSponsorSponsorshipsErrorCode, } from './GetSponsorSponsorshipsUseCase'; import { SponsorRepository } from '../../domain/repositories/SponsorRepository'; diff --git a/core/racing/application/use-cases/GetSponsorUseCase.test.ts b/core/racing/application/use-cases/GetSponsorUseCase.test.ts index c2288df15..c1105ecbe 100644 --- a/core/racing/application/use-cases/GetSponsorUseCase.test.ts +++ b/core/racing/application/use-cases/GetSponsorUseCase.test.ts @@ -2,7 +2,6 @@ import { beforeEach, describe, expect, it, vi, type Mock } from 'vitest'; import { GetSponsorUseCase, type GetSponsorInput, - type GetSponsorResult, type GetSponsorErrorCode, } from './GetSponsorUseCase'; import type { SponsorRepository } from '../../domain/repositories/SponsorRepository'; diff --git a/core/racing/application/use-cases/GetSponsorsUseCase.test.ts b/core/racing/application/use-cases/GetSponsorsUseCase.test.ts index 330bf5dce..b3631f00b 100644 --- a/core/racing/application/use-cases/GetSponsorsUseCase.test.ts +++ b/core/racing/application/use-cases/GetSponsorsUseCase.test.ts @@ -1,6 +1,7 @@ -import { describe, it, expect, beforeEach, vi, Mock } from 'vitest'; +import { describe, it, expect, beforeEach, vi, type Mock } from 'vitest'; import { GetSponsorsUseCase } from './GetSponsorsUseCase'; import { Sponsor } from '../../domain/entities/sponsor/Sponsor'; +import type { SponsorRepository } from '../../domain/repositories/SponsorRepository'; describe('GetSponsorsUseCase', () => { let useCase: GetSponsorsUseCase; @@ -12,7 +13,7 @@ describe('GetSponsorsUseCase', () => { sponsorRepository = { findAll: vi.fn(), }; - useCase = new GetSponsorsUseCase(sponsorRepository as any); + useCase = new GetSponsorsUseCase(sponsorRepository as unknown as SponsorRepository); }); it('should return all sponsors', async () => { diff --git a/core/racing/application/use-cases/GetTeamDetailsUseCase.test.ts b/core/racing/application/use-cases/GetTeamDetailsUseCase.test.ts index e5e920316..eeca06bd2 100644 --- a/core/racing/application/use-cases/GetTeamDetailsUseCase.test.ts +++ b/core/racing/application/use-cases/GetTeamDetailsUseCase.test.ts @@ -2,7 +2,6 @@ import { describe, it, expect, beforeEach, vi, Mock } from 'vitest'; import { GetTeamDetailsUseCase, type GetTeamDetailsInput, - type GetTeamDetailsResult, type GetTeamDetailsErrorCode, } from './GetTeamDetailsUseCase'; import { Team } from '../../domain/entities/Team'; @@ -25,8 +24,8 @@ describe('GetTeamDetailsUseCase', () => { membershipRepository = { getMembership: vi.fn(), }; - useCase = new GetTeamDetailsUseCase(teamRepository as any, - membershipRepository as any); + useCase = new GetTeamDetailsUseCase(teamRepository as unknown as TeamRepository, + membershipRepository as unknown as TeamMembershipRepository); }); it('should return team details with membership', async () => { diff --git a/core/racing/application/use-cases/GetTeamsLeaderboardUseCase.test.ts b/core/racing/application/use-cases/GetTeamsLeaderboardUseCase.test.ts index c9032b4b9..dee1fc9f2 100644 --- a/core/racing/application/use-cases/GetTeamsLeaderboardUseCase.test.ts +++ b/core/racing/application/use-cases/GetTeamsLeaderboardUseCase.test.ts @@ -9,7 +9,6 @@ import { import { TeamRepository } from '../../domain/repositories/TeamRepository'; import { TeamMembershipRepository } from '../../domain/repositories/TeamMembershipRepository'; -import type { Logger } from '@core/shared/domain/Logger'; describe('GetTeamsLeaderboardUseCase', () => { let useCase: GetTeamsLeaderboardUseCase; @@ -46,7 +45,7 @@ describe('GetTeamsLeaderboardUseCase', () => { useCase = new GetTeamsLeaderboardUseCase( teamRepository as unknown as TeamRepository, teamMembershipRepository as unknown as TeamMembershipRepository, - getDriverStats as any, + getDriverStats as unknown as (driverId: string) => { rating: number | null; wins: number; totalRaces: number } | null, logger as unknown as Logger ); }); diff --git a/core/racing/application/use-cases/GetTotalDriversUseCase.test.ts b/core/racing/application/use-cases/GetTotalDriversUseCase.test.ts index 99593937d..41bb7e389 100644 --- a/core/racing/application/use-cases/GetTotalDriversUseCase.test.ts +++ b/core/racing/application/use-cases/GetTotalDriversUseCase.test.ts @@ -3,7 +3,6 @@ import { GetTotalDriversUseCase, GetTotalDriversInput, GetTotalDriversErrorCode, - GetTotalDriversResult, } from './GetTotalDriversUseCase'; import { DriverRepository } from '../../domain/repositories/DriverRepository'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; diff --git a/core/racing/application/use-cases/GetTotalLeaguesUseCase.test.ts b/core/racing/application/use-cases/GetTotalLeaguesUseCase.test.ts index bbb06f97e..bd5a2cb56 100644 --- a/core/racing/application/use-cases/GetTotalLeaguesUseCase.test.ts +++ b/core/racing/application/use-cases/GetTotalLeaguesUseCase.test.ts @@ -2,7 +2,6 @@ import { describe, it, expect, beforeEach, vi, Mock } from 'vitest'; import { GetTotalLeaguesUseCase, type GetTotalLeaguesInput, - type GetTotalLeaguesResult, type GetTotalLeaguesErrorCode, } from './GetTotalLeaguesUseCase'; import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; diff --git a/core/racing/application/use-cases/GetTotalRacesUseCase.test.ts b/core/racing/application/use-cases/GetTotalRacesUseCase.test.ts index 2af30a8ad..70b2dca86 100644 --- a/core/racing/application/use-cases/GetTotalRacesUseCase.test.ts +++ b/core/racing/application/use-cases/GetTotalRacesUseCase.test.ts @@ -2,7 +2,6 @@ import { describe, it, expect, beforeEach, vi, type Mock } from 'vitest'; import { GetTotalRacesUseCase, type GetTotalRacesInput, - type GetTotalRacesResult, type GetTotalRacesErrorCode, } from './GetTotalRacesUseCase'; import type { RaceRepository } from '../../domain/repositories/RaceRepository'; diff --git a/core/racing/application/use-cases/IsDriverRegisteredForRaceUseCase.test.ts b/core/racing/application/use-cases/IsDriverRegisteredForRaceUseCase.test.ts index af9262990..b720e3ed0 100644 --- a/core/racing/application/use-cases/IsDriverRegisteredForRaceUseCase.test.ts +++ b/core/racing/application/use-cases/IsDriverRegisteredForRaceUseCase.test.ts @@ -1,10 +1,13 @@ import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import { beforeEach, describe, expect, it, Mock, vi } from 'vitest'; +import { beforeEach, describe, expect, it, type Mock, vi } from 'vitest'; import { IsDriverRegisteredForRaceUseCase, type IsDriverRegisteredForRaceErrorCode, type IsDriverRegisteredForRaceInput } from './IsDriverRegisteredForRaceUseCase'; +import type { RaceRegistrationRepository } from '../../domain/repositories/RaceRegistrationRepository'; +import type { Logger } from '@core/shared/domain/Logger'; + describe('IsDriverRegisteredForRaceUseCase', () => { let useCase: IsDriverRegisteredForRaceUseCase; let registrationRepository: { @@ -26,8 +29,8 @@ describe('IsDriverRegisteredForRaceUseCase', () => { warn: vi.fn(), error: vi.fn(), }; - useCase = new IsDriverRegisteredForRaceUseCase(registrationRepository as any, - logger as any); + useCase = new IsDriverRegisteredForRaceUseCase(registrationRepository as unknown as RaceRegistrationRepository, + logger as unknown as Logger); }); it('should return true when driver is registered', async () => { diff --git a/core/racing/application/use-cases/JoinLeagueUseCase.test.ts b/core/racing/application/use-cases/JoinLeagueUseCase.test.ts index b60f99077..f16e8d59c 100644 --- a/core/racing/application/use-cases/JoinLeagueUseCase.test.ts +++ b/core/racing/application/use-cases/JoinLeagueUseCase.test.ts @@ -1,5 +1,5 @@ import { describe, it, expect, beforeEach, vi, Mock } from 'vitest'; -import { JoinLeagueUseCase, type JoinLeagueResult, type JoinLeagueInput, type JoinLeagueErrorCode } from './JoinLeagueUseCase'; +import { JoinLeagueUseCase, type JoinLeagueInput, type JoinLeagueErrorCode } from './JoinLeagueUseCase'; import { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; import { LeagueMembership } from '../../domain/entities/LeagueMembership'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; diff --git a/core/racing/application/use-cases/LeaveTeamUseCase.test.ts b/core/racing/application/use-cases/LeaveTeamUseCase.test.ts index 4a4cd8a77..b9740c3e2 100644 --- a/core/racing/application/use-cases/LeaveTeamUseCase.test.ts +++ b/core/racing/application/use-cases/LeaveTeamUseCase.test.ts @@ -2,7 +2,6 @@ import { describe, it, expect, beforeEach, vi, type Mock } from 'vitest'; import { LeaveTeamUseCase, type LeaveTeamInput, - type LeaveTeamResult, type LeaveTeamErrorCode, } from './LeaveTeamUseCase'; import type { TeamMembershipRepository } from '../../domain/repositories/TeamMembershipRepository'; diff --git a/core/racing/application/use-cases/ListLeagueScoringPresetsUseCase.test.ts b/core/racing/application/use-cases/ListLeagueScoringPresetsUseCase.test.ts index 88101f995..bb91693b2 100644 --- a/core/racing/application/use-cases/ListLeagueScoringPresetsUseCase.test.ts +++ b/core/racing/application/use-cases/ListLeagueScoringPresetsUseCase.test.ts @@ -1,12 +1,11 @@ -import { describe, it, expect, beforeEach, vi, type Mock } from 'vitest'; +import { describe, it, expect, beforeEach, vi } from 'vitest'; import { ListLeagueScoringPresetsUseCase, type ListLeagueScoringPresetsInput, - type ListLeagueScoringPresetsResult, type ListLeagueScoringPresetsErrorCode, } from './ListLeagueScoringPresetsUseCase'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import type { Result } from '@core/shared/domain/Result'; +import type { LeagueScoringPreset } from '../../domain/types/LeagueScoringPreset'; describe('ListLeagueScoringPresetsUseCase', () => { let useCase: ListLeagueScoringPresetsUseCase; @@ -48,7 +47,7 @@ describe('ListLeagueScoringPresetsUseCase', () => { }, ]; - useCase = new ListLeagueScoringPresetsUseCase(mockPresets as any); + useCase = new ListLeagueScoringPresetsUseCase(mockPresets as unknown as LeagueScoringPreset[]); }); it('should list presets successfully', async () => { @@ -102,7 +101,7 @@ describe('ListLeagueScoringPresetsUseCase', () => { map: () => { throw new Error('Repository failure'); }, - } as any; + } as unknown as LeagueScoringPreset[]; useCase = new ListLeagueScoringPresetsUseCase(failingPresets); diff --git a/core/racing/application/use-cases/ListSeasonsForLeagueUseCase.test.ts b/core/racing/application/use-cases/ListSeasonsForLeagueUseCase.test.ts index 24b0af14f..ee31fdf5b 100644 --- a/core/racing/application/use-cases/ListSeasonsForLeagueUseCase.test.ts +++ b/core/racing/application/use-cases/ListSeasonsForLeagueUseCase.test.ts @@ -2,7 +2,6 @@ import { describe, it, expect, beforeEach, vi, type Mock } from 'vitest'; import { ListSeasonsForLeagueUseCase, type ListSeasonsForLeagueInput, - type ListSeasonsForLeagueResult, type ListSeasonsForLeagueErrorCode, } from './ListSeasonsForLeagueUseCase'; import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; diff --git a/core/racing/application/use-cases/ManageSeasonLifecycleUseCase.test.ts b/core/racing/application/use-cases/ManageSeasonLifecycleUseCase.test.ts index 2e151a671..642e04f26 100644 --- a/core/racing/application/use-cases/ManageSeasonLifecycleUseCase.test.ts +++ b/core/racing/application/use-cases/ManageSeasonLifecycleUseCase.test.ts @@ -1,8 +1,7 @@ -import { describe, it, expect, beforeEach, vi, Mock } from 'vitest'; +import { describe, it, expect, beforeEach, vi, type Mock } from 'vitest'; import { ManageSeasonLifecycleUseCase, type ManageSeasonLifecycleInput, - type ManageSeasonLifecycleResult, type ManageSeasonLifecycleErrorCode, } from './ManageSeasonLifecycleUseCase'; import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; @@ -28,8 +27,8 @@ describe('ManageSeasonLifecycleUseCase', () => { findById: vi.fn(), update: vi.fn(), }; - useCase = new ManageSeasonLifecycleUseCase(leagueRepository as any, - seasonRepository as any); + useCase = new ManageSeasonLifecycleUseCase(leagueRepository as unknown as LeagueRepository, + seasonRepository as unknown as SeasonRepository); }); it('applies activate → complete → archive transitions and persists state', async () => { diff --git a/core/racing/application/use-cases/QuickPenaltyUseCase.ts b/core/racing/application/use-cases/QuickPenaltyUseCase.ts index d58745128..f17de6935 100644 --- a/core/racing/application/use-cases/QuickPenaltyUseCase.ts +++ b/core/racing/application/use-cases/QuickPenaltyUseCase.ts @@ -58,7 +58,7 @@ export class QuickPenaltyUseCase { // Validate admin has authority const memberships = await this.leagueMembershipRepository.getLeagueMembers(race.leagueId); const adminMembership = memberships.find( - (m: any) => m.driverId.toString() === input.adminId && m.status.toString() === 'active' + (m) => m.driverId.toString() === input.adminId && m.status.toString() === 'active' ); if (!adminMembership || (adminMembership.role.toString() !== 'owner' && adminMembership.role.toString() !== 'admin')) { diff --git a/core/racing/application/use-cases/RecalculateChampionshipStandingsUseCase.test.ts b/core/racing/application/use-cases/RecalculateChampionshipStandingsUseCase.test.ts index 89fc31074..08dcb3a1b 100644 --- a/core/racing/application/use-cases/RecalculateChampionshipStandingsUseCase.test.ts +++ b/core/racing/application/use-cases/RecalculateChampionshipStandingsUseCase.test.ts @@ -7,6 +7,15 @@ import { type RecalculateChampionshipStandingsErrorCode, type RecalculateChampionshipStandingsInput } from './RecalculateChampionshipStandingsUseCase'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; +import type { LeagueScoringConfigRepository } from '../../domain/repositories/LeagueScoringConfigRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { ResultRepository } from '../../domain/repositories/ResultRepository'; +import type { PenaltyRepository } from '../../domain/repositories/PenaltyRepository'; +import type { ChampionshipStandingRepository } from '../../domain/repositories/ChampionshipStandingRepository'; +import type { EventScoringService } from '../../domain/services/EventScoringService'; +import type { ChampionshipAggregator } from '../../domain/services/ChampionshipAggregator'; describe('RecalculateChampionshipStandingsUseCase', () => { let useCase: RecalculateChampionshipStandingsUseCase; @@ -36,17 +45,17 @@ describe('RecalculateChampionshipStandingsUseCase', () => { info: vi.fn(), warn: vi.fn(), error: vi.fn(), - } as any; + } as unknown as Logger; - useCase = new RecalculateChampionshipStandingsUseCase(leagueRepository as any, - seasonRepository as any, - leagueScoringConfigRepository as any, - raceRepository as any, - resultRepository as any, - penaltyRepository as any, - championshipStandingRepository as any, - eventScoringService as any, - championshipAggregator as any, + useCase = new RecalculateChampionshipStandingsUseCase(leagueRepository as unknown as LeagueRepository, + seasonRepository as unknown as SeasonRepository, + leagueScoringConfigRepository as unknown as LeagueScoringConfigRepository, + raceRepository as unknown as RaceRepository, + resultRepository as unknown as ResultRepository, + penaltyRepository as unknown as PenaltyRepository, + championshipStandingRepository as unknown as ChampionshipStandingRepository, + eventScoringService as unknown as EventScoringService, + championshipAggregator as unknown as ChampionshipAggregator, logger); }); diff --git a/core/racing/application/use-cases/RecomputeTeamRatingSnapshotUseCase.test.ts b/core/racing/application/use-cases/RecomputeTeamRatingSnapshotUseCase.test.ts index 65c3037a3..0b0af1fa9 100644 --- a/core/racing/application/use-cases/RecomputeTeamRatingSnapshotUseCase.test.ts +++ b/core/racing/application/use-cases/RecomputeTeamRatingSnapshotUseCase.test.ts @@ -5,7 +5,7 @@ import { TeamRatingEvent } from '@core/racing/domain/entities/TeamRatingEvent'; import { TeamRatingEventId } from '@core/racing/domain/value-objects/TeamRatingEventId'; import { TeamRatingDimensionKey } from '@core/racing/domain/value-objects/TeamRatingDimensionKey'; import { TeamRatingDelta } from '@core/racing/domain/value-objects/TeamRatingDelta'; -import { TeamRating } from '../../domain/entities/TeamRating'; +import { TeamRating } from '../../domain/value-objects/TeamRating'; // Mock repositories class MockTeamRatingEventRepository implements TeamRatingEventRepository { @@ -28,7 +28,7 @@ class MockTeamRatingEventRepository implements TeamRatingEventRepository { return this.events.filter(e => e.teamId === teamId); } - async findEventsPaginated(teamId: string): Promise { + async findEventsPaginated(teamId: string): Promise> { const events = await this.getAllByTeamId(teamId); return { items: events, diff --git a/core/racing/application/use-cases/RecordTeamRaceRatingEventsUseCase.test.ts b/core/racing/application/use-cases/RecordTeamRaceRatingEventsUseCase.test.ts index bab3fe80a..b73e18fd0 100644 --- a/core/racing/application/use-cases/RecordTeamRaceRatingEventsUseCase.test.ts +++ b/core/racing/application/use-cases/RecordTeamRaceRatingEventsUseCase.test.ts @@ -6,14 +6,14 @@ import { AppendTeamRatingEventsUseCase } from './AppendTeamRatingEventsUseCase'; import { TeamDrivingRaceFactsDto } from '@core/racing/domain/services/TeamDrivingRatingEventFactory'; import { TeamRatingEvent } from '@core/racing/domain/entities/TeamRatingEvent'; import { TeamRatingEventId } from '@core/racing/domain/value-objects/TeamRatingEventId'; -import { TeamRating } from '../../domain/entities/TeamRating'; +import { TeamRating } from '../../domain/value-objects/TeamRating'; import { describe, it, expect, beforeEach, afterEach } from 'vitest'; // Mock repositories class MockTeamRaceResultsProvider implements TeamRaceResultsProvider { private results: TeamDrivingRaceFactsDto | null = null; - async getTeamRaceResults(_raceId: string): Promise { + async getTeamRaceResults(): Promise { return this.results; } @@ -42,7 +42,7 @@ class MockTeamRatingEventRepository implements TeamRatingEventRepository { return this.events.filter(e => e.teamId === teamId); } - async findEventsPaginated(teamId: string): Promise { + async findEventsPaginated(teamId: string): Promise> { const events = await this.getAllByTeamId(teamId); return { items: events, @@ -319,7 +319,6 @@ describe('RecordTeamRaceRatingEventsUseCase', () => { mockResultsProvider.setResults(raceResults); // Mock repository to throw error - const originalSave = mockEventRepo.save.bind(mockEventRepo); mockEventRepo.save = async () => { throw new Error('Repository error'); }; diff --git a/core/racing/application/use-cases/RejectLeagueJoinRequestUseCase.test.ts b/core/racing/application/use-cases/RejectLeagueJoinRequestUseCase.test.ts index 51e688ced..eb2a9a5fc 100644 --- a/core/racing/application/use-cases/RejectLeagueJoinRequestUseCase.test.ts +++ b/core/racing/application/use-cases/RejectLeagueJoinRequestUseCase.test.ts @@ -19,10 +19,6 @@ describe('RejectLeagueJoinRequestUseCase', () => { }); it('reject removes request only', async () => { - const output: { present: Mock } = { - present: vi.fn(), - }; - const useCase = new RejectLeagueJoinRequestUseCase(leagueMembershipRepository as unknown as LeagueMembershipRepository); leagueMembershipRepository.getJoinRequests.mockResolvedValue([ @@ -38,10 +34,6 @@ describe('RejectLeagueJoinRequestUseCase', () => { }); it('reject returns error when request missing', async () => { - const output: { present: Mock } = { - present: vi.fn(), - }; - const useCase = new RejectLeagueJoinRequestUseCase(leagueMembershipRepository as unknown as LeagueMembershipRepository); leagueMembershipRepository.getJoinRequests.mockResolvedValue([]); diff --git a/core/racing/application/use-cases/RemoveLeagueMemberUseCase.test.ts b/core/racing/application/use-cases/RemoveLeagueMemberUseCase.test.ts index 87c2f3245..a384c963d 100644 --- a/core/racing/application/use-cases/RemoveLeagueMemberUseCase.test.ts +++ b/core/racing/application/use-cases/RemoveLeagueMemberUseCase.test.ts @@ -2,7 +2,6 @@ import { describe, it, expect, beforeEach, vi, Mock } from 'vitest'; import { RemoveLeagueMemberUseCase, type RemoveLeagueMemberInput, - type RemoveLeagueMemberResult, type RemoveLeagueMemberErrorCode, } from './RemoveLeagueMemberUseCase'; import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; diff --git a/core/racing/application/use-cases/ReopenRaceUseCase.test.ts b/core/racing/application/use-cases/ReopenRaceUseCase.test.ts index a666a7408..041a19317 100644 --- a/core/racing/application/use-cases/ReopenRaceUseCase.test.ts +++ b/core/racing/application/use-cases/ReopenRaceUseCase.test.ts @@ -7,6 +7,8 @@ import { type ReopenRaceErrorCode, type ReopenRaceInput } from './ReopenRaceUseCase'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { Logger } from '@core/shared/domain/Logger'; describe('ReopenRaceUseCase', () => { let raceRepository: { @@ -34,8 +36,8 @@ describe('ReopenRaceUseCase', () => { error: vi.fn(), }; - useCase = new ReopenRaceUseCase(raceRepository as any, - logger as any); + useCase = new ReopenRaceUseCase(raceRepository as unknown as RaceRepository, + logger as unknown as Logger); }); it('returns RACE_NOT_FOUND when race does not exist', async () => { diff --git a/core/racing/application/use-cases/RequestProtestDefenseUseCase.test.ts b/core/racing/application/use-cases/RequestProtestDefenseUseCase.test.ts index 118e1b9b4..3bd1125c3 100644 --- a/core/racing/application/use-cases/RequestProtestDefenseUseCase.test.ts +++ b/core/racing/application/use-cases/RequestProtestDefenseUseCase.test.ts @@ -2,7 +2,6 @@ import { describe, it, expect, beforeEach, vi, type Mock } from 'vitest'; import { RequestProtestDefenseUseCase, type RequestProtestDefenseInput, - type RequestProtestDefenseResult, type RequestProtestDefenseErrorCode, } from './RequestProtestDefenseUseCase'; import type { ProtestRepository } from '../../domain/repositories/ProtestRepository'; diff --git a/core/racing/application/use-cases/ReviewProtestUseCase.test.ts b/core/racing/application/use-cases/ReviewProtestUseCase.test.ts index ef90e0173..7e39e29aa 100644 --- a/core/racing/application/use-cases/ReviewProtestUseCase.test.ts +++ b/core/racing/application/use-cases/ReviewProtestUseCase.test.ts @@ -1,5 +1,5 @@ import { describe, it, expect, beforeEach, vi, Mock } from 'vitest'; -import { ReviewProtestUseCase, type ReviewProtestInput, type ReviewProtestResult, type ReviewProtestErrorCode } from './ReviewProtestUseCase'; +import { ReviewProtestUseCase, type ReviewProtestInput, type ReviewProtestErrorCode } from './ReviewProtestUseCase'; import type { ProtestRepository } from '../../domain/repositories/ProtestRepository'; import type { RaceRepository } from '../../domain/repositories/RaceRepository'; import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; diff --git a/core/racing/application/use-cases/SendFinalResultsUseCase.test.ts b/core/racing/application/use-cases/SendFinalResultsUseCase.test.ts index 68777ad65..fa630bf5c 100644 --- a/core/racing/application/use-cases/SendFinalResultsUseCase.test.ts +++ b/core/racing/application/use-cases/SendFinalResultsUseCase.test.ts @@ -2,7 +2,6 @@ import { beforeEach, describe, expect, it, vi, type Mock } from 'vitest'; import { SendFinalResultsUseCase, type SendFinalResultsInput, - type SendFinalResultsResult, type SendFinalResultsErrorCode, } from './SendFinalResultsUseCase'; import type { NotificationService } from '../../../notifications/application/ports/NotificationService'; diff --git a/core/racing/application/use-cases/SendPerformanceSummaryUseCase.test.ts b/core/racing/application/use-cases/SendPerformanceSummaryUseCase.test.ts index ba88787ee..8eb161623 100644 --- a/core/racing/application/use-cases/SendPerformanceSummaryUseCase.test.ts +++ b/core/racing/application/use-cases/SendPerformanceSummaryUseCase.test.ts @@ -2,7 +2,6 @@ import { beforeEach, describe, expect, it, vi, type Mock } from 'vitest'; import { SendPerformanceSummaryUseCase, type SendPerformanceSummaryInput, - type SendPerformanceSummaryResult, type SendPerformanceSummaryErrorCode, } from './SendPerformanceSummaryUseCase'; import type { NotificationService } from '../../../notifications/application/ports/NotificationService'; diff --git a/core/racing/application/use-cases/SubmitProtestDefenseUseCase.test.ts b/core/racing/application/use-cases/SubmitProtestDefenseUseCase.test.ts index 1f1250c45..4a114b7cf 100644 --- a/core/racing/application/use-cases/SubmitProtestDefenseUseCase.test.ts +++ b/core/racing/application/use-cases/SubmitProtestDefenseUseCase.test.ts @@ -8,6 +8,8 @@ import { type SubmitProtestDefenseInput, type SubmitProtestDefenseResult, } from './SubmitProtestDefenseUseCase'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { ProtestRepository } from '../../domain/repositories/ProtestRepository'; interface MockProtest { id: string; diff --git a/core/racing/application/use-cases/TeamRatingFactoryUseCase.test.ts b/core/racing/application/use-cases/TeamRatingFactoryUseCase.test.ts index cf456dbda..3e65cff83 100644 --- a/core/racing/application/use-cases/TeamRatingFactoryUseCase.test.ts +++ b/core/racing/application/use-cases/TeamRatingFactoryUseCase.test.ts @@ -7,7 +7,7 @@ import { TeamRatingFactoryUseCase } from './TeamRatingFactoryUseCase'; class MockTeamRaceResultsProvider implements TeamRaceResultsProvider { private results: TeamDrivingRaceFactsDto | null = null; - async getTeamRaceResults(_raceId: string): Promise { + async getTeamRaceResults(): Promise { return this.results; } diff --git a/core/racing/application/use-cases/TeamRatingIntegrationAdapter.test.ts b/core/racing/application/use-cases/TeamRatingIntegrationAdapter.test.ts index bdaa1b3cb..38fea664c 100644 --- a/core/racing/application/use-cases/TeamRatingIntegrationAdapter.test.ts +++ b/core/racing/application/use-cases/TeamRatingIntegrationAdapter.test.ts @@ -5,14 +5,12 @@ import { TeamRatingRepository } from '@core/racing/domain/repositories/TeamRatin import { TeamDrivingRaceFactsDto } from '@core/racing/domain/services/TeamDrivingRatingEventFactory'; import { TeamRatingEvent } from '@core/racing/domain/entities/TeamRatingEvent'; import { TeamRatingEventId } from '@core/racing/domain/value-objects/TeamRatingEventId'; -import { TeamRatingDimensionKey } from '@core/racing/domain/value-objects/TeamRatingDimensionKey'; -import { TeamRatingDelta } from '@core/racing/domain/value-objects/TeamRatingDelta'; // Mock repositories class MockTeamRaceResultsProvider implements TeamRaceResultsProvider { private results: TeamDrivingRaceFactsDto | null = null; - async getTeamRaceResults(raceId: string): Promise { + async getTeamRaceResults(): Promise { return this.results; } @@ -41,7 +39,7 @@ class MockTeamRatingEventRepository implements TeamRatingEventRepository { return this.events.filter(e => e.teamId === teamId); } - async findEventsPaginated(teamId: string): Promise { + async findEventsPaginated(teamId: string): Promise> { const events = await this.getAllByTeamId(teamId); return { items: events, @@ -58,13 +56,13 @@ class MockTeamRatingEventRepository implements TeamRatingEventRepository { } class MockTeamRatingRepository implements TeamRatingRepository { - private snapshots: Map = new Map(); + private snapshots: Map = new Map(); - async findByTeamId(teamId: string): Promise { + async findByTeamId(teamId: string): Promise { return this.snapshots.get(teamId) || null; } - async save(snapshot: any): Promise { + async save(snapshot: TeamRating): Promise { this.snapshots.set(snapshot.teamId, snapshot); return snapshot; } @@ -202,7 +200,6 @@ describe('TeamRatingIntegrationAdapter', () => { mockResultsProvider.setResults(raceResults); // Mock repository to throw error - const originalSave = mockEventRepo.save.bind(mockEventRepo); mockEventRepo.save = async () => { throw new Error('Repository error'); }; @@ -276,12 +273,11 @@ describe('TeamRatingIntegrationAdapter', () => { mockResultsProvider.setResults(raceResults); // Mock repository to fail for team-456 - const originalSave = mockEventRepo.save.bind(mockEventRepo); mockEventRepo.save = async (event) => { if (event.teamId === 'team-456') { throw new Error('Simulated failure'); } - return originalSave(event); + return event; }; const result = await adapter.recordTeamRatingsWithDetails('race-123'); diff --git a/core/racing/application/use-cases/TransferLeagueOwnershipUseCase.test.ts b/core/racing/application/use-cases/TransferLeagueOwnershipUseCase.test.ts index 02a75435c..7cb68c88c 100644 --- a/core/racing/application/use-cases/TransferLeagueOwnershipUseCase.test.ts +++ b/core/racing/application/use-cases/TransferLeagueOwnershipUseCase.test.ts @@ -6,10 +6,20 @@ import { type TransferLeagueOwnershipErrorCode, type TransferLeagueOwnershipInput } from './TransferLeagueOwnershipUseCase'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; +import type { League } from '../../domain/entities/League'; +import type { LeagueMembership } from '../../domain/entities/LeagueMembership'; describe('TransferLeagueOwnershipUseCase', () => { - let leagueRepository: any; - let membershipRepository: any; + let leagueRepository: { + findById: Mock; + update: Mock; + }; + let membershipRepository: { + getMembership: Mock; + saveMembership: Mock; + }; let logger: Logger & { error: Mock }; let useCase: TransferLeagueOwnershipUseCase; @@ -29,11 +39,11 @@ describe('TransferLeagueOwnershipUseCase', () => { info: vi.fn(), warn: vi.fn(), error: vi.fn(), - } as any; + } as unknown as Logger & { error: Mock }; useCase = new TransferLeagueOwnershipUseCase( - leagueRepository, - membershipRepository, + leagueRepository as unknown as LeagueRepository, + membershipRepository as unknown as LeagueMembershipRepository, logger, ); }); @@ -43,21 +53,21 @@ describe('TransferLeagueOwnershipUseCase', () => { id: 'league-1', ownerId: { toString: () => 'owner-1' }, update: vi.fn().mockReturnValue({}), - } as any; + } as unknown as League; const mockNewOwnerMembership = { leagueId: 'league-1', driverId: 'owner-2', status: { toString: () => 'active' }, role: 'member', - } as any; + } as unknown as LeagueMembership; const mockCurrentOwnerMembership = { leagueId: 'league-1', driverId: 'owner-1', status: { toString: () => 'active' }, role: 'owner', - } as any; + } as unknown as LeagueMembership; leagueRepository.findById.mockResolvedValue(mockLeague); @@ -124,7 +134,7 @@ describe('TransferLeagueOwnershipUseCase', () => { id: 'league-1', ownerId: { toString: () => 'other-owner' }, update: vi.fn(), - } as any; + } as unknown as League; leagueRepository.findById.mockResolvedValue(mockLeague); @@ -150,7 +160,7 @@ describe('TransferLeagueOwnershipUseCase', () => { id: 'league-1', ownerId: { toString: () => 'owner-1' }, update: vi.fn(), - } as any; + } as unknown as League; leagueRepository.findById.mockResolvedValue(mockLeague); @@ -178,7 +188,7 @@ describe('TransferLeagueOwnershipUseCase', () => { id: 'league-1', ownerId: { toString: () => 'owner-1' }, update: vi.fn().mockReturnValue({}), - } as any; + } as unknown as League; leagueRepository.findById.mockResolvedValue(mockLeague); @@ -187,7 +197,7 @@ describe('TransferLeagueOwnershipUseCase', () => { driverId: 'owner-2', status: { toString: () => 'active' }, role: 'member', - } as any; + } as unknown as LeagueMembership; membershipRepository.getMembership .mockResolvedValueOnce(mockNewOwnerMembership) diff --git a/core/racing/application/use-cases/UpdateDriverProfileUseCase.test.ts b/core/racing/application/use-cases/UpdateDriverProfileUseCase.test.ts index 0eced0605..2b7be2c26 100644 --- a/core/racing/application/use-cases/UpdateDriverProfileUseCase.test.ts +++ b/core/racing/application/use-cases/UpdateDriverProfileUseCase.test.ts @@ -2,7 +2,6 @@ import { describe, it, expect, vi, beforeEach } from 'vitest'; import { UpdateDriverProfileUseCase, type UpdateDriverProfileInput, - type UpdateDriverProfileResult, type UpdateDriverProfileErrorCode, } from './UpdateDriverProfileUseCase'; import type { DriverRepository } from '../../domain/repositories/DriverRepository'; diff --git a/core/racing/application/use-cases/UpdateLeagueMemberRoleUseCase.test.ts b/core/racing/application/use-cases/UpdateLeagueMemberRoleUseCase.test.ts index 187378b2a..b91e6d591 100644 --- a/core/racing/application/use-cases/UpdateLeagueMemberRoleUseCase.test.ts +++ b/core/racing/application/use-cases/UpdateLeagueMemberRoleUseCase.test.ts @@ -48,9 +48,10 @@ describe('UpdateLeagueMemberRoleUseCase', () => { it('returns error if membership not found', async () => { const mockLeagueMembershipRepository = { getLeagueMembers: vi.fn().mockResolvedValue([]), - } as any; + saveMembership: vi.fn(), + }; - const useCase = new UpdateLeagueMemberRoleUseCase(mockLeagueMembershipRepository); + const useCase = new UpdateLeagueMemberRoleUseCase(mockLeagueMembershipRepository as unknown as LeagueMembershipRepository); const input: UpdateLeagueMemberRoleInput = { leagueId: 'league-1', @@ -75,9 +76,10 @@ describe('UpdateLeagueMemberRoleUseCase', () => { getLeagueMembers: vi .fn() .mockRejectedValue(new Error('Database connection failed')), - } as any; + saveMembership: vi.fn(), + }; - const useCase = new UpdateLeagueMemberRoleUseCase(mockLeagueMembershipRepository); + const useCase = new UpdateLeagueMemberRoleUseCase(mockLeagueMembershipRepository as unknown as LeagueMembershipRepository); const input: UpdateLeagueMemberRoleInput = { leagueId: 'league-1', @@ -110,14 +112,14 @@ describe('UpdateLeagueMemberRoleUseCase', () => { const mockLeagueMembershipRepository = { getLeagueMembers: vi.fn().mockResolvedValue([mockMembership]), saveMembership: vi.fn().mockResolvedValue(undefined), - } as any; + }; - const useCase = new UpdateLeagueMemberRoleUseCase(mockLeagueMembershipRepository); + const useCase = new UpdateLeagueMemberRoleUseCase(mockLeagueMembershipRepository as unknown as LeagueMembershipRepository); const result = await useCase.execute({ leagueId: 'league-1', targetDriverId: 'driver-1', - newRole: 'manager' as any, + newRole: 'manager' as unknown as 'member', }); expect(result.isErr()).toBe(true); @@ -143,9 +145,9 @@ describe('UpdateLeagueMemberRoleUseCase', () => { const mockLeagueMembershipRepository = { getLeagueMembers: vi.fn().mockResolvedValue([mockOwnerMembership]), saveMembership: vi.fn().mockResolvedValue(undefined), - } as any; + }; - const useCase = new UpdateLeagueMemberRoleUseCase(mockLeagueMembershipRepository); + const useCase = new UpdateLeagueMemberRoleUseCase(mockLeagueMembershipRepository as unknown as LeagueMembershipRepository); const result = await useCase.execute({ leagueId: 'league-1', diff --git a/core/racing/application/use-cases/UpdateTeamUseCase.test.ts b/core/racing/application/use-cases/UpdateTeamUseCase.test.ts index 18f660ee0..6f5ada792 100644 --- a/core/racing/application/use-cases/UpdateTeamUseCase.test.ts +++ b/core/racing/application/use-cases/UpdateTeamUseCase.test.ts @@ -1,5 +1,5 @@ import { describe, it, expect, vi } from 'vitest'; -import { UpdateTeamUseCase, type UpdateTeamInput, type UpdateTeamResult, type UpdateTeamErrorCode } from './UpdateTeamUseCase'; +import { UpdateTeamUseCase, type UpdateTeamInput, type UpdateTeamErrorCode } from './UpdateTeamUseCase'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { TeamRepository } from '../../domain/repositories/TeamRepository'; import type { TeamMembershipRepository } from '../../domain/repositories/TeamMembershipRepository'; @@ -54,11 +54,6 @@ describe('UpdateTeamUseCase', () => { getMembership: vi.fn().mockResolvedValue(mockMembership), } as unknown as TeamMembershipRepository; - const present = vi.fn<(data: UpdateTeamResult) => void>(); - const output: { present: typeof present } = { - present, - }; - const useCase = new UpdateTeamUseCase({} as unknown as TeamRepository, mockMembershipRepository); const command: UpdateTeamInput = { diff --git a/core/racing/application/use-cases/WithdrawFromLeagueWalletUseCase.test.ts b/core/racing/application/use-cases/WithdrawFromLeagueWalletUseCase.test.ts index eb215ff3e..fdeb6b22c 100644 --- a/core/racing/application/use-cases/WithdrawFromLeagueWalletUseCase.test.ts +++ b/core/racing/application/use-cases/WithdrawFromLeagueWalletUseCase.test.ts @@ -207,7 +207,7 @@ describe('WithdrawFromLeagueWalletUseCase', () => { const presented = result.unwrap(); expect(transactionRepository.create).toHaveBeenCalledTimes(1); - const createdTx = (transactionRepository.create as Mock).mock.calls[0]![0] as any; + const createdTx = (transactionRepository.create as Mock).mock.calls[0]![0] as Transaction; const expectedTransactionId = `txn-${new Date('2025-01-01T00:00:00.000Z').getTime()}`; diff --git a/core/racing/domain/entities/TeamRatingEvent.test.ts b/core/racing/domain/entities/TeamRatingEvent.test.ts index 438930419..c94849cfc 100644 --- a/core/racing/domain/entities/TeamRatingEvent.test.ts +++ b/core/racing/domain/entities/TeamRatingEvent.test.ts @@ -1,11 +1,12 @@ -import { TeamRatingEvent } from './TeamRatingEvent'; +import { describe, it, expect } from 'vitest'; +import { TeamRatingEvent, type TeamRatingEventProps } from './TeamRatingEvent'; import { TeamRatingEventId } from '../value-objects/TeamRatingEventId'; import { TeamRatingDimensionKey } from '../value-objects/TeamRatingDimensionKey'; import { TeamRatingDelta } from '../value-objects/TeamRatingDelta'; import { RacingDomainValidationError, RacingDomainInvariantError } from '../errors/RacingDomainError'; describe('TeamRatingEvent', () => { - const validProps = { + const validProps: TeamRatingEventProps = { id: TeamRatingEventId.create('123e4567-e89b-12d3-a456-426614174000'), teamId: 'team-123', dimension: TeamRatingDimensionKey.create('driving'), @@ -47,28 +48,43 @@ describe('TeamRatingEvent', () => { }); it('should throw for missing dimension', () => { - const { dimension: _, ...rest } = validProps; - expect(() => TeamRatingEvent.create(rest as typeof validProps)).toThrow(RacingDomainValidationError); + const props = { ...validProps }; + // @ts-expect-error - testing validation + // eslint-disable-next-line @typescript-eslint/no-explicit-any + delete (props as any).dimension; + expect(() => TeamRatingEvent.create(props as unknown as TeamRatingEventProps)).toThrow(RacingDomainValidationError); }); it('should throw for missing delta', () => { - const { delta: _, ...rest } = validProps; - expect(() => TeamRatingEvent.create(rest as typeof validProps)).toThrow(RacingDomainValidationError); + const props = { ...validProps }; + // @ts-expect-error - testing validation + // eslint-disable-next-line @typescript-eslint/no-explicit-any + delete (props as any).delta; + expect(() => TeamRatingEvent.create(props as unknown as TeamRatingEventProps)).toThrow(RacingDomainValidationError); }); it('should throw for missing source', () => { - const { source: _, ...rest } = validProps; - expect(() => TeamRatingEvent.create(rest as typeof validProps)).toThrow(RacingDomainValidationError); + const props = { ...validProps }; + // @ts-expect-error - testing validation + // eslint-disable-next-line @typescript-eslint/no-explicit-any + delete (props as any).source; + expect(() => TeamRatingEvent.create(props as unknown as TeamRatingEventProps)).toThrow(RacingDomainValidationError); }); it('should throw for missing reason', () => { - const { reason: _, ...rest } = validProps; - expect(() => TeamRatingEvent.create(rest as typeof validProps)).toThrow(RacingDomainValidationError); + const props = { ...validProps }; + // @ts-expect-error - testing validation + // eslint-disable-next-line @typescript-eslint/no-explicit-any + delete (props as any).reason; + expect(() => TeamRatingEvent.create(props as unknown as TeamRatingEventProps)).toThrow(RacingDomainValidationError); }); it('should throw for missing visibility', () => { - const { visibility: _, ...rest } = validProps; - expect(() => TeamRatingEvent.create(rest as typeof validProps)).toThrow(RacingDomainValidationError); + const props = { ...validProps }; + // @ts-expect-error - testing validation + // eslint-disable-next-line @typescript-eslint/no-explicit-any + delete (props as any).visibility; + expect(() => TeamRatingEvent.create(props as unknown as TeamRatingEventProps)).toThrow(RacingDomainValidationError); }); it('should throw for invalid weight', () => { diff --git a/core/social/application/use-cases/GetUserFeedUseCase.test.ts b/core/social/application/use-cases/GetUserFeedUseCase.test.ts index b21d968e6..4970a7fb1 100644 --- a/core/social/application/use-cases/GetUserFeedUseCase.test.ts +++ b/core/social/application/use-cases/GetUserFeedUseCase.test.ts @@ -6,6 +6,7 @@ import { type GetUserFeedApplicationError, type GetUserFeedInput, } from './GetUserFeedUseCase'; +import type { FeedRepository } from '../../domain/repositories/FeedRepository'; describe('GetUserFeedUseCase', () => { let feedRepository: FeedRepository & { getFeedForDriver: Mock }; diff --git a/core/tsconfig.all.json b/core/tsconfig.all.json new file mode 100644 index 000000000..156dde825 --- /dev/null +++ b/core/tsconfig.all.json @@ -0,0 +1,5 @@ +{ + "extends": "./tsconfig.json", + "include": ["**/*.ts"], + "exclude": ["node_modules", "dist"] +}