test(worker): lib/api + app/nav — fill gaps + lifecycle test
This commit is contained in:
25
apps/worker/src/api/me.test.tsx
Normal file
25
apps/worker/src/api/me.test.tsx
Normal file
@@ -0,0 +1,25 @@
|
||||
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');
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user