Files
gridpilot.gg/apps/api/src/domain/analytics/presenters/GetDashboardDataPresenter.test.ts
2026-01-08 15:34:51 +01:00

44 lines
1.2 KiB
TypeScript

import { describe, it, expect, beforeEach } from 'vitest';
import { GetDashboardDataPresenter } from './GetDashboardDataPresenter';
import type { GetDashboardDataOutput } from '@core/analytics/application/use-cases/GetDashboardDataUseCase';
describe('GetDashboardDataPresenter', () => {
let presenter: GetDashboardDataPresenter;
beforeEach(() => {
presenter = new GetDashboardDataPresenter();
});
it('maps output to DTO correctly', () => {
const output: GetDashboardDataOutput = {
totalUsers: 100,
activeUsers: 50,
totalRaces: 20,
totalLeagues: 5,
};
presenter.transform(output);
expect(presenter.getResponseModel()).toEqual({
totalUsers: 100,
activeUsers: 50,
totalRaces: 20,
totalLeagues: 5,
});
expect(presenter.responseModel).toEqual({
totalUsers: 100,
activeUsers: 50,
totalRaces: 20,
totalLeagues: 5,
});
});
it('getResponseModel throws if not transformed', () => {
expect(() => presenter.getResponseModel()).toThrow('Presenter not transformed');
});
it('responseModel throws if not transformed', () => {
expect(() => presenter.responseModel).toThrow('Presenter not transformed');
});
});