refactor analytics module
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { Injectable, Inject } from '@nestjs/common';
|
||||
import { DashboardOverviewUseCase } from '@core/racing/application/use-cases/DashboardOverviewUseCase';
|
||||
import { Inject, Injectable } from '@nestjs/common';
|
||||
import { DashboardOverviewDTO } from './dtos/DashboardOverviewDTO';
|
||||
import { DashboardOverviewPresenter } from './presenters/DashboardOverviewPresenter';
|
||||
|
||||
@@ -7,14 +7,14 @@ import { DashboardOverviewPresenter } from './presenters/DashboardOverviewPresen
|
||||
import type { Logger } from '@core/shared/application/Logger';
|
||||
|
||||
// Tokens
|
||||
import { LOGGER_TOKEN, DASHBOARD_OVERVIEW_USE_CASE_TOKEN, DASHBOARD_OVERVIEW_OUTPUT_PORT_TOKEN } from './DashboardProviders';
|
||||
import { DASHBOARD_OVERVIEW_OUTPUT_PORT_TOKEN, DASHBOARD_OVERVIEW_USE_CASE_TOKEN, LOGGER_TOKEN } from './DashboardProviders';
|
||||
|
||||
@Injectable()
|
||||
export class DashboardService {
|
||||
constructor(
|
||||
@Inject(LOGGER_TOKEN) private readonly logger: Logger,
|
||||
@Inject(DASHBOARD_OVERVIEW_USE_CASE_TOKEN) private readonly dashboardOverviewUseCase: DashboardOverviewUseCase,
|
||||
@Inject(DASHBOARD_OVERVIEW_OUTPUT_PORT_TOKEN) private readonly dashboardOverviewPresenter: DashboardOverviewPresenter,
|
||||
@Inject(DASHBOARD_OVERVIEW_OUTPUT_PORT_TOKEN) private readonly dashboardOverviewPresenter: DashboardOverviewPresenter, // TODO no presenter injection
|
||||
) {}
|
||||
|
||||
async getDashboardOverview(driverId: string): Promise<DashboardOverviewDTO> {
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import { describe, it, expect, beforeEach } from 'vitest';
|
||||
import { DashboardOverviewPresenter } from './DashboardOverviewPresenter';
|
||||
import type { DashboardOverviewResult } from '@core/racing/application/use-cases/DashboardOverviewUseCase';
|
||||
import { Driver } from '@core/racing/domain/entities/Driver';
|
||||
import { Race } from '@core/racing/domain/entities/Race';
|
||||
import { League } from '@core/racing/domain/entities/League';
|
||||
import { Race } from '@core/racing/domain/entities/Race';
|
||||
import { Standing } from '@core/racing/domain/entities/Standing';
|
||||
import { Result as RaceResult } from '@core/racing/domain/entities/result/Result';
|
||||
import type { FeedItem } from '@core/social/domain/types/FeedItem';
|
||||
import { beforeEach, describe, expect, it } from 'vitest';
|
||||
import { DashboardOverviewPresenter } from './DashboardOverviewPresenter';
|
||||
|
||||
const createOutput = (): DashboardOverviewResult => {
|
||||
const driver = Driver.create({ id: 'driver-1', iracingId: '12345', name: 'Test Driver', country: 'DE' });
|
||||
@@ -148,15 +148,15 @@ describe('DashboardOverviewPresenter', () => {
|
||||
|
||||
expect(dto.activeLeaguesCount).toBe(2);
|
||||
expect(dto.currentDriver?.id).toBe('driver-1');
|
||||
expect(dto.myUpcomingRaces[0].id).toBe('race-1');
|
||||
expect(dto.otherUpcomingRaces[0].id).toBe('race-2');
|
||||
expect(dto.myUpcomingRaces[0]!.id).toBe('race-1');
|
||||
expect(dto.otherUpcomingRaces[0]!.id).toBe('race-2');
|
||||
expect(dto.upcomingRaces).toHaveLength(2);
|
||||
expect(dto.nextRace?.id).toBe('race-1');
|
||||
expect(dto.recentResults[0].raceId).toBe('race-3');
|
||||
expect(dto.leagueStandingsSummaries[0].leagueId).toBe('league-1');
|
||||
expect(dto.recentResults[0]!.raceId).toBe('race-3');
|
||||
expect(dto.leagueStandingsSummaries[0]!.leagueId).toBe('league-1');
|
||||
expect(dto.feedSummary.notificationCount).toBe(3);
|
||||
expect(dto.feedSummary.items[0].id).toBe('feed-1');
|
||||
expect(dto.friends[0].id).toBe('friend-1');
|
||||
expect(dto.feedSummary.items[0]!.id).toBe('feed-1');
|
||||
expect(dto.friends[0]!.id).toBe('friend-1');
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user