diff --git a/src/components/stepindicator/StepIndicator/StepIndicator.stories.tsx b/src/components/stepindicator/StepIndicator/StepIndicator.stories.tsx index 15a7a991b6..1a5eac04d4 100644 --- a/src/components/stepindicator/StepIndicator/StepIndicator.stories.tsx +++ b/src/components/stepindicator/StepIndicator/StepIndicator.stories.tsx @@ -18,10 +18,27 @@ Updates users on their progress through a multi-step process. }, }, }, + argTypes: { + stepText: { + control: 'text', + }, + ofText: { + control: 'text', + }, + }, + args: { + stepText: 'Step', + ofText: 'of', + } +} + +type StorybookArguments = { + stepText: string + ofText: string } -export const defaultStepIndicator = (): React.ReactElement => ( - +export const defaultStepIndicator = (args: StorybookArguments): React.ReactElement => ( + @@ -30,8 +47,8 @@ export const defaultStepIndicator = (): React.ReactElement => ( ) -export const noLabels = (): React.ReactElement => ( - +export const noLabels = (args: StorybookArguments): React.ReactElement => ( + @@ -40,8 +57,8 @@ export const noLabels = (): React.ReactElement => ( ) -export const centered = (): React.ReactElement => ( - +export const centered = (args: StorybookArguments): React.ReactElement => ( + @@ -50,8 +67,8 @@ export const centered = (): React.ReactElement => ( ) -export const counters = (): React.ReactElement => ( - +export const counters = (args: StorybookArguments): React.ReactElement => ( + @@ -60,8 +77,8 @@ export const counters = (): React.ReactElement => ( ) -export const smallCounters = (): React.ReactElement => ( - +export const smallCounters = (args: StorybookArguments): React.ReactElement => ( + @@ -70,8 +87,8 @@ export const smallCounters = (): React.ReactElement => ( ) -export const differentHeadingLevel = (): React.ReactElement => ( - +export const differentHeadingLevel = (args: StorybookArguments): React.ReactElement => ( + diff --git a/src/components/stepindicator/StepIndicator/StepIndicator.test.tsx b/src/components/stepindicator/StepIndicator/StepIndicator.test.tsx index dddfc15305..04542c2376 100644 --- a/src/components/stepindicator/StepIndicator/StepIndicator.test.tsx +++ b/src/components/stepindicator/StepIndicator/StepIndicator.test.tsx @@ -1,5 +1,5 @@ import React from 'react' -import { render } from '@testing-library/react' +import { render, within } from '@testing-library/react' import { StepIndicatorStep } from '../StepIndicatorStep/StepIndicatorStep' import { StepIndicator } from '../StepIndicator/StepIndicator' import { HeadingLevel } from '../../../types/headingLevel' @@ -163,4 +163,32 @@ describe('StepIndicator component', () => { 'usa-step-indicator__heading my-custom-className' ) }) + + it('renders properly with translatable \'of\' string', () => { + const ofText = 'de' + const { queryByText } = render( + + + + + + ) + const totalSteps = queryByText(`${ofText} 3`) + expect(totalSteps).toBeInTheDocument() + expect(totalSteps).toHaveClass('usa-step-indicator__total-steps') + }) + + it('renders properly with translatable \'step\' string', () => { + const stepText = 'Paso' + const { getByTestId } = render( + + + + + + ) + const stepIndicator = getByTestId('step-indicator') + const stepSrOnly = within(stepIndicator).queryByText(stepText) + expect(stepSrOnly).toHaveClass('usa-sr-only') + }) }) diff --git a/src/components/stepindicator/StepIndicator/StepIndicator.tsx b/src/components/stepindicator/StepIndicator/StepIndicator.tsx index 0d05459b9f..fd38a80f83 100644 --- a/src/components/stepindicator/StepIndicator/StepIndicator.tsx +++ b/src/components/stepindicator/StepIndicator/StepIndicator.tsx @@ -16,6 +16,8 @@ type StepIndicatorProps = { HTMLHeadingElement > headingLevel: HeadingLevel + stepText?: string + ofText?: string } export const StepIndicator = ( props: StepIndicatorProps @@ -30,6 +32,8 @@ export const StepIndicator = ( listProps, headingProps, headingLevel, + stepText = 'Step', + ofText = 'of', } = props const Heading = headingLevel @@ -84,12 +88,12 @@ export const StepIndicator = (
- Step + {stepText} {currentStepNumber}   - {`of ${totalNumberOfSteps}`} + {`${ofText} ${totalNumberOfSteps}`}