import * as React from 'react';
import { act, render, screen } from '../../../../test-utils/testing-library';
import ProgressBar from '../ProgressBar';
describe('ProgressBar', () => {
test('renders with initial percent', () => {
render();
const progressBar = screen.getByRole('progressbar');
expect(progressBar).toHaveStyle({ width: '20%' });
});
test('updates percent when props change', () => {
const { rerender } = render();
rerender();
const progressBar = screen.getByRole('progressbar');
expect(progressBar).toHaveStyle({ width: '30%' });
});
test('resets percent to 0 after reaching 100%', async () => {
jest.useFakeTimers();
render();
act(() => {
jest.advanceTimersByTime(250000); // yes it has to be at least 250000ms, any less it will not hit 100%
});
const progressBar = await screen.getByRole('progressbar');
expect(progressBar).toHaveStyle({ width: '100%' });
jest.useRealTimers();
});
});