Files
gridpilot.gg/apps/website/lib/view-models/RemoveMemberViewModel.test.ts
2025-12-20 00:31:31 +01:00

35 lines
1.1 KiB
TypeScript

import { describe, it, expect } from 'vitest';
import { RemoveMemberViewModel } from './RemoveMemberViewModel';
import type { RemoveLeagueMemberOutputDTO } from '../types/generated/RemoveLeagueMemberOutputDTO';
const createRemoveMemberDto = (overrides: Partial<RemoveLeagueMemberOutputDTO> = {}): RemoveLeagueMemberOutputDTO => ({
success: true,
...overrides,
});
describe('RemoveMemberViewModel', () => {
it('maps success flag from DTO', () => {
const dto = createRemoveMemberDto({ success: true });
const vm = new RemoveMemberViewModel(dto);
expect(vm.success).toBe(true);
});
it('provides success message when operation succeeds', () => {
const dto = createRemoveMemberDto({ success: true });
const vm = new RemoveMemberViewModel(dto);
expect(vm.successMessage).toBe('Member removed successfully!');
});
it('provides failure message when operation fails', () => {
const dto = createRemoveMemberDto({ success: false });
const vm = new RemoveMemberViewModel(dto);
expect(vm.successMessage).toBe('Failed to remove member.');
});
});