Sergey Krylov cfadb2adbe feat: migrate from react-router-dom to @tanstack/react-router (code-first)
- Create code-first route tree in src/app/routing/routeTree.tsx
- Replace ProtectedRoute with beforeLoad auth guards
- Add useSearchParamsCompat for URLSearchParams access
- Update App.tsx, layouts, and all page/widget imports
- Add frontend tooling: biome, prettier, env config
- Update all tests for TanStack Router compatibility
- Remove react-router-dom dependency, @tanstack/router-plugin
- Consolidate biome config at root level
2026-06-23 06:51:48 +03:00

33 lines
1.3 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { renderHook, waitFor } from '@testing-library/react'
import type { ReactNode } from 'react'
import { describe, expect, it } from 'vitest'
import { useStock } from './useStock'
function createWrapper() {
const queryClient = new QueryClient({ defaultOptions: { queries: { retry: false } } })
return function Wrapper({ children }: { children: ReactNode }) {
return <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
}
}
describe('useStock', () => {
it('returns share data', async () => {
const { result } = renderHook(() => useStock('SBER'), { wrapper: createWrapper() })
await waitFor(() => expect(result.current.isSuccess).toBe(true))
expect(result.current.data?.secid).toBe('SBER')
expect(result.current.data?.shortName).toBe('Сбер')
expect(result.current.data?.marketData.price).toBe(289.5)
})
it('returns error for not found', async () => {
const { result } = renderHook(() => useStock('NOTFOUND'), { wrapper: createWrapper() })
await waitFor(() => expect(result.current.isError).toBe(true))
})
it('starts in loading state', () => {
const { result } = renderHook(() => useStock('SBER'), { wrapper: createWrapper() })
expect(result.current.isLoading).toBe(true)
})
})