44 lines
1.2 KiB
TypeScript
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');
|
|
});
|
|
});
|