jan/web/hooks/useGetHFRepoData.test.ts
Louis 87e1754e3a
chore: improve models and threads caching (#3744)
* chore: managing and maintaining models and threads in the cache

* test: add tests for hooks
2024-10-01 10:15:30 +07:00

40 lines
1.1 KiB
TypeScript

import { renderHook, act } from '@testing-library/react'
import { useGetHFRepoData } from './useGetHFRepoData'
import { extensionManager } from '@/extension'
jest.mock('@/extension', () => ({
extensionManager: {
get: jest.fn(),
},
}))
describe('useGetHFRepoData', () => {
beforeEach(() => {
jest.clearAllMocks()
})
it('should fetch HF repo data successfully', async () => {
const mockData = { name: 'Test Repo', stars: 100 }
const mockFetchHuggingFaceRepoData = jest.fn().mockResolvedValue(mockData)
;(extensionManager.get as jest.Mock).mockReturnValue({
fetchHuggingFaceRepoData: mockFetchHuggingFaceRepoData,
})
const { result } = renderHook(() => useGetHFRepoData())
expect(result.current.loading).toBe(false)
expect(result.current.error).toBeUndefined()
let data
act(() => {
data = result.current.getHfRepoData('test-repo')
})
expect(result.current.loading).toBe(true)
expect(result.current.error).toBeUndefined()
expect(await data).toEqual(mockData)
expect(mockFetchHuggingFaceRepoData).toHaveBeenCalledWith('test-repo')
})
})