Files
solelog/apps/worker/src/api/me.test.tsx

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');
});
});