Files
gridpilot.gg/apps/api/src/domain/league/presenters/RejectLeagueJoinRequestPresenter.test.ts
2026-01-16 21:44:26 +01:00

70 lines
1.8 KiB
TypeScript

import { beforeEach, describe, expect, it } from 'vitest';
import { RejectLeagueJoinRequestPresenter } from './RejectLeagueJoinRequestPresenter';
describe('RejectLeagueJoinRequestPresenter', () => {
let presenter: RejectLeagueJoinRequestPresenter;
beforeEach(() => {
presenter = new RejectLeagueJoinRequestPresenter();
});
describe('present', () => {
it('should present successful rejection result', () => {
const result = {
success: true,
message: 'Join request rejected successfully',
};
presenter.present(result);
const vm = presenter.getViewModel();
expect(vm).toEqual({
success: true,
message: 'Join request rejected successfully',
});
});
it('should present failed rejection result', () => {
const result = {
success: false,
message: 'Failed to reject join request',
};
presenter.present(result);
const vm = presenter.getViewModel();
expect(vm).toEqual({
success: false,
message: 'Failed to reject join request',
});
});
});
describe('getViewModel', () => {
it('should return null before presentation', () => {
expect(presenter.getViewModel()).toBeNull();
});
it('should return the model after presentation', () => {
presenter.present({ success: true, message: 'Test' });
expect(presenter.getViewModel()).toEqual({
success: true,
message: 'Test',
});
});
});
describe('reset', () => {
it('should reset the model to null', () => {
presenter.present({ success: true, message: 'Test' });
expect(presenter.getViewModel()).not.toBeNull();
presenter.reset();
expect(presenter.getViewModel()).toBeNull();
});
});
});