Files
explore/lib/clusters/useClusterSearch.spec.ts
tom goriunovandGitHub 5d337fc555 Migrate from Jest to Vitest (#3173)
* first part of transition

* second part of transition

* remove jest

* bump up node version and playwright version

* update all screenshots because of the new playwright version

* fix tests

* one more screenshot update
2025-12-10 19:21:07 +01:00

53 lines
1.4 KiB
TypeScript

// @vitest-environment jsdom
import { useRouter } from 'next/router';
import type { Mock } from 'vitest';
import { describe, it, expect, beforeEach, vi } from 'vitest';
import { renderHook } from 'vitest/lib';
import { useClusterSearch } from './useClusterSearch';
vi.mock('next/router', () => ({
useRouter: vi.fn(),
}));
const mockUseRouter = useRouter as Mock<typeof useRouter>;
describe('useClusterSearch', () => {
beforeEach(() => {
vi.clearAllMocks();
});
it('should return search term from router query', async() => {
mockUseRouter.mockReturnValue({
query: { q: 'test-search' },
} as unknown as ReturnType<typeof useRouter>);
const { result } = await renderHook(() => useClusterSearch());
expect(result.current.searchTerm).toBe('test-search');
});
it('should debounce search term', async() => {
mockUseRouter.mockReturnValue({
query: { q: 'test' },
} as unknown as ReturnType<typeof useRouter>);
const { result } = await renderHook(() => useClusterSearch());
expect(result.current.debouncedSearchTerm).toBe('test');
});
it('should handle empty query', async() => {
mockUseRouter.mockReturnValue({
query: {},
} as unknown as ReturnType<typeof useRouter>);
const { result } = await renderHook(() => useClusterSearch());
expect(result.current.searchTerm).toBe('');
expect(result.current.debouncedSearchTerm).toBe('');
});
});