todo-app

Форк
0
/
use-progress.test.ts 
61 строка · 1.6 Кб
1
import { describe, expect, test, beforeAll, afterAll, vi } from 'vitest';
2
import { renderHook } from '@testing-library/react';
3
import { useProgress } from './use-progress';
4

5
const start = '2024-01-01T00:00:00Z';
6
const end = '2024-01-01T12:00:00Z';
7

8
describe('useProgress', () => {
9
  beforeAll(() => {
10
    vi.useFakeTimers();
11
  });
12

13
  afterAll(() => {
14
    vi.useRealTimers();
15
  });
16

17
  test('checks progress calculation 1', () => {
18
    vi.setSystemTime('2024-01-01T00:00:00Z');
19

20
    const { result } = renderHook(() => useProgress(start, end, 1, false));
21

22
    expect(result.current).toBe(0);
23
  });
24

25
  test('checks progress calculation 2', () => {
26
    vi.setSystemTime('2024-01-01T06:00:00Z');
27

28
    const { result } = renderHook(() => useProgress(start, end, 1, false));
29

30
    expect(result.current).toBe(0.5);
31
  });
32

33
  test('checks progress calculation 3', () => {
34
    vi.setSystemTime('2024-01-01T12:00:00Z');
35

36
    const { result } = renderHook(() => useProgress(start, end, 1, false));
37

38
    expect(result.current).toBe(1);
39
  });
40

41
  test('checks progress calculation 4', () => {
42
    vi.setSystemTime('2024-01-01T18:00:00Z');
43

44
    const { result } = renderHook(() => useProgress(start, end, 1, false));
45

46
    expect(result.current).toBe(1);
47
  });
48

49
  test('checks that progress is calculated correctly using a timer', () => {
50
    vi.setSystemTime('2024-01-01T00:00:00Z');
51

52
    const { result, rerender } = renderHook(() => useProgress(start, end));
53

54
    for (let index = 0; index <= 12; index++) {
55
      rerender();
56
      expect(result.current).toBe(index / 12);
57

58
      vi.advanceTimersByTime(60 * 60 * 1000);
59
    }
60
  });
61
});
62

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

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

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

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