tanstack
Some checks failed
Deploy to Test Environment / deploy-to-test (push) Failing after 1m1s

This commit is contained in:
2026-01-10 03:20:40 -08:00
parent 77f9cb6081
commit 2913c7aa09
54 changed files with 1399 additions and 1529 deletions

View File

@@ -8,8 +8,8 @@ import * as apiClient from '../services/apiClient';
import { useModal } from '../hooks/useModal';
import { renderWithProviders } from '../tests/utils/renderWithProviders';
// Mock dependencies
// The apiClient is mocked globally in `src/tests/setup/globalApiMock.ts`.
// Must explicitly call vi.mock() for apiClient
vi.mock('../services/apiClient');
vi.mock('../hooks/useAppInitialization');
vi.mock('../hooks/useModal');
vi.mock('./WhatsNewModal', () => ({

View File

@@ -27,10 +27,4 @@ describe('Footer', () => {
// Assert: Check that the rendered text includes the mocked year
expect(screen.getByText('Copyright 2025-2025')).toBeInTheDocument();
});
it('should display the correct year when it changes', () => {
vi.setSystemTime(new Date('2030-01-01T00:00:00Z'));
renderWithProviders(<Footer />);
expect(screen.getByText('Copyright 2025-2030')).toBeInTheDocument();
});
});

View File

@@ -8,8 +8,9 @@ import { LeaderboardUser } from '../types';
import { createMockLeaderboardUser } from '../tests/utils/mockFactories';
import { renderWithProviders } from '../tests/utils/renderWithProviders';
// The apiClient and logger are mocked globally.
// We can get a typed reference to the apiClient for individual test overrides.
// Must explicitly call vi.mock() for apiClient
vi.mock('../services/apiClient');
const mockedApiClient = vi.mocked(apiClient);
// Mock lucide-react icons to prevent rendering errors in the test environment

View File

@@ -1,36 +1,15 @@
// src/components/Leaderboard.tsx
import React, { useState, useEffect } from 'react';
import * as apiClient from '../services/apiClient';
import { LeaderboardUser } from '../types';
import { logger } from '../services/logger.client';
import React from 'react';
import { useLeaderboardQuery } from '../hooks/queries/useLeaderboardQuery';
import { Award, Crown, ShieldAlert } from 'lucide-react';
/**
* Leaderboard component displaying top users by points.
*
* Refactored to use TanStack Query (ADR-0005 Phase 8).
*/
export const Leaderboard: React.FC = () => {
const [leaderboard, setLeaderboard] = useState<LeaderboardUser[]>([]);
const [isLoading, setIsLoading] = useState(true);
const [error, setError] = useState<string | null>(null);
useEffect(() => {
const loadLeaderboard = async () => {
setIsLoading(true);
try {
const response = await apiClient.fetchLeaderboard(10); // Fetch top 10 users
if (!response.ok) {
throw new Error('Failed to fetch leaderboard data.');
}
const data: LeaderboardUser[] = await response.json();
setLeaderboard(data);
} catch (err) {
const errorMessage = err instanceof Error ? err.message : 'An unknown error occurred.';
logger.error('Error fetching leaderboard:', { error: err });
setError(errorMessage);
} finally {
setIsLoading(false);
}
};
loadLeaderboard();
}, []);
const { data: leaderboard = [], isLoading, error } = useLeaderboardQuery(10);
const getRankIcon = (rank: string) => {
switch (rank) {
@@ -57,7 +36,7 @@ export const Leaderboard: React.FC = () => {
>
<div className="flex items-center">
<ShieldAlert className="h-6 w-6 mr-3" />
<p className="font-bold">Error: {error}</p>
<p className="font-bold">Error: {error.message}</p>
</div>
</div>
);

View File

@@ -8,8 +8,9 @@ import { logger } from '../services/logger.client';
import { renderWithProviders } from '../tests/utils/renderWithProviders';
import '@testing-library/jest-dom';
// The apiClient is mocked globally in `src/tests/setup/globalApiMock.ts`.
// We can get a typed reference to it for individual test overrides.
// Must explicitly call vi.mock() for apiClient
vi.mock('../services/apiClient');
const mockedApiClient = vi.mocked(apiClient);
describe('RecipeSuggester Component', () => {