import { act, renderHook } from '@testing-library/react-native' import { useDebouncedSearchTerm } from '../use_debounced_search_term' beforeEach(() => jest.useFakeTimers()) afterEach(() => jest.useRealTimers()) describe('useDebouncedSearchTerm', () => { it('settles on the trimmed term once typing pauses', () => { const { result, rerender } = renderHook( ({ term }: { term: string }) => useDebouncedSearchTerm(term), { initialProps: { term: 'bud' }, } ) rerender({ term: ' budget ' }) act(() => jest.advanceTimersByTime(199)) expect(result.current).toBe('') act(() => jest.advanceTimersByTime(1)) expect(result.current).toBe('budget') }) it('clears immediately when the term empties', () => { const { result, rerender } = renderHook( ({ term }: { term: string }) => useDebouncedSearchTerm(term), { initialProps: { term: 'budget' }, } ) act(() => jest.advanceTimersByTime(200)) expect(result.current).toBe('budget') rerender({ term: ' ' }) expect(result.current).toBe('') }) })