Files
gridpilot.gg/apps/website/lib/view-models/CreateTeamViewModel.test.ts
2026-01-24 01:25:46 +01:00

67 lines
1.8 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import type { CreateTeamViewData } from '../view-data/CreateTeamViewData';
import { CreateTeamViewModel } from './CreateTeamViewModel';
describe('CreateTeamViewModel', () => {
it('maps teamId and success from ViewData', () => {
const viewData: CreateTeamViewData = {
teamId: 'team-123',
success: true,
successMessage: 'Team created successfully!',
};
const vm = new CreateTeamViewModel(viewData);
expect(vm.teamId).toBe('team-123');
expect(vm.success).toBe(true);
});
it('returns success successMessage when creation succeeded', () => {
const viewData: CreateTeamViewData = {
teamId: 'team-1',
success: true,
successMessage: 'Team created successfully!',
};
const vm = new CreateTeamViewModel(viewData);
expect(vm.successMessage).toBe('Team created successfully!');
});
it('returns failure successMessage when creation failed', () => {
const viewData: CreateTeamViewData = {
teamId: 'team-1',
success: false,
successMessage: 'Failed to create team.',
};
const vm = new CreateTeamViewModel(viewData);
expect(vm.successMessage).toBe('Failed to create team.');
});
it('returns isSuccessful when creation succeeded', () => {
const viewData: CreateTeamViewData = {
teamId: 'team-1',
success: true,
successMessage: 'Team created successfully!',
};
const vm = new CreateTeamViewModel(viewData);
expect(vm.isSuccessful).toBe(true);
});
it('returns isSuccessful when creation failed', () => {
const viewData: CreateTeamViewData = {
teamId: 'team-1',
success: false,
successMessage: 'Failed to create team.',
};
const vm = new CreateTeamViewModel(viewData);
expect(vm.isSuccessful).toBe(false);
});
});