Files
gridpilot.gg/apps/api/src/domain/league/presenters/GetLeagueMembershipsPresenter.test.ts
2025-12-20 17:06:11 +01:00

28 lines
975 B
TypeScript

import { GetLeagueMembershipsPresenter } from './GetLeagueMembershipsPresenter';
import type { GetLeagueMembershipsOutputPort } from '@core/racing/application/ports/output/GetLeagueMembershipsOutputPort';
describe('GetLeagueMembershipsPresenter', () => {
it('presents memberships correctly', () => {
const presenter = new GetLeagueMembershipsPresenter();
const output: GetLeagueMembershipsOutputPort = {
memberships: {
members: [
{
driverId: 'driver-1',
driver: { id: 'driver-1', name: 'John Doe' },
role: 'member',
joinedAt: new Date('2023-01-01'),
},
],
},
};
presenter.present(output);
const vm = presenter.getViewModel();
expect(vm).not.toBeNull();
expect(vm!.memberships.members).toHaveLength(1);
expect(vm!.memberships.members[0].driverId).toBe('driver-1');
expect(vm!.memberships.members[0].driver.name).toBe('John Doe');
});
});