import { describe, expect, it, vi } from 'vitest'; import { renderHook, waitFor } from '@testing-library/react'; import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import type { ReactNode } from 'react'; import { apiFetch } from '../lib/api'; import { useMe } from './me'; vi.mock('../lib/api', () => ({ apiFetch: vi.fn().mockResolvedValue({ user: { id: 'u1', email: 'a@b.c', name: 'A' } }), })); const mockedApiFetch = vi.mocked(apiFetch); const wrapper = ({ children }: { children: ReactNode }) => ( {children} ); describe('useMe', () => { it('queries GET /api/me', async () => { const { result } = renderHook(() => useMe(), { wrapper }); await waitFor(() => expect(result.current.isSuccess).toBe(true)); expect(mockedApiFetch).toHaveBeenCalledWith('/api/me'); }); });