import { InMemoryDriverRepository } from '../../../adapters/racing/persistence/inmemory/InMemoryDriverRepository'; import { InMemoryTeamRepository } from '../../../adapters/racing/persistence/inmemory/InMemoryTeamRepository'; import { InMemoryTeamMembershipRepository } from '../../../adapters/racing/persistence/inmemory/InMemoryTeamMembershipRepository'; import { InMemorySocialGraphRepository } from '../../../adapters/social/persistence/inmemory/InMemorySocialAndFeed'; import { InMemoryDriverExtendedProfileProvider } from '../../../adapters/racing/ports/InMemoryDriverExtendedProfileProvider'; import { InMemoryDriverStatsRepository } from '../../../adapters/racing/persistence/inmemory/InMemoryDriverStatsRepository'; import { InMemoryLiveryRepository } from '../../../adapters/racing/persistence/inmemory/InMemoryLiveryRepository'; import { InMemoryLeagueRepository } from '../../../adapters/racing/persistence/inmemory/InMemoryLeagueRepository'; import { InMemoryLeagueMembershipRepository } from '../../../adapters/racing/persistence/inmemory/InMemoryLeagueMembershipRepository'; import { InMemorySponsorshipRequestRepository } from '../../../adapters/racing/persistence/inmemory/InMemorySponsorshipRequestRepository'; import { InMemorySponsorRepository } from '../../../adapters/racing/persistence/inmemory/InMemorySponsorRepository'; import { InMemoryEventPublisher } from '../../../adapters/events/InMemoryEventPublisher'; import { InMemoryResultRepository } from '../../../adapters/racing/persistence/inmemory/InMemoryResultRepository'; import { InMemoryStandingRepository } from '../../../adapters/racing/persistence/inmemory/InMemoryStandingRepository'; import { InMemoryRaceRepository } from '../../../adapters/racing/persistence/inmemory/InMemoryRaceRepository'; import { Logger } from '../../../core/shared/domain/Logger'; export class ProfileTestContext { public readonly driverRepository: InMemoryDriverRepository; public readonly teamRepository: InMemoryTeamRepository; public readonly teamMembershipRepository: InMemoryTeamMembershipRepository; public readonly socialRepository: InMemorySocialGraphRepository; public readonly driverExtendedProfileProvider: InMemoryDriverExtendedProfileProvider; public readonly driverStatsRepository: InMemoryDriverStatsRepository; public readonly liveryRepository: InMemoryLiveryRepository; public readonly leagueRepository: InMemoryLeagueRepository; public readonly leagueMembershipRepository: InMemoryLeagueMembershipRepository; public readonly sponsorshipRequestRepository: InMemorySponsorshipRequestRepository; public readonly sponsorRepository: InMemorySponsorRepository; public readonly eventPublisher: InMemoryEventPublisher; public readonly resultRepository: InMemoryResultRepository; public readonly standingRepository: InMemoryStandingRepository; public readonly raceRepository: InMemoryRaceRepository; public readonly logger: Logger; constructor() { this.logger = { info: () => {}, debug: () => {}, warn: () => {}, error: () => {}, } as unknown as Logger; this.driverRepository = new InMemoryDriverRepository(this.logger); this.teamRepository = new InMemoryTeamRepository(this.logger); this.teamMembershipRepository = new InMemoryTeamMembershipRepository(this.logger); this.socialRepository = new InMemorySocialGraphRepository(this.logger); this.driverExtendedProfileProvider = new InMemoryDriverExtendedProfileProvider(this.logger); this.driverStatsRepository = new InMemoryDriverStatsRepository(this.logger); this.liveryRepository = new InMemoryLiveryRepository(this.logger); this.leagueRepository = new InMemoryLeagueRepository(this.logger); this.leagueMembershipRepository = new InMemoryLeagueMembershipRepository(this.logger); this.sponsorshipRequestRepository = new InMemorySponsorshipRequestRepository(this.logger); this.sponsorRepository = new InMemorySponsorRepository(this.logger); this.eventPublisher = new InMemoryEventPublisher(); this.raceRepository = new InMemoryRaceRepository(this.logger); this.resultRepository = new InMemoryResultRepository(this.logger, this.raceRepository); this.standingRepository = new InMemoryStandingRepository(this.logger, {}, this.resultRepository, this.raceRepository); } public async clear(): Promise { await this.driverRepository.clear(); await this.teamRepository.clear(); await this.teamMembershipRepository.clear(); await this.socialRepository.clear(); await this.driverExtendedProfileProvider.clear(); await this.driverStatsRepository.clear(); await this.liveryRepository.clear(); await this.leagueRepository.clear(); await this.leagueMembershipRepository.clear(); await this.sponsorshipRequestRepository.clear(); await this.sponsorRepository.clear(); this.eventPublisher.clear(); await this.raceRepository.clear(); await this.resultRepository.clear(); await this.standingRepository.clear(); } }