lobe-chat

Форк
0
/
useTokenCount.test.ts 
41 строка · 1.3 Кб
1
import { renderHook, waitFor } from '@testing-library/react';
2
import { describe, expect, it, vi } from 'vitest';
3

4
import * as tokenizers from '@/utils/tokenizer';
5

6
import { useTokenCount } from './useTokenCount';
7

8
describe('useTokenCount', () => {
9
  // TODO: need to be fixed in the future
10
  it.skip('should return token count for given input', async () => {
11
    const { result } = renderHook(() => useTokenCount('test input'));
12

13
    expect(result.current).toBe(0);
14
    await waitFor(() => expect(result.current).toBe(2));
15
  });
16

17
  it('should fall back to input length if encodeAsync throws', async () => {
18
    const mockEncodeAsync = vi.spyOn(tokenizers, 'encodeAsync');
19
    mockEncodeAsync.mockRejectedValueOnce(new Error('encode error'));
20

21
    const { result } = renderHook(() => useTokenCount('test input'));
22

23
    expect(result.current).toBe(0);
24
    await waitFor(() => expect(result.current).toBe(0));
25

26
    mockEncodeAsync.mockClear();
27
  });
28

29
  it('should handle empty input', async () => {
30
    const { result } = renderHook(() => useTokenCount(''));
31

32
    expect(result.current).toBe(0);
33
    await waitFor(() => expect(result.current).toBe(0));
34
  });
35
  it('should handle null input', async () => {
36
    const { result } = renderHook(() => useTokenCount(null as any));
37

38
    expect(result.current).toBe(0);
39
    await waitFor(() => expect(result.current).toBe(0));
40
  });
41
});
42

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.