integration tests
Some checks failed
CI / lint-typecheck (pull_request) Failing after 4m50s
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
Some checks failed
CI / lint-typecheck (pull_request) Failing after 4m50s
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
This commit is contained in:
94
tests/integration/teams/TeamsTestContext.ts
Normal file
94
tests/integration/teams/TeamsTestContext.ts
Normal file
@@ -0,0 +1,94 @@
|
||||
import { Logger } from '../../../core/shared/domain/Logger';
|
||||
import { InMemoryTeamRepository } from '../../../adapters/racing/persistence/inmemory/InMemoryTeamRepository';
|
||||
import { InMemoryTeamMembershipRepository } from '../../../adapters/racing/persistence/inmemory/InMemoryTeamMembershipRepository';
|
||||
import { InMemoryDriverRepository } from '../../../adapters/racing/persistence/inmemory/InMemoryDriverRepository';
|
||||
import { InMemoryTeamStatsRepository } from '../../../adapters/racing/persistence/inmemory/InMemoryTeamStatsRepository';
|
||||
import { CreateTeamUseCase } from '../../../core/racing/application/use-cases/CreateTeamUseCase';
|
||||
import { JoinTeamUseCase } from '../../../core/racing/application/use-cases/JoinTeamUseCase';
|
||||
import { LeaveTeamUseCase } from '../../../core/racing/application/use-cases/LeaveTeamUseCase';
|
||||
import { GetTeamMembershipUseCase } from '../../../core/racing/application/use-cases/GetTeamMembershipUseCase';
|
||||
import { GetTeamMembersUseCase } from '../../../core/racing/application/use-cases/GetTeamMembersUseCase';
|
||||
import { GetTeamJoinRequestsUseCase } from '../../../core/racing/application/use-cases/GetTeamJoinRequestsUseCase';
|
||||
import { ApproveTeamJoinRequestUseCase } from '../../../core/racing/application/use-cases/ApproveTeamJoinRequestUseCase';
|
||||
import { UpdateTeamUseCase } from '../../../core/racing/application/use-cases/UpdateTeamUseCase';
|
||||
import { GetTeamDetailsUseCase } from '../../../core/racing/application/use-cases/GetTeamDetailsUseCase';
|
||||
import { GetTeamsLeaderboardUseCase } from '../../../core/racing/application/use-cases/GetTeamsLeaderboardUseCase';
|
||||
import { GetAllTeamsUseCase } from '../../../core/racing/application/use-cases/GetAllTeamsUseCase';
|
||||
|
||||
export class TeamsTestContext {
|
||||
public readonly logger: Logger;
|
||||
public readonly teamRepository: InMemoryTeamRepository;
|
||||
public readonly membershipRepository: InMemoryTeamMembershipRepository;
|
||||
public readonly driverRepository: InMemoryDriverRepository;
|
||||
public readonly statsRepository: InMemoryTeamStatsRepository;
|
||||
|
||||
constructor() {
|
||||
this.logger = {
|
||||
info: () => {},
|
||||
debug: () => {},
|
||||
warn: () => {},
|
||||
error: () => {},
|
||||
} as unknown as Logger;
|
||||
|
||||
this.teamRepository = new InMemoryTeamRepository(this.logger);
|
||||
this.membershipRepository = new InMemoryTeamMembershipRepository(this.logger);
|
||||
this.driverRepository = new InMemoryDriverRepository(this.logger);
|
||||
this.statsRepository = new InMemoryTeamStatsRepository(this.logger);
|
||||
}
|
||||
|
||||
public clear(): void {
|
||||
this.teamRepository.clear();
|
||||
this.membershipRepository.clear();
|
||||
this.driverRepository.clear();
|
||||
this.statsRepository.clear();
|
||||
}
|
||||
|
||||
public createCreateTeamUseCase(): CreateTeamUseCase {
|
||||
return new CreateTeamUseCase(this.teamRepository, this.membershipRepository, this.logger);
|
||||
}
|
||||
|
||||
public createJoinTeamUseCase(): JoinTeamUseCase {
|
||||
return new JoinTeamUseCase(this.teamRepository, this.membershipRepository, this.logger);
|
||||
}
|
||||
|
||||
public createLeaveTeamUseCase(): LeaveTeamUseCase {
|
||||
return new LeaveTeamUseCase(this.teamRepository, this.membershipRepository, this.logger);
|
||||
}
|
||||
|
||||
public createGetTeamMembershipUseCase(): GetTeamMembershipUseCase {
|
||||
return new GetTeamMembershipUseCase(this.membershipRepository, this.logger);
|
||||
}
|
||||
|
||||
public createGetTeamMembersUseCase(): GetTeamMembersUseCase {
|
||||
return new GetTeamMembersUseCase(this.membershipRepository, this.driverRepository, this.teamRepository, this.logger);
|
||||
}
|
||||
|
||||
public createGetTeamJoinRequestsUseCase(): GetTeamJoinRequestsUseCase {
|
||||
return new GetTeamJoinRequestsUseCase(this.membershipRepository, this.driverRepository, this.teamRepository);
|
||||
}
|
||||
|
||||
public createApproveTeamJoinRequestUseCase(): ApproveTeamJoinRequestUseCase {
|
||||
return new ApproveTeamJoinRequestUseCase(this.membershipRepository);
|
||||
}
|
||||
|
||||
public createUpdateTeamUseCase(): UpdateTeamUseCase {
|
||||
return new UpdateTeamUseCase(this.teamRepository, this.membershipRepository);
|
||||
}
|
||||
|
||||
public createGetTeamDetailsUseCase(): GetTeamDetailsUseCase {
|
||||
return new GetTeamDetailsUseCase(this.teamRepository, this.membershipRepository);
|
||||
}
|
||||
|
||||
public createGetTeamsLeaderboardUseCase(getDriverStats: (driverId: string) => any): GetTeamsLeaderboardUseCase {
|
||||
return new GetTeamsLeaderboardUseCase(
|
||||
this.teamRepository,
|
||||
this.membershipRepository,
|
||||
getDriverStats,
|
||||
this.logger
|
||||
);
|
||||
}
|
||||
|
||||
public createGetAllTeamsUseCase(): GetAllTeamsUseCase {
|
||||
return new GetAllTeamsUseCase(this.teamRepository, this.membershipRepository, this.statsRepository, this.logger);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user