diff --git a/packages/core/src/components/SimpleStepper/SimpleStepper.test.tsx b/packages/core/src/components/SimpleStepper/SimpleStepper.test.tsx
index f07ceca6ff..3015da3029 100644
--- a/packages/core/src/components/SimpleStepper/SimpleStepper.test.tsx
+++ b/packages/core/src/components/SimpleStepper/SimpleStepper.test.tsx
@@ -23,6 +23,33 @@ const getTextInSlide = (rendered: any, index: number) =>
within(rendered.getByTestId(`step${index}`)).getByText;
describe('Stepper', () => {
+ it('Maintains state history', async () => {
+ const rendered = render(
+ wrapInTestApp(
+
+
+ step0
+
+
+ step1
+
+
+ step2
+
+ ,
+ ),
+ );
+
+ fireEvent.click(getTextInSlide(rendered, 0)('Next') as Node);
+ expect(rendered.getByText('step1')).toBeInTheDocument();
+
+ fireEvent.click(getTextInSlide(rendered, 1)('Back') as Node);
+ expect(rendered.getByText('step0')).toBeInTheDocument();
+
+ fireEvent.click(getTextInSlide(rendered, 0)('Next') as Node);
+ expect(rendered.getByText('step1')).toBeInTheDocument();
+ });
+
it('Handles nextStep property', async () => {
const rendered = render(
wrapInTestApp(
diff --git a/packages/core/src/components/SimpleStepper/SimpleStepper.tsx b/packages/core/src/components/SimpleStepper/SimpleStepper.tsx
index a13ad6b5ee..b55d70e9a0 100644
--- a/packages/core/src/components/SimpleStepper/SimpleStepper.tsx
+++ b/packages/core/src/components/SimpleStepper/SimpleStepper.tsx
@@ -42,7 +42,7 @@ export interface StepperProps {
const Stepper: FC = ({ children, elevated, onStepChange }) => {
const [stepIndex, setStepIndex] = useState(0);
- const [stepHistory, setStepHistory] = useState([]);
+ const [stepHistory, setStepHistory] = useState([0]);
const steps: React.ReactNode[] = [];
let endStep;