26 lines
944 B
TypeScript
26 lines
944 B
TypeScript
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 }) => (
|
|
<QueryClientProvider client={new QueryClient({ defaultOptions: { queries: { retry: false } } })}>
|
|
{children}
|
|
</QueryClientProvider>
|
|
);
|
|
|
|
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');
|
|
});
|
|
});
|