lobe-chat

Форк
0
/
usePlatform.test.ts 
82 строки · 2.5 Кб
1
import { renderHook } from '@testing-library/react';
2
import { describe, expect, it, vi } from 'vitest';
3

4
import * as platformUtils from '@/utils/platform';
5

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

8
// Mocks
9
vi.mock('@/utils/platform', () => ({
10
  getBrowser: vi.fn(),
11
  getPlatform: vi.fn(),
12
  isInStandaloneMode: vi.fn(),
13
  isSonomaOrLaterSafari: vi.fn(),
14
}));
15

16
describe('usePlatform', () => {
17
  it('should return correct platform info for Mac OS and Chrome', () => {
18
    vi.mocked(platformUtils.getPlatform).mockReturnValue('Mac OS');
19
    vi.mocked(platformUtils.getBrowser).mockReturnValue('Chrome');
20
    vi.mocked(platformUtils.isInStandaloneMode).mockReturnValue(false);
21
    vi.mocked(platformUtils.isSonomaOrLaterSafari).mockReturnValue(false);
22

23
    const { result } = renderHook(() => usePlatform());
24

25
    expect(result.current).toEqual({
26
      isApple: true,
27
      isChrome: true,
28
      isChromium: true,
29
      isEdge: false,
30
      isIOS: false,
31
      isMacOS: true,
32
      isPWA: false,
33
      isSafari: false,
34
      isSonomaOrLaterSafari: false,
35
      isSupportInstallPWA: true,
36
    });
37
  });
38

39
  it('should return correct platform info for iOS and Safari', () => {
40
    vi.mocked(platformUtils.getPlatform).mockReturnValue('iOS');
41
    vi.mocked(platformUtils.getBrowser).mockReturnValue('Safari');
42
    vi.mocked(platformUtils.isInStandaloneMode).mockReturnValue(true);
43
    vi.mocked(platformUtils.isSonomaOrLaterSafari).mockReturnValue(true);
44

45
    const { result } = renderHook(() => usePlatform());
46

47
    expect(result.current).toEqual({
48
      isApple: true,
49
      isChrome: false,
50
      isChromium: false,
51
      isEdge: false,
52
      isIOS: true,
53
      isMacOS: false,
54
      isPWA: true,
55
      isSafari: true,
56
      isSonomaOrLaterSafari: true,
57
      isSupportInstallPWA: false,
58
    });
59
  });
60

61
  it('should return correct platform info for Windows and Edge', () => {
62
    vi.mocked(platformUtils.getPlatform).mockReturnValue('Windows');
63
    vi.mocked(platformUtils.getBrowser).mockReturnValue('Edge');
64
    vi.mocked(platformUtils.isInStandaloneMode).mockReturnValue(false);
65
    vi.mocked(platformUtils.isSonomaOrLaterSafari).mockReturnValue(false);
66

67
    const { result } = renderHook(() => usePlatform());
68

69
    expect(result.current).toEqual({
70
      isApple: false,
71
      isChrome: false,
72
      isChromium: true,
73
      isEdge: true,
74
      isIOS: false,
75
      isMacOS: false,
76
      isPWA: false,
77
      isSafari: false,
78
      isSonomaOrLaterSafari: false,
79
      isSupportInstallPWA: true,
80
    });
81
  });
82
});
83

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

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

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

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