view data fixes
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import type { TeamJoinRequestDTO } from '@/lib/types/generated/TeamJoinRequestDTO';
|
||||
import type { TeamJoinRequestDTO } from '../types/generated/TeamJoinRequestDTO';
|
||||
import { describe, expect, it } from 'vitest';
|
||||
import { TeamJoinRequestViewModel } from './TeamJoinRequestViewModel';
|
||||
|
||||
@@ -17,7 +17,11 @@ describe('TeamJoinRequestViewModel', () => {
|
||||
it('maps fields from DTO', () => {
|
||||
const dto = createTeamJoinRequestDto({ requestId: 'req-123', driverId: 'driver-123' });
|
||||
|
||||
const vm = new TeamJoinRequestViewModel(dto, 'current-user', true);
|
||||
const vm = new TeamJoinRequestViewModel({
|
||||
...dto,
|
||||
currentUserId: 'current-user',
|
||||
isOwner: true,
|
||||
});
|
||||
|
||||
expect(vm.id).toBe('req-123');
|
||||
expect(vm.teamId).toBe('team-1');
|
||||
@@ -28,8 +32,16 @@ describe('TeamJoinRequestViewModel', () => {
|
||||
it('allows approval only for owners', () => {
|
||||
const dto = createTeamJoinRequestDto();
|
||||
|
||||
const ownerVm = new TeamJoinRequestViewModel(dto, 'owner-user', true);
|
||||
const nonOwnerVm = new TeamJoinRequestViewModel(dto, 'regular-user', false);
|
||||
const ownerVm = new TeamJoinRequestViewModel({
|
||||
...dto,
|
||||
currentUserId: 'owner-user',
|
||||
isOwner: true,
|
||||
});
|
||||
const nonOwnerVm = new TeamJoinRequestViewModel({
|
||||
...dto,
|
||||
currentUserId: 'regular-user',
|
||||
isOwner: false,
|
||||
});
|
||||
|
||||
expect(ownerVm.canApprove).toBe(true);
|
||||
expect(nonOwnerVm.canApprove).toBe(false);
|
||||
@@ -37,7 +49,11 @@ describe('TeamJoinRequestViewModel', () => {
|
||||
|
||||
it('exposes a pending status with yellow color', () => {
|
||||
const dto = createTeamJoinRequestDto({ status: 'pending' });
|
||||
const vm = new TeamJoinRequestViewModel(dto, 'owner-user', true);
|
||||
const vm = new TeamJoinRequestViewModel({
|
||||
...dto,
|
||||
currentUserId: 'owner-user',
|
||||
isOwner: true,
|
||||
});
|
||||
|
||||
expect(vm.status).toBe('Pending');
|
||||
expect(vm.statusColor).toBe('yellow');
|
||||
@@ -45,7 +61,11 @@ describe('TeamJoinRequestViewModel', () => {
|
||||
|
||||
it('provides approve and reject button labels', () => {
|
||||
const dto = createTeamJoinRequestDto();
|
||||
const vm = new TeamJoinRequestViewModel(dto, 'owner-user', true);
|
||||
const vm = new TeamJoinRequestViewModel({
|
||||
...dto,
|
||||
currentUserId: 'owner-user',
|
||||
isOwner: true,
|
||||
});
|
||||
|
||||
expect(vm.approveButtonText).toBe('Approve');
|
||||
expect(vm.rejectButtonText).toBe('Reject');
|
||||
@@ -53,7 +73,11 @@ describe('TeamJoinRequestViewModel', () => {
|
||||
|
||||
it('formats requestedAt as localized date-time', () => {
|
||||
const dto = createTeamJoinRequestDto({ requestedAt: '2024-01-01T12:00:00Z' });
|
||||
const vm = new TeamJoinRequestViewModel(dto, 'owner-user', true);
|
||||
const vm = new TeamJoinRequestViewModel({
|
||||
...dto,
|
||||
currentUserId: 'owner-user',
|
||||
isOwner: true,
|
||||
});
|
||||
|
||||
const formatted = vm.formattedRequestedAt;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user