Skip to content

Commit dc573ba

Browse files
committed
fix(stepper): hide success icon on failure
1 parent ccadb27 commit dc573ba

2 files changed

Lines changed: 16 additions & 1 deletion

File tree

src/generic/course-stepper/CourseStepper.test.tsx

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
import { render, screen, initializeMocks } from '@src/testUtils';
22

3+
import { Icon } from '@openedx/paragon';
4+
import { ManageHistory as SuccessIcon, Settings as SettingsIcon } from '@openedx/paragon/icons';
5+
36
import CourseStepper from '.';
47

58
const stepsMock = [
@@ -84,6 +87,18 @@ describe('<CourseStepper />', () => {
8487
expect(errorStep).toHaveClass('error');
8588
});
8689

90+
it('shows neutral pending icon instead of success icon on the final step when an earlier step has an error', () => {
91+
renderComponent({ activeKey: 1, hasError: true, errorMessage: 'Export failed' });
92+
93+
const lastStepIcon = screen.getByTestId('Success-icon').querySelector('svg');
94+
// Render reference icons to compare the actual svg markup being shown
95+
const { container: successRef } = render(<Icon src={SuccessIcon} />);
96+
const { container: settingsRef } = render(<Icon src={SettingsIcon} />);
97+
98+
expect(lastStepIcon?.outerHTML).not.toEqual(successRef.querySelector('svg')?.outerHTML);
99+
expect(lastStepIcon?.outerHTML).toEqual(settingsRef.querySelector('svg')?.outerHTML);
100+
});
101+
87102
it('shows percentage for active step', () => {
88103
const percent = 50;
89104
renderComponent({ activeKey: 1, percent });

src/generic/course-stepper/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ const CourseStepper = ({
4242
if (hasError && isActiveStep) {
4343
return ErrorIcon;
4444
}
45-
if (isLastStep && !isActiveStep) {
45+
if (isLastStep && !isActiveStep && !hasError) {
4646
return SuccessIcon;
4747
}
4848
if (isLastStepDone) {

0 commit comments

Comments
 (0)