@@ -2,6 +2,7 @@ import React from 'react';
22import { render } from '@testing-library/react' ;
33import userEvent from '@testing-library/user-event' ;
44
5+ import { getTestUtils } from '../testing' ;
56import { useWizardStepContext } from '../WizardStep' ;
67
78import { Wizard } from '.' ;
@@ -69,7 +70,7 @@ describe('packages/wizard', () => {
6970 } ) ;
7071
7172 test ( 'does not render back button on first step' , ( ) => {
72- const { queryByRole , getByRole } = render (
73+ render (
7374 < Wizard activeStep = { 0 } >
7475 < Wizard . Step >
7576 < div data-testid = "step-1-content" > Content 1</ div >
@@ -88,13 +89,15 @@ describe('packages/wizard', () => {
8889 </ Wizard > ,
8990 ) ;
9091
92+ const { queryBackButton, getPrimaryButton } = getTestUtils ( ) ;
93+
9194 // Back button should not be rendered on first step
92- expect ( queryByRole ( 'button' , { name : 'Back' } ) ) . not . toBeInTheDocument ( ) ;
93- expect ( getByRole ( 'button' , { name : 'Next' } ) ) . toBeInTheDocument ( ) ;
95+ expect ( queryBackButton ( ) ) . not . toBeInTheDocument ( ) ;
96+ expect ( getPrimaryButton ( ) ) . toBeInTheDocument ( ) ;
9497 } ) ;
9598
9699 test ( 'renders back button on second step' , ( ) => {
97- const { getByRole } = render (
100+ render (
98101 < Wizard activeStep = { 1 } >
99102 < Wizard . Step >
100103 < div data-testid = "step-1-content" > Content 1</ div >
@@ -113,16 +116,18 @@ describe('packages/wizard', () => {
113116 </ Wizard > ,
114117 ) ;
115118
116- expect ( getByRole ( 'button' , { name : 'Back' } ) ) . toBeInTheDocument ( ) ;
117- expect ( getByRole ( 'button' , { name : 'Next' } ) ) . toBeInTheDocument ( ) ;
119+ const { getBackButton, getPrimaryButton } = getTestUtils ( ) ;
120+
121+ expect ( getBackButton ( ) ) . toBeInTheDocument ( ) ;
122+ expect ( getPrimaryButton ( ) ) . toBeInTheDocument ( ) ;
118123 } ) ;
119124 } ) ;
120125
121126 describe ( 'interaction' , ( ) => {
122127 test ( 'calls `onStepChange` when incrementing step' , async ( ) => {
123128 const onStepChange = jest . fn ( ) ;
124129
125- const { getByRole } = render (
130+ render (
126131 < Wizard activeStep = { 0 } onStepChange = { onStepChange } >
127132 < Wizard . Step >
128133 < div data-testid = "step-1-content" > Content 1</ div >
@@ -135,15 +140,16 @@ describe('packages/wizard', () => {
135140 </ Wizard > ,
136141 ) ;
137142
138- await userEvent . click ( getByRole ( 'button' , { name : 'Next' } ) ) ;
143+ const { getPrimaryButton } = getTestUtils ( ) ;
144+ userEvent . click ( getPrimaryButton ( ) ) ;
139145
140146 expect ( onStepChange ) . toHaveBeenCalledWith ( 1 ) ;
141147 } ) ;
142148
143149 test ( 'calls `onStepChange` when decrementing step' , async ( ) => {
144150 const onStepChange = jest . fn ( ) ;
145151
146- const { getByRole } = render (
152+ render (
147153 < Wizard activeStep = { 1 } onStepChange = { onStepChange } >
148154 < Wizard . Step >
149155 < div data-testid = "step-1-content" > Content 1</ div >
@@ -162,7 +168,8 @@ describe('packages/wizard', () => {
162168 </ Wizard > ,
163169 ) ;
164170
165- await userEvent . click ( getByRole ( 'button' , { name : 'Back' } ) ) ;
171+ const { getBackButton } = getTestUtils ( ) ;
172+ userEvent . click ( getBackButton ( ) ) ;
166173
167174 expect ( onStepChange ) . toHaveBeenCalledWith ( 0 ) ;
168175 } ) ;
@@ -173,7 +180,7 @@ describe('packages/wizard', () => {
173180 const onPrimaryClick = jest . fn ( ) ;
174181 const onCancelClick = jest . fn ( ) ;
175182
176- const { getByRole } = render (
183+ render (
177184 < Wizard activeStep = { 1 } onStepChange = { onStepChange } >
178185 < Wizard . Step >
179186 < div data-testid = "step-1-content" > Content 1</ div >
@@ -194,21 +201,24 @@ describe('packages/wizard', () => {
194201 </ Wizard > ,
195202 ) ;
196203
197- await userEvent . click ( getByRole ( 'button' , { name : 'Back' } ) ) ;
204+ const { getBackButton, getPrimaryButton, getCancelButton } =
205+ getTestUtils ( ) ;
206+
207+ userEvent . click ( getBackButton ( ) ) ;
198208 expect ( onBackClick ) . toHaveBeenCalled ( ) ;
199209 expect ( onStepChange ) . toHaveBeenCalledWith ( 0 ) ;
200210
201- await userEvent . click ( getByRole ( 'button' , { name : 'Next' } ) ) ;
211+ userEvent . click ( getPrimaryButton ( ) ) ;
202212 expect ( onPrimaryClick ) . toHaveBeenCalled ( ) ;
203213 expect ( onStepChange ) . toHaveBeenCalledWith ( 1 ) ;
204214
205- await userEvent . click ( getByRole ( 'button' , { name : 'Cancel' } ) ) ;
215+ userEvent . click ( getCancelButton ( ) ) ;
206216 expect ( onCancelClick ) . toHaveBeenCalled ( ) ;
207217 } ) ;
208218
209219 describe ( 'uncontrolled' , ( ) => {
210220 test ( 'does not increment step beyond Steps count' , async ( ) => {
211- const { getByTestId, queryByTestId, getByRole } = render (
221+ const { getByTestId, queryByTestId } = render (
212222 < Wizard >
213223 < Wizard . Step >
214224 < div data-testid = "step-1-content" > Content 1</ div >
@@ -221,16 +231,18 @@ describe('packages/wizard', () => {
221231 </ Wizard > ,
222232 ) ;
223233
234+ const { getPrimaryButton } = getTestUtils ( ) ;
235+
224236 // Start at step 1
225237 expect ( getByTestId ( 'step-1-content' ) ) . toBeInTheDocument ( ) ;
226238
227239 // Click next to go to step 2
228- await userEvent . click ( getByRole ( 'button' , { name : 'Next' } ) ) ;
240+ userEvent . click ( getPrimaryButton ( ) ) ;
229241 expect ( getByTestId ( 'step-2-content' ) ) . toBeInTheDocument ( ) ;
230242 expect ( queryByTestId ( 'step-1-content' ) ) . not . toBeInTheDocument ( ) ;
231243
232244 // Click next again - should stay at step 2 (last step)
233- await userEvent . click ( getByRole ( 'button' , { name : 'Next' } ) ) ;
245+ userEvent . click ( getPrimaryButton ( ) ) ;
234246 expect ( getByTestId ( 'step-2-content' ) ) . toBeInTheDocument ( ) ;
235247 expect ( queryByTestId ( 'step-1-content' ) ) . not . toBeInTheDocument ( ) ;
236248 } ) ;
@@ -240,7 +252,7 @@ describe('packages/wizard', () => {
240252 test ( 'does not change steps internally when controlled' , async ( ) => {
241253 const onStepChange = jest . fn ( ) ;
242254
243- const { getByTestId, queryByTestId, getByRole } = render (
255+ const { getByTestId, queryByTestId } = render (
244256 < Wizard activeStep = { 0 } onStepChange = { onStepChange } >
245257 < Wizard . Step >
246258 < div data-testid = "step-1-content" > Content 1</ div >
@@ -253,11 +265,13 @@ describe('packages/wizard', () => {
253265 </ Wizard > ,
254266 ) ;
255267
268+ const { getPrimaryButton } = getTestUtils ( ) ;
269+
256270 // Should start at step 1
257271 expect ( getByTestId ( 'step-1-content' ) ) . toBeInTheDocument ( ) ;
258272
259273 // Click next
260- await userEvent . click ( getByRole ( 'button' , { name : 'Next' } ) ) ;
274+ userEvent . click ( getPrimaryButton ( ) ) ;
261275
262276 // Should still be at step 1 since it's controlled
263277 expect ( getByTestId ( 'step-1-content' ) ) . toBeInTheDocument ( ) ;
@@ -318,7 +332,7 @@ describe('packages/wizard', () => {
318332
319333 describe ( 'requiresAcknowledgement' , ( ) => {
320334 test ( 'disables primary button when requiresAcknowledgement is true and not acknowledged' , ( ) => {
321- const { getByRole } = render (
335+ render (
322336 < Wizard >
323337 < Wizard . Step requiresAcknowledgement >
324338 < div data-testid = "step-1-content" > Content 1</ div >
@@ -327,8 +341,8 @@ describe('packages/wizard', () => {
327341 </ Wizard > ,
328342 ) ;
329343
330- const primaryButton = getByRole ( 'button' , { name : 'Next' } ) ;
331- expect ( primaryButton ) . toHaveAttribute ( 'aria-disabled' , ' true' ) ;
344+ const { isPrimaryButtonDisabled } = getTestUtils ( ) ;
345+ expect ( isPrimaryButtonDisabled ( ) ) . toBe ( true ) ;
332346 } ) ;
333347
334348 test ( 'enables primary button when requiresAcknowledgement is true and acknowledged' , async ( ) => {
@@ -349,18 +363,18 @@ describe('packages/wizard', () => {
349363 </ Wizard > ,
350364 ) ;
351365
352- const primaryButton = getByRole ( 'button' , { name : 'Next' } ) ;
353- expect ( primaryButton ) . toHaveAttribute ( 'aria-disabled' , ' true' ) ;
366+ const { isPrimaryButtonDisabled } = getTestUtils ( ) ;
367+ expect ( isPrimaryButtonDisabled ( ) ) . toBe ( true ) ;
354368
355369 // Acknowledge the step
356370 const acknowledgeButton = getByRole ( 'button' , { name : 'Acknowledge' } ) ;
357- await userEvent . click ( acknowledgeButton ) ;
371+ userEvent . click ( acknowledgeButton ) ;
358372
359- expect ( primaryButton ) . toHaveAttribute ( 'aria-disabled' , ' false' ) ;
373+ expect ( isPrimaryButtonDisabled ( ) ) . toBe ( false ) ;
360374 } ) ;
361375
362376 test ( 'enables primary button when requiresAcknowledgement is false' , ( ) => {
363- const { getByRole } = render (
377+ render (
364378 < Wizard >
365379 < Wizard . Step requiresAcknowledgement = { false } >
366380 < div data-testid = "step-1-content" > Content 1</ div >
@@ -369,12 +383,12 @@ describe('packages/wizard', () => {
369383 </ Wizard > ,
370384 ) ;
371385
372- const primaryButton = getByRole ( 'button' , { name : 'Next' } ) ;
373- expect ( primaryButton ) . toHaveAttribute ( 'aria-disabled' , ' false' ) ;
386+ const { isPrimaryButtonDisabled } = getTestUtils ( ) ;
387+ expect ( isPrimaryButtonDisabled ( ) ) . toBe ( false ) ;
374388 } ) ;
375389
376390 test ( 'enables primary button when requiresAcknowledgement is not set (default)' , ( ) => {
377- const { getByRole } = render (
391+ render (
378392 < Wizard >
379393 < Wizard . Step >
380394 < div data-testid = "step-1-content" > Content 1</ div >
@@ -383,8 +397,8 @@ describe('packages/wizard', () => {
383397 </ Wizard > ,
384398 ) ;
385399
386- const primaryButton = getByRole ( 'button' , { name : 'Next' } ) ;
387- expect ( primaryButton ) . toHaveAttribute ( 'aria-disabled' , ' false' ) ;
400+ const { isPrimaryButtonDisabled } = getTestUtils ( ) ;
401+ expect ( isPrimaryButtonDisabled ( ) ) . toBe ( false ) ;
388402 } ) ;
389403 } ) ;
390404 } ) ;
0 commit comments