di usage in website

This commit is contained in:
2026-01-06 19:36:03 +01:00
parent 589b55a87e
commit e589c30bf8
191 changed files with 6367 additions and 4253 deletions

View File

@@ -1,8 +1,14 @@
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
import { render, screen, fireEvent, waitFor, cleanup } from '@testing-library/react';
import '@testing-library/jest-dom';
import LeagueAdminSchedulePage from './page';
// Mock useEffectiveDriverId
vi.mock('@/hooks/useEffectiveDriverId', () => ({
useEffectiveDriverId: () => 'driver-1',
}));
type SeasonSummaryViewModel = {
seasonId: string;
name: string;
@@ -82,8 +88,42 @@ const mockServices = {
},
};
vi.mock('@/lib/services/ServiceProvider', () => ({
useServices: () => mockServices,
// Mock useInject to return mocked services
vi.mock('@/lib/di/hooks/useInject', () => ({
useInject: (token: symbol) => {
const tokenStr = token.toString();
if (tokenStr.includes('LEAGUE_SERVICE_TOKEN')) {
return {
getLeagueSeasonSummaries: mockGetLeagueSeasonSummaries,
getAdminSchedule: mockGetAdminSchedule,
publishAdminSchedule: mockPublishAdminSchedule,
unpublishAdminSchedule: mockUnpublishAdminSchedule,
createAdminScheduleRace: mockCreateAdminScheduleRace,
updateAdminScheduleRace: mockUpdateAdminScheduleRace,
deleteAdminScheduleRace: mockDeleteAdminScheduleRace,
};
}
if (tokenStr.includes('LEAGUE_MEMBERSHIP_SERVICE_TOKEN')) {
return {
fetchLeagueMemberships: mockFetchLeagueMemberships,
getMembership: mockGetMembership,
};
}
return {};
},
}));
// Mock the static LeagueMembershipService for LeagueMembershipUtility
vi.mock('@/lib/services/leagues/LeagueMembershipService', () => ({
LeagueMembershipService: {
getMembership: mockGetMembership,
fetchLeagueMemberships: mockFetchLeagueMemberships,
setLeagueMemberships: vi.fn(),
clearLeagueMemberships: vi.fn(),
getCachedMembershipsIterator: vi.fn(() => [][Symbol.iterator]()),
getAllMembershipsForDriver: vi.fn(() => []),
getLeagueMembers: vi.fn(() => []),
},
}));
function createAdminScheduleViewModel(overrides: Partial<AdminScheduleViewModel> = {}): AdminScheduleViewModel {
@@ -114,6 +154,7 @@ describe('LeagueAdminSchedulePage', () => {
mockFetchLeagueMemberships.mockReset();
mockGetMembership.mockReset();
// Set up default mock implementations
mockFetchLeagueMemberships.mockResolvedValue([]);
mockGetMembership.mockReturnValue({ role: 'admin' });
});