refactor api modules

This commit is contained in:
2025-12-22 19:17:33 +01:00
parent c90b2166c1
commit 1333f5e907
100 changed files with 2226 additions and 1936 deletions

View File

@@ -3,7 +3,8 @@ import { vi } from 'vitest';
import { TeamController } from './TeamController';
import { TeamService } from './TeamService';
import type { Request } from 'express';
import { CreateTeamInputDTO, UpdateTeamInputDTO } from './dtos/CreateTeamInputDTO';
import { CreateTeamInputDTO } from './dtos/CreateTeamInputDTO';
import { UpdateTeamInput } from './dtos/TeamDto';
describe('TeamController', () => {
let controller: TeamController;
@@ -35,7 +36,7 @@ describe('TeamController', () => {
describe('getAll', () => {
it('should return all teams', async () => {
const result = { teams: [] };
const result = { teams: [], totalCount: 0 };
service.getAll.mockResolvedValue(result);
const response = await controller.getAll();
@@ -49,12 +50,12 @@ describe('TeamController', () => {
it('should return team details', async () => {
const teamId = 'team-123';
const userId = 'user-456';
const result = { id: teamId, name: 'Team' };
const result = { team: { id: teamId, name: 'Team', tag: 'TAG', description: 'Desc', ownerId: 'owner', leagues: [] }, membership: null, canManage: false };
service.getDetails.mockResolvedValue(result);
const mockReq: Partial<Request> = { ['user']: { userId } };
const mockReq = { user: { userId } } as any;
const response = await controller.getDetails(teamId, mockReq as Request);
const response = await controller.getDetails(teamId, mockReq);
expect(service.getDetails).toHaveBeenCalledWith(teamId, userId);
expect(response).toEqual(result);
@@ -64,7 +65,7 @@ describe('TeamController', () => {
describe('getMembers', () => {
it('should return team members', async () => {
const teamId = 'team-123';
const result = { members: [] };
const result = { members: [], totalCount: 0, ownerCount: 0, managerCount: 0, memberCount: 0 };
service.getMembers.mockResolvedValue(result);
const response = await controller.getMembers(teamId);
@@ -77,7 +78,7 @@ describe('TeamController', () => {
describe('getJoinRequests', () => {
it('should return join requests', async () => {
const teamId = 'team-123';
const result = { requests: [] };
const result = { requests: [], pendingCount: 0, totalCount: 0 };
service.getJoinRequests.mockResolvedValue(result);
const response = await controller.getJoinRequests(teamId);
@@ -89,14 +90,14 @@ describe('TeamController', () => {
describe('create', () => {
it('should create team', async () => {
const input: CreateTeamInputDTO = { name: 'New Team' };
const input: CreateTeamInputDTO = { name: 'New Team', tag: 'TAG' };
const userId = 'user-123';
const result = { teamId: 'team-456' };
const result = { id: 'team-456', success: true };
service.create.mockResolvedValue(result);
const mockReq: Partial<Request> = { ['user']: { userId } };
const mockReq = { user: { userId } } as any;
const response = await controller.create(input, mockReq as Request);
const response = await controller.create(input, mockReq);
expect(service.create).toHaveBeenCalledWith(input, userId);
expect(response).toEqual(result);
@@ -106,14 +107,14 @@ describe('TeamController', () => {
describe('update', () => {
it('should update team', async () => {
const teamId = 'team-123';
const input: UpdateTeamInputDTO = { name: 'Updated Team' };
const userId = 'user-456';
const input: UpdateTeamInput = { name: 'Updated Team', updatedBy: userId };
const result = { success: true };
service.update.mockResolvedValue(result);
const mockReq: Partial<Request> = { ['user']: { userId } };
const mockReq = { user: { userId } } as any;
const response = await controller.update(teamId, input, mockReq as Request);
const response = await controller.update(teamId, input, mockReq);
expect(service.update).toHaveBeenCalledWith(teamId, input, userId);
expect(response).toEqual(result);
@@ -123,7 +124,7 @@ describe('TeamController', () => {
describe('getDriverTeam', () => {
it('should return driver team', async () => {
const driverId = 'driver-123';
const result = { teamId: 'team-456' };
const result = { team: { id: 'team-456', name: 'Team', tag: 'TAG', description: 'Desc', ownerId: 'owner', leagues: [] }, membership: { role: 'member' as const, joinedAt: '2023-01-01', isActive: true }, isOwner: false, canManage: false };
service.getDriverTeam.mockResolvedValue(result);
const response = await controller.getDriverTeam(driverId);
@@ -137,7 +138,7 @@ describe('TeamController', () => {
it('should return team membership', async () => {
const teamId = 'team-123';
const driverId = 'driver-456';
const result = { role: 'member' };
const result = { role: 'member' as const, joinedAt: '2023-01-01', isActive: true };
service.getMembership.mockResolvedValue(result);
const response = await controller.getMembership(teamId, driverId);