Files
gridpilot.gg/tests/integration/leaderboards/LeaderboardsTestContext.ts
Marc Mintel a0f41f242f
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
integration tests
2026-01-23 00:46:34 +01:00

37 lines
1.7 KiB
TypeScript

import { InMemoryLeaderboardsRepository } from '../../../adapters/leaderboards/persistence/inmemory/InMemoryLeaderboardsRepository';
import { InMemoryLeaderboardsEventPublisher } from '../../../adapters/leaderboards/events/InMemoryLeaderboardsEventPublisher';
import { GetDriverRankingsUseCase } from '../../../core/leaderboards/application/use-cases/GetDriverRankingsUseCase';
import { GetTeamRankingsUseCase } from '../../../core/leaderboards/application/use-cases/GetTeamRankingsUseCase';
import { GetGlobalLeaderboardsUseCase } from '../../../core/leaderboards/application/use-cases/GetGlobalLeaderboardsUseCase';
export class LeaderboardsTestContext {
public readonly repository: InMemoryLeaderboardsRepository;
public readonly eventPublisher: InMemoryLeaderboardsEventPublisher;
public readonly getDriverRankingsUseCase: GetDriverRankingsUseCase;
public readonly getTeamRankingsUseCase: GetTeamRankingsUseCase;
public readonly getGlobalLeaderboardsUseCase: GetGlobalLeaderboardsUseCase;
constructor() {
this.repository = new InMemoryLeaderboardsRepository();
this.eventPublisher = new InMemoryLeaderboardsEventPublisher();
const dependencies = {
leaderboardsRepository: this.repository,
eventPublisher: this.eventPublisher,
};
this.getDriverRankingsUseCase = new GetDriverRankingsUseCase(dependencies);
this.getTeamRankingsUseCase = new GetTeamRankingsUseCase(dependencies);
this.getGlobalLeaderboardsUseCase = new GetGlobalLeaderboardsUseCase(dependencies);
}
clear(): void {
this.repository.clear();
this.eventPublisher.clear();
}
static create(): LeaderboardsTestContext {
return new LeaderboardsTestContext();
}
}