fix issues in core
This commit is contained in:
@@ -189,7 +189,7 @@ describe('DashboardOverviewUseCase', () => {
|
||||
getMembership: async (leagueId: string, driverIdParam: string): Promise<LeagueMembership | null> => {
|
||||
return (
|
||||
memberships.find(
|
||||
m => m.leagueId === leagueId && m.driverId === driverIdParam,
|
||||
m => m.leagueId.toString() === leagueId && m.driverId.toString() === driverIdParam,
|
||||
) ?? null
|
||||
);
|
||||
},
|
||||
|
||||
@@ -1,20 +1,19 @@
|
||||
import type { IDriverRepository } from '../../domain/repositories/IDriverRepository';
|
||||
import type { IRaceRepository } from '../../domain/repositories/IRaceRepository';
|
||||
import type { IResultRepository } from '../../domain/repositories/IResultRepository';
|
||||
import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository';
|
||||
import type { IStandingRepository } from '../../domain/repositories/IStandingRepository';
|
||||
import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository';
|
||||
import type { IRaceRegistrationRepository } from '../../domain/repositories/IRaceRegistrationRepository';
|
||||
import type { IFeedRepository } from '@core/social/domain/repositories/IFeedRepository';
|
||||
import type { ISocialGraphRepository } from '@core/social/domain/repositories/ISocialGraphRepository';
|
||||
import { Result } from '@core/shared/application/Result';
|
||||
import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode';
|
||||
import type { IFeedRepository } from '@core/social/domain/repositories/IFeedRepository';
|
||||
import type { ISocialGraphRepository } from '@core/social/domain/repositories/ISocialGraphRepository';
|
||||
import type { FeedItem } from '@core/social/domain/types/FeedItem';
|
||||
import { Driver } from '../../domain/entities/Driver';
|
||||
import { League } from '../../domain/entities/League';
|
||||
import { Race } from '../../domain/entities/Race';
|
||||
import { Result as RaceResult } from '../../domain/entities/Result';
|
||||
import { Driver } from '../../domain/entities/Driver';
|
||||
import { Standing } from '../../domain/entities/Standing';
|
||||
import type { FeedItem } from '@core/social/domain/types/FeedItem';
|
||||
import type { IDriverRepository } from '../../domain/repositories/IDriverRepository';
|
||||
import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository';
|
||||
import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository';
|
||||
import type { IRaceRegistrationRepository } from '../../domain/repositories/IRaceRegistrationRepository';
|
||||
import type { IRaceRepository } from '../../domain/repositories/IRaceRepository';
|
||||
import type { IResultRepository } from '../../domain/repositories/IResultRepository';
|
||||
import type { IStandingRepository } from '../../domain/repositories/IStandingRepository';
|
||||
|
||||
export interface DashboardOverviewInput {
|
||||
driverId: string;
|
||||
@@ -49,7 +48,7 @@ export interface DashboardRaceSummary {
|
||||
export interface DashboardRecentRaceResultSummary {
|
||||
race: Race;
|
||||
league: League | null;
|
||||
result: RaceResult;
|
||||
result: Result;
|
||||
}
|
||||
|
||||
export interface DashboardLeagueStandingSummary {
|
||||
@@ -126,7 +125,7 @@ export class DashboardOverviewUseCase {
|
||||
});
|
||||
}
|
||||
|
||||
const leagueMap = new Map(allLeagues.map(league => [league.id, league]));
|
||||
const leagueMap = new Map(allLeagues.map(league => [league.id.toString(), league]));
|
||||
|
||||
const driverStats = this.getDriverStats(driverId);
|
||||
|
||||
@@ -142,7 +141,7 @@ export class DashboardOverviewUseCase {
|
||||
};
|
||||
|
||||
const driverLeagues = await this.getDriverLeagues(allLeagues, driverId);
|
||||
const driverLeagueIds = new Set(driverLeagues.map(league => league.id));
|
||||
const driverLeagueIds = new Set(driverLeagues.map(league => league.id.toString()));
|
||||
|
||||
const now = new Date();
|
||||
const upcomingRaces = allRaces
|
||||
@@ -150,7 +149,7 @@ export class DashboardOverviewUseCase {
|
||||
.sort((a, b) => a.scheduledAt.getTime() - b.scheduledAt.getTime());
|
||||
|
||||
const upcomingRacesInDriverLeagues = upcomingRaces.filter(race =>
|
||||
driverLeagueIds.has(race.leagueId),
|
||||
driverLeagueIds.has(race.leagueId.toString()),
|
||||
);
|
||||
|
||||
const { myUpcomingRaces, otherUpcomingRaces } =
|
||||
@@ -226,10 +225,10 @@ export class DashboardOverviewUseCase {
|
||||
|
||||
for (const league of allLeagues) {
|
||||
const membership = await this.leagueMembershipRepository.getMembership(
|
||||
league.id,
|
||||
league.id.toString(),
|
||||
driverId,
|
||||
);
|
||||
if (membership && membership.status === 'active') {
|
||||
if (membership && membership.status.toString() === 'active') {
|
||||
driverLeagues.push(league);
|
||||
}
|
||||
}
|
||||
@@ -284,13 +283,13 @@ export class DashboardOverviewUseCase {
|
||||
driverId: string,
|
||||
): DashboardRecentRaceResultSummary[] {
|
||||
const raceById = new Map(allRaces.map(race => [race.id, race]));
|
||||
const leagueById = new Map(allLeagues.map(league => [league.id, league]));
|
||||
const leagueById = new Map(allLeagues.map(league => [league.id.toString(), league]));
|
||||
|
||||
const driverResults = allResults.filter(result => result.driverId === driverId);
|
||||
const driverResults = allResults.filter(result => result.driverId.toString() === driverId);
|
||||
|
||||
const enriched = driverResults
|
||||
.map(result => {
|
||||
const race = raceById.get(result.raceId);
|
||||
const race = raceById.get(result.raceId.toString());
|
||||
if (!race) return null;
|
||||
|
||||
const league = leagueById.get(race.leagueId) ?? null;
|
||||
@@ -321,9 +320,9 @@ export class DashboardOverviewUseCase {
|
||||
const summaries: DashboardLeagueStandingSummary[] = [];
|
||||
|
||||
for (const league of driverLeagues.slice(0, 3)) {
|
||||
const standings = await this.standingRepository.findByLeagueId(league.id);
|
||||
const standings = await this.standingRepository.findByLeagueId(league.id.toString());
|
||||
const driverStanding = standings.find(
|
||||
(standing: Standing) => standing.driverId === driverId,
|
||||
(standing: Standing) => standing.driverId.toString() === driverId,
|
||||
);
|
||||
|
||||
summaries.push({
|
||||
@@ -347,7 +346,7 @@ export class DashboardOverviewUseCase {
|
||||
}
|
||||
|
||||
for (const standing of leagueStandingsSummaries) {
|
||||
activeLeagueIds.add(standing.league.id);
|
||||
activeLeagueIds.add(standing.league.id.toString());
|
||||
}
|
||||
|
||||
return activeLeagueIds.size;
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
import { describe, it, expect, beforeEach, vi, Mock } from 'vitest';
|
||||
import { FileProtestUseCase, type FileProtestInput, type FileProtestResult, type FileProtestErrorCode } from './FileProtestUseCase';
|
||||
import type { IProtestRepository } from '../../domain/repositories/IProtestRepository';
|
||||
import type { IRaceRepository } from '../../domain/repositories/IRaceRepository';
|
||||
import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository';
|
||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||
import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode';
|
||||
import type { Result } from '@core/shared/application/Result';
|
||||
import { beforeEach, describe, expect, it, Mock, vi } from 'vitest';
|
||||
import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository';
|
||||
import type { IProtestRepository } from '../../domain/repositories/IProtestRepository';
|
||||
import type { IRaceRepository } from '../../domain/repositories/IRaceRepository';
|
||||
import { FileProtestUseCase, type FileProtestErrorCode, type FileProtestInput, type FileProtestResult } from './FileProtestUseCase';
|
||||
|
||||
describe('FileProtestUseCase', () => {
|
||||
let mockProtestRepo: {
|
||||
|
||||
Reference in New Issue
Block a user