Some checks failed
CI / lint-typecheck (pull_request) Failing after 4m51s
CI / tests (pull_request) Has been skipped
CI / contract-tests (pull_request) Has been skipped
CI / e2e-tests (pull_request) Has been skipped
CI / comment-pr (pull_request) Has been skipped
CI / commit-types (pull_request) Has been skipped
45 lines
2.1 KiB
TypeScript
45 lines
2.1 KiB
TypeScript
import { InMemoryDriverRepository } from '../../../adapters/racing/persistence/inmemory/InMemoryDriverRepository';
|
|
import { InMemoryRaceRepository } from '../../../adapters/racing/persistence/inmemory/InMemoryRaceRepository';
|
|
import { InMemoryLeagueRepository } from '../../../adapters/racing/persistence/inmemory/InMemoryLeagueRepository';
|
|
import { InMemoryResultRepository } from '../../../adapters/racing/persistence/inmemory/InMemoryResultRepository';
|
|
import { InMemoryRatingRepository } from '../../../adapters/rating/persistence/inmemory/InMemoryRatingRepository';
|
|
import { InMemoryEventPublisher } from '../../../adapters/events/InMemoryEventPublisher';
|
|
import { ConsoleLogger } from '../../../adapters/logging/ConsoleLogger';
|
|
|
|
export class RatingTestContext {
|
|
private static instance: RatingTestContext;
|
|
|
|
public readonly driverRepository: InMemoryDriverRepository;
|
|
public readonly raceRepository: InMemoryRaceRepository;
|
|
public readonly leagueRepository: InMemoryLeagueRepository;
|
|
public readonly resultRepository: InMemoryResultRepository;
|
|
public readonly ratingRepository: InMemoryRatingRepository;
|
|
public readonly eventPublisher: InMemoryEventPublisher;
|
|
|
|
private constructor() {
|
|
const logger = new ConsoleLogger();
|
|
this.driverRepository = new InMemoryDriverRepository(logger);
|
|
this.raceRepository = new InMemoryRaceRepository(logger);
|
|
this.leagueRepository = new InMemoryLeagueRepository(logger);
|
|
this.resultRepository = new InMemoryResultRepository(logger);
|
|
this.ratingRepository = new InMemoryRatingRepository();
|
|
this.eventPublisher = new InMemoryEventPublisher();
|
|
}
|
|
|
|
public static create(): RatingTestContext {
|
|
if (!RatingTestContext.instance) {
|
|
RatingTestContext.instance = new RatingTestContext();
|
|
}
|
|
return RatingTestContext.instance;
|
|
}
|
|
|
|
public async clear(): Promise<void> {
|
|
await this.driverRepository.clear();
|
|
await this.raceRepository.clear();
|
|
await this.leagueRepository.clear();
|
|
await this.resultRepository.clear();
|
|
await this.ratingRepository.clear();
|
|
this.eventPublisher.clear();
|
|
}
|
|
}
|