harden media
This commit is contained in:
@@ -23,6 +23,9 @@ type TeamEntityStub = {
|
||||
ownerId: ValueObjectStub;
|
||||
leagues: ValueObjectStub[];
|
||||
createdAt: { toDate(): Date };
|
||||
logoRef: any;
|
||||
category: string | undefined;
|
||||
isRecruiting: boolean;
|
||||
update: Mock;
|
||||
};
|
||||
|
||||
@@ -43,6 +46,9 @@ describe('TeamService', () => {
|
||||
ownerId: makeValueObject('owner-1'),
|
||||
leagues: [makeValueObject('league-1')],
|
||||
createdAt: { toDate: () => new Date('2023-01-01T00:00:00.000Z') },
|
||||
logoRef: { type: 'system-default', variant: 'logo' },
|
||||
category: undefined,
|
||||
isRecruiting: false,
|
||||
};
|
||||
|
||||
const team: TeamEntityStub = {
|
||||
@@ -95,7 +101,7 @@ describe('TeamService', () => {
|
||||
countByTeamId: vi.fn(),
|
||||
getActiveMembershipForDriver: vi.fn(),
|
||||
getMembership: vi.fn(),
|
||||
getTeamMembers: vi.fn(),
|
||||
getTeamMembers: vi.fn().mockResolvedValue([]),
|
||||
getJoinRequests: vi.fn(),
|
||||
saveMembership: vi.fn(),
|
||||
};
|
||||
@@ -112,28 +118,38 @@ describe('TeamService', () => {
|
||||
} as unknown as Logger;
|
||||
|
||||
const teamStatsRepository = {
|
||||
getTeamStats: vi.fn(),
|
||||
getTeamStats: vi.fn().mockResolvedValue(undefined),
|
||||
saveTeamStats: vi.fn(),
|
||||
getAllStats: vi.fn(),
|
||||
clear: vi.fn(),
|
||||
};
|
||||
|
||||
const mediaRepository = {
|
||||
getTeamAvatar: vi.fn(),
|
||||
saveTeamAvatar: vi.fn(),
|
||||
getDriverAvatar: vi.fn(),
|
||||
saveDriverAvatar: vi.fn(),
|
||||
};
|
||||
|
||||
const resultRepository = {
|
||||
findAll: vi.fn(),
|
||||
findAll: vi.fn().mockResolvedValue([]),
|
||||
};
|
||||
|
||||
// Mock presenter that stores result synchronously
|
||||
const allTeamsPresenter = {
|
||||
reset: vi.fn(),
|
||||
present: vi.fn(),
|
||||
getResponseModel: vi.fn(() => ({ teams: [], totalCount: 0 })),
|
||||
present: vi.fn((result: any) => {
|
||||
// Store immediately and synchronously
|
||||
allTeamsPresenter.responseModel = {
|
||||
teams: result.teams.map((t: any) => ({
|
||||
id: t.id,
|
||||
name: t.name,
|
||||
tag: t.tag,
|
||||
description: t.description,
|
||||
memberCount: t.memberCount,
|
||||
leagues: t.leagues,
|
||||
logoUrl: t.logoUrl ?? null,
|
||||
})),
|
||||
totalCount: result.totalCount,
|
||||
};
|
||||
}),
|
||||
getResponseModel: vi.fn(() => allTeamsPresenter.responseModel || { teams: [], totalCount: 0 }),
|
||||
responseModel: { teams: [], totalCount: 0 },
|
||||
setMediaResolver: vi.fn(),
|
||||
setBaseUrl: vi.fn(),
|
||||
};
|
||||
|
||||
service = new TeamService(
|
||||
@@ -142,9 +158,8 @@ describe('TeamService', () => {
|
||||
driverRepository as unknown as never,
|
||||
logger,
|
||||
teamStatsRepository as unknown as never,
|
||||
mediaRepository as unknown as never,
|
||||
resultRepository as unknown as never,
|
||||
allTeamsPresenter as unknown as never
|
||||
allTeamsPresenter as any
|
||||
);
|
||||
});
|
||||
|
||||
@@ -152,7 +167,9 @@ describe('TeamService', () => {
|
||||
teamRepository.findAll.mockResolvedValue([makeTeam()]);
|
||||
membershipRepository.countByTeamId.mockResolvedValue(3);
|
||||
|
||||
await expect(service.getAll()).resolves.toEqual({
|
||||
const result = await service.getAll();
|
||||
|
||||
await expect(result).toEqual({
|
||||
teams: [
|
||||
{
|
||||
id: 'team-1',
|
||||
@@ -161,6 +178,7 @@ describe('TeamService', () => {
|
||||
description: 'Desc',
|
||||
memberCount: 3,
|
||||
leagues: ['league-1'],
|
||||
logoUrl: null,
|
||||
},
|
||||
],
|
||||
totalCount: 1,
|
||||
@@ -200,6 +218,8 @@ describe('TeamService', () => {
|
||||
description: 'Desc',
|
||||
ownerId: 'owner-1',
|
||||
leagues: ['league-1'],
|
||||
category: undefined,
|
||||
isRecruiting: false,
|
||||
createdAt: '2023-01-01T00:00:00.000Z',
|
||||
},
|
||||
membership: {
|
||||
@@ -503,6 +523,8 @@ describe('TeamService', () => {
|
||||
description: 'Desc',
|
||||
ownerId: 'owner-1',
|
||||
leagues: ['league-1'],
|
||||
category: undefined,
|
||||
isRecruiting: false,
|
||||
createdAt: '2023-01-01T00:00:00.000Z',
|
||||
},
|
||||
membership: {
|
||||
|
||||
Reference in New Issue
Block a user