resolve manual DTOs
This commit is contained in:
@@ -29,11 +29,16 @@ describe('TeamService', () => {
|
||||
{
|
||||
id: 'team-1',
|
||||
name: 'Test Team',
|
||||
logoUrl: 'https://example.com/logo.png',
|
||||
tag: 'TT',
|
||||
description: 'A test team',
|
||||
memberCount: 5,
|
||||
rating: 1500,
|
||||
leagues: ['league-1'],
|
||||
specialization: 'endurance' as const,
|
||||
region: 'EU',
|
||||
languages: ['en'],
|
||||
},
|
||||
],
|
||||
totalCount: 1,
|
||||
};
|
||||
|
||||
mockApiClient.getAll.mockResolvedValue(mockDto);
|
||||
@@ -45,6 +50,7 @@ describe('TeamService', () => {
|
||||
expect(result[0]).toBeInstanceOf(TeamSummaryViewModel);
|
||||
expect(result[0].id).toBe('team-1');
|
||||
expect(result[0].name).toBe('Test Team');
|
||||
expect(result[0].tag).toBe('TT');
|
||||
});
|
||||
|
||||
it('should throw error when apiClient.getAll fails', async () => {
|
||||
@@ -58,13 +64,24 @@ describe('TeamService', () => {
|
||||
describe('getTeamDetails', () => {
|
||||
it('should call apiClient.getDetails and return TeamDetailsViewModel when data exists', async () => {
|
||||
const mockDto = {
|
||||
id: 'team-1',
|
||||
name: 'Test Team',
|
||||
description: 'A test team',
|
||||
logoUrl: 'https://example.com/logo.png',
|
||||
memberCount: 5,
|
||||
ownerId: 'owner-1',
|
||||
members: [],
|
||||
team: {
|
||||
id: 'team-1',
|
||||
name: 'Test Team',
|
||||
tag: 'TT',
|
||||
description: 'A test team',
|
||||
ownerId: 'owner-1',
|
||||
leagues: ['league-1'],
|
||||
createdAt: '2023-01-01T00:00:00Z',
|
||||
specialization: 'endurance',
|
||||
region: 'EU',
|
||||
languages: ['en'],
|
||||
},
|
||||
membership: {
|
||||
role: 'member',
|
||||
joinedAt: '2023-01-01T00:00:00Z',
|
||||
isActive: true,
|
||||
},
|
||||
canManage: false,
|
||||
};
|
||||
|
||||
mockApiClient.getDetails.mockResolvedValue(mockDto);
|
||||
@@ -75,6 +92,7 @@ describe('TeamService', () => {
|
||||
expect(result).toBeInstanceOf(TeamDetailsViewModel);
|
||||
expect(result?.id).toBe('team-1');
|
||||
expect(result?.name).toBe('Test Team');
|
||||
expect(result?.tag).toBe('TT');
|
||||
});
|
||||
|
||||
it('should return null when apiClient.getDetails returns null', async () => {
|
||||
@@ -100,11 +118,17 @@ describe('TeamService', () => {
|
||||
members: [
|
||||
{
|
||||
driverId: 'driver-1',
|
||||
driver: { id: 'driver-1', name: 'Driver One', avatarUrl: 'avatar.png', iracingId: '123', rating: 1400 },
|
||||
role: 'member',
|
||||
driverName: 'Driver One',
|
||||
role: 'member' as const,
|
||||
joinedAt: '2023-01-01T00:00:00Z',
|
||||
isActive: true,
|
||||
avatarUrl: 'avatar.png',
|
||||
},
|
||||
],
|
||||
totalCount: 1,
|
||||
ownerCount: 0,
|
||||
managerCount: 0,
|
||||
memberCount: 1,
|
||||
};
|
||||
|
||||
mockApiClient.getMembers.mockResolvedValue(mockDto);
|
||||
@@ -176,14 +200,35 @@ describe('TeamService', () => {
|
||||
|
||||
describe('getDriverTeam', () => {
|
||||
it('should call apiClient.getDriverTeam and return the result', async () => {
|
||||
const mockOutput = { teamId: 'team-1', teamName: 'Test Team', role: 'member' };
|
||||
const mockOutput = {
|
||||
team: {
|
||||
id: 'team-1',
|
||||
name: 'Test Team',
|
||||
tag: 'TT',
|
||||
description: 'A test team',
|
||||
ownerId: 'owner-1',
|
||||
leagues: [],
|
||||
specialization: 'endurance' as const,
|
||||
region: 'EU',
|
||||
languages: ['en'],
|
||||
},
|
||||
membership: {
|
||||
role: 'member',
|
||||
joinedAt: '2023-01-01T00:00:00Z',
|
||||
isActive: true,
|
||||
},
|
||||
isOwner: false,
|
||||
canManage: false,
|
||||
};
|
||||
|
||||
mockApiClient.getDriverTeam.mockResolvedValue(mockOutput);
|
||||
|
||||
const result = await service.getDriverTeam('driver-1');
|
||||
|
||||
expect(mockApiClient.getDriverTeam).toHaveBeenCalledWith('driver-1');
|
||||
expect(result).toEqual(mockOutput);
|
||||
expect(result?.teamId).toBe('team-1');
|
||||
expect(result?.teamName).toBe('Test Team');
|
||||
expect(result?.role).toBe('member');
|
||||
});
|
||||
|
||||
it('should return null when apiClient.getDriverTeam returns null', async () => {
|
||||
|
||||
Reference in New Issue
Block a user