website refactor

This commit is contained in:
2026-01-16 21:35:35 +01:00
parent 77a923e6a3
commit ae910da21a
12 changed files with 21 additions and 29 deletions

View File

@@ -1,12 +1,11 @@
import { TeamRatingEvent } from '@core/racing/domain/entities/TeamRatingEvent';
import { TeamRatingEventRepository } from '@core/racing/domain/repositories/TeamRatingEventRepository';
import { TeamRatingEventRepository, PaginatedResult } from '@core/racing/domain/repositories/TeamRatingEventRepository';
import { TeamRatingRepository } from '@core/racing/domain/repositories/TeamRatingRepository';
import { TeamRating } from '@core/racing/domain/value-objects/TeamRating';
import { TeamRatingDelta } from '@core/racing/domain/value-objects/TeamRatingDelta';
import { TeamRatingDimensionKey } from '@core/racing/domain/value-objects/TeamRatingDimensionKey';
import { TeamRatingEventId } from '@core/racing/domain/value-objects/TeamRatingEventId';
import { afterEach, beforeEach, describe, expect, it } from 'vitest';
import { PaginatedResult } from '../../domain/repositories/TeamRatingEventRepository';
import { AppendTeamRatingEventsUseCase } from './AppendTeamRatingEventsUseCase';
// Mock repositories

View File

@@ -2,6 +2,11 @@ import type { Logger } from '@core/shared/domain/Logger';
import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode';
import { beforeEach, describe, expect, it, vi, type Mock } from 'vitest';
import { TeamMembershipRepository } from '../../domain/repositories/TeamMembershipRepository';
import {
GetTeamMembershipUseCase,
GetTeamMembershipInput,
GetTeamMembershipErrorCode,
} from './GetTeamMembershipUseCase';
describe('GetTeamMembershipUseCase', () => {
const mockGetMembership = vi.fn();

View File

@@ -1,12 +1,11 @@
import { TeamRatingEvent } from '@core/racing/domain/entities/TeamRatingEvent';
import { TeamRatingEventRepository } from '@core/racing/domain/repositories/TeamRatingEventRepository';
import { TeamRatingEventRepository, PaginatedResult } from '@core/racing/domain/repositories/TeamRatingEventRepository';
import { TeamRatingRepository } from '@core/racing/domain/repositories/TeamRatingRepository';
import { TeamRatingDelta } from '@core/racing/domain/value-objects/TeamRatingDelta';
import { TeamRatingDimensionKey } from '@core/racing/domain/value-objects/TeamRatingDimensionKey';
import { TeamRatingEventId } from '@core/racing/domain/value-objects/TeamRatingEventId';
import { afterEach, beforeEach, describe, expect, it } from 'vitest';
import { PaginatedResult } from '../../domain/repositories/TeamRatingEventRepository';
import { TeamRating } from '../../domain/value-objects/TeamRating';
import { TeamRatingSnapshot } from '../../domain/services/TeamRatingSnapshotCalculator';
import { RecomputeTeamRatingSnapshotUseCase } from './RecomputeTeamRatingSnapshotUseCase';
// Mock repositories
@@ -51,13 +50,13 @@ class MockTeamRatingEventRepository implements TeamRatingEventRepository {
}
class MockTeamRatingRepository implements TeamRatingRepository {
private snapshots: Map<string, TeamRating> = new Map();
private snapshots: Map<string, TeamRatingSnapshot> = new Map();
async findByTeamId(teamId: string): Promise<TeamRating | null> {
async findByTeamId(teamId: string): Promise<TeamRatingSnapshot | null> {
return this.snapshots.get(teamId) || null;
}
async save(snapshot: TeamRating): Promise<TeamRating> {
async save(snapshot: TeamRatingSnapshot): Promise<TeamRatingSnapshot> {
this.snapshots.set(snapshot.teamId, snapshot);
return snapshot;
}

View File

@@ -1,10 +1,9 @@
import { TeamRatingEvent } from '@core/racing/domain/entities/TeamRatingEvent';
import { TeamRatingEventRepository } from '@core/racing/domain/repositories/TeamRatingEventRepository';
import { TeamRatingEventRepository, PaginatedResult } from '@core/racing/domain/repositories/TeamRatingEventRepository';
import { TeamRatingRepository } from '@core/racing/domain/repositories/TeamRatingRepository';
import { TeamDrivingRaceFactsDto } from '@core/racing/domain/services/TeamDrivingRatingEventFactory';
import { TeamRatingEventId } from '@core/racing/domain/value-objects/TeamRatingEventId';
import { afterEach, beforeEach, describe, expect, it } from 'vitest';
import { PaginatedResult } from '../../domain/repositories/TeamRatingEventRepository';
import { TeamRating } from '../../domain/value-objects/TeamRating';
import { TeamRaceResultsProvider } from '../ports/TeamRaceResultsProvider';
import { AppendTeamRatingEventsUseCase } from './AppendTeamRatingEventsUseCase';
@@ -90,8 +89,6 @@ describe('RecordTeamRaceRatingEventsUseCase', () => {
appendUseCase = new AppendTeamRatingEventsUseCase(mockEventRepo, mockRatingRepo);
useCase = new RecordTeamRaceRatingEventsUseCase(
mockResultsProvider,
mockEventRepo,
mockRatingRepo,
appendUseCase
);
});

View File

@@ -1,5 +1,3 @@
import type { TeamRatingEventRepository } from '@core/racing/domain/repositories/TeamRatingEventRepository';
import type { TeamRatingRepository } from '@core/racing/domain/repositories/TeamRatingRepository';
import { TeamDrivingRatingEventFactory } from '@core/racing/domain/services/TeamDrivingRatingEventFactory';
import { RecordTeamRaceRatingEventsInput, RecordTeamRaceRatingEventsOutput } from '../dtos/RecordTeamRaceRatingEventsDto';
import type { TeamRaceResultsProvider } from '../ports/TeamRaceResultsProvider';
@@ -20,8 +18,6 @@ import { AppendTeamRatingEventsUseCase } from './AppendTeamRatingEventsUseCase';
export class RecordTeamRaceRatingEventsUseCase {
constructor(
private readonly teamRaceResultsProvider: TeamRaceResultsProvider,
private readonly ratingEventRepository: TeamRatingEventRepository,
private readonly ratingRepository: TeamRatingRepository,
private readonly appendTeamRatingEventsUseCase: AppendTeamRatingEventsUseCase,
) {}

View File

@@ -1,10 +1,9 @@
import { TeamRatingEvent } from '@core/racing/domain/entities/TeamRatingEvent';
import { TeamRatingEventRepository } from '@core/racing/domain/repositories/TeamRatingEventRepository';
import { TeamRatingEventRepository, PaginatedResult } from '@core/racing/domain/repositories/TeamRatingEventRepository';
import { TeamRatingRepository } from '@core/racing/domain/repositories/TeamRatingRepository';
import { TeamDrivingRaceFactsDto } from '@core/racing/domain/services/TeamDrivingRatingEventFactory';
import { TeamRatingEventId } from '@core/racing/domain/value-objects/TeamRatingEventId';
import { afterEach, beforeEach, describe, expect, it } from 'vitest';
import { PaginatedResult } from '../../domain/repositories/TeamRatingEventRepository';
import { TeamRating } from '../../domain/value-objects/TeamRating';
import { TeamRaceResultsProvider } from '../ports/TeamRaceResultsProvider';
import { TeamRatingIntegrationAdapter } from './TeamRatingIntegrationAdapter';