1
import { describe, expect, test, beforeAll, afterAll, vi } from 'vitest';
2
import { renderHook } from '@testing-library/react';
3
import { useProgress } from './use-progress';
5
const start = '2024-01-01T00:00:00Z';
6
const end = '2024-01-01T12:00:00Z';
8
describe('useProgress', () => {
17
test('checks progress calculation 1', () => {
18
vi.setSystemTime('2024-01-01T00:00:00Z');
20
const { result } = renderHook(() => useProgress(start, end, 1, false));
22
expect(result.current).toBe(0);
25
test('checks progress calculation 2', () => {
26
vi.setSystemTime('2024-01-01T06:00:00Z');
28
const { result } = renderHook(() => useProgress(start, end, 1, false));
30
expect(result.current).toBe(0.5);
33
test('checks progress calculation 3', () => {
34
vi.setSystemTime('2024-01-01T12:00:00Z');
36
const { result } = renderHook(() => useProgress(start, end, 1, false));
38
expect(result.current).toBe(1);
41
test('checks progress calculation 4', () => {
42
vi.setSystemTime('2024-01-01T18:00:00Z');
44
const { result } = renderHook(() => useProgress(start, end, 1, false));
46
expect(result.current).toBe(1);
49
test('checks that progress is calculated correctly using a timer', () => {
50
vi.setSystemTime('2024-01-01T00:00:00Z');
52
const { result, rerender } = renderHook(() => useProgress(start, end));
54
for (let index = 0; index <= 12; index++) {
56
expect(result.current).toBe(index / 12);
58
vi.advanceTimersByTime(60 * 60 * 1000);