diff --git a/web/ui/react-app/src/pages/starting/Starting.test.tsx b/web/ui/react-app/src/pages/starting/Starting.test.tsx
new file mode 100644
index 000000000..80fc81430
--- /dev/null
+++ b/web/ui/react-app/src/pages/starting/Starting.test.tsx
@@ -0,0 +1,45 @@
+import * as React from 'react';
+import { shallow } from 'enzyme';
+import { WALReplayData } from '../../types/types';
+import { StartingContent } from './Starting';
+import { Progress } from 'reactstrap';
+
+describe('Starting', () => {
+ describe('progress bar', () => {
+ it('does not show when replay not started', () => {
+ const status: WALReplayData = {
+ min: 0,
+ max: 0,
+ current: 0,
+ };
+ const starting = shallow();
+ const progress = starting.find(Progress);
+ expect(progress).toHaveLength(0);
+ });
+
+ it('renders progress correctly', () => {
+ const status: WALReplayData = {
+ min: 0,
+ max: 20,
+ current: 1,
+ };
+ const starting = shallow();
+ const progress = starting.find(Progress);
+ expect(progress.prop('value')).toBe(2);
+ expect(progress.prop('min')).toBe(0);
+ expect(progress.prop('max')).toBe(21);
+ });
+
+ it('shows done when replay done', () => {
+ const status: WALReplayData = {
+ min: 0,
+ max: 20,
+ current: 20,
+ };
+ const starting = shallow();
+ const progress = starting.find(Progress);
+ expect(progress.prop('value')).toBe(21);
+ expect(progress.prop('color')).toBe('success');
+ });
+ });
+});
diff --git a/web/ui/react-app/src/pages/starting/Starting.tsx b/web/ui/react-app/src/pages/starting/Starting.tsx
index 24d45e1fb..936fea050 100644
--- a/web/ui/react-app/src/pages/starting/Starting.tsx
+++ b/web/ui/react-app/src/pages/starting/Starting.tsx
@@ -31,9 +31,9 @@ export const StartingContent: FC = ({ status, isUnexpected