@@ -11,6 +11,7 @@ const popperMock = jest.spyOn(popper, 'createPopper');
11
11
12
12
describe ( 'Checkpoint' , ( ) => {
13
13
const handleAdvance = jest . fn ( ) ;
14
+ const handleBack = jest . fn ( ) ;
14
15
const handleDismiss = jest . fn ( ) ;
15
16
const handleEnd = jest . fn ( ) ;
16
17
@@ -29,11 +30,12 @@ describe('Checkpoint', () => {
29
30
< div id = "target-element" > ...</ div >
30
31
< Checkpoint
31
32
advanceButtonText = "Next"
33
+ backButtonText = "Back"
32
34
body = "Lorem ipsum checkpoint body"
33
- dismissButtonText = "Dismiss"
34
35
endButtonText = "End"
35
36
index = { 1 }
36
37
onAdvance = { handleAdvance }
38
+ onBack = { handleBack }
37
39
onDismiss = { handleDismiss }
38
40
onEnd = { handleEnd }
39
41
target = "#target-element"
@@ -44,31 +46,22 @@ describe('Checkpoint', () => {
44
46
) ;
45
47
} ) ;
46
48
47
- it ( 'renders correct active breadcrumb' , ( ) => {
48
- expect ( screen . getByText ( 'Checkpoint title' ) ) . toBeInTheDocument ( ) ;
49
- const breadcrumbs = screen . getAllByTestId ( 'pgn__checkpoint-breadcrumb_' , { exact : false } ) ;
50
- expect ( breadcrumbs . length ) . toEqual ( 5 ) ;
51
- expect ( breadcrumbs [ 0 ] . classList ) . toContain ( 'pgn__checkpoint-breadcrumb_inactive' ) ;
52
- expect ( breadcrumbs [ 1 ] . classList ) . toContain ( 'pgn__checkpoint-breadcrumb_active' ) ;
53
- expect ( breadcrumbs [ 2 ] . classList ) . toContain ( 'pgn__checkpoint-breadcrumb_inactive' ) ;
54
- expect ( breadcrumbs [ 3 ] . classList ) . toContain ( 'pgn__checkpoint-breadcrumb_inactive' ) ;
55
- expect ( breadcrumbs [ 4 ] . classList ) . toContain ( 'pgn__checkpoint-breadcrumb_inactive' ) ;
56
- } ) ;
57
-
58
- it ( 'only renders advance and dismiss buttons (i.e. does not render end button)' , ( ) => {
59
- expect ( screen . getByRole ( 'button' , { name : 'Dismiss' } ) ) . toBeInTheDocument ( ) ;
49
+ it ( 'only renders advance and back buttons (i.e. does not render end button)' , ( ) => {
50
+ expect ( screen . getByRole ( 'button' , { name : 'Back' } ) ) . toBeInTheDocument ( ) ;
60
51
expect ( screen . getByRole ( 'button' , { name : 'Next' } ) ) . toBeInTheDocument ( ) ;
61
52
} ) ;
62
53
63
- it ( 'dismiss button onClick calls handleDismiss' , async ( ) => {
64
- const dismissButton = screen . getByRole ( 'button' , { name : 'Dismiss' } ) ;
65
- await userEvent . click ( dismissButton ) ;
66
- expect ( handleDismiss ) . toHaveBeenCalledTimes ( 1 ) ;
54
+ it ( 'back button onClick calls handleBack' , async ( ) => {
55
+ const user = userEvent . setup ( ) ;
56
+ const backButton = screen . getByRole ( 'button' , { name : 'Back' } ) ;
57
+ await user . click ( backButton ) ;
58
+ expect ( handleBack ) . toHaveBeenCalledTimes ( 1 ) ;
67
59
} ) ;
68
60
69
61
it ( 'advance button onClick calls handleAdvance' , async ( ) => {
62
+ const user = userEvent . setup ( ) ;
70
63
const advanceButton = screen . getByRole ( 'button' , { name : 'Next' } ) ;
71
- await userEvent . click ( advanceButton ) ;
64
+ await user . click ( advanceButton ) ;
72
65
expect ( handleAdvance ) . toHaveBeenCalledTimes ( 1 ) ;
73
66
} ) ;
74
67
} ) ;
@@ -80,8 +73,9 @@ describe('Checkpoint', () => {
80
73
< div id = "#last-element" />
81
74
< Checkpoint
82
75
advanceButtonText = "Next"
76
+ backButtonText = "Back"
83
77
body = "Lorem ipsum checkpoint body"
84
- dismissButtonText = "Dismiss "
78
+ dismissAltText = "Escape "
85
79
endButtonText = "End"
86
80
index = { 4 }
87
81
onAdvance = { handleAdvance }
@@ -95,10 +89,15 @@ describe('Checkpoint', () => {
95
89
) ;
96
90
} ) ;
97
91
98
- it ( 'only renders end button (i.e. neither advance nor dismiss buttons)' , ( ) => {
92
+ it ( 'only renders end button (i.e. neither advance nor back buttons)' , ( ) => {
99
93
expect ( screen . getByText ( 'End' , { selector : 'button' } ) ) . toBeInTheDocument ( ) ;
100
94
} ) ;
101
95
96
+ it ( 'uses customized alt text on the close icon' , ( ) => {
97
+ const closeButton = screen . getByTestId ( 'dismiss-tour' ) ;
98
+ expect ( closeButton ) . toHaveAttribute ( 'aria-label' , 'Escape' ) ;
99
+ } ) ;
100
+
102
101
it ( 'end button onClick calls handleEnd' , async ( ) => {
103
102
const user = userEvent . setup ( { pointerEventsCheck : PointerEventsCheckLevel . Never } ) ;
104
103
const endButton = screen . getByText ( 'End' , { selector : 'button' } ) ;
@@ -115,7 +114,6 @@ describe('Checkpoint', () => {
115
114
< Checkpoint
116
115
advanceButtonText = "Next"
117
116
body = "Lorem ipsum checkpoint body"
118
- dismissButtonText = "Dismiss"
119
117
endButtonText = "End"
120
118
index = { 0 }
121
119
onAdvance = { handleAdvance }
@@ -132,36 +130,5 @@ describe('Checkpoint', () => {
132
130
it ( 'only renders end button (i.e. neither advance nor dismiss buttons)' , ( ) => {
133
131
expect ( screen . getByText ( 'End' , { selector : 'button' } ) ) . toBeInTheDocument ( ) ;
134
132
} ) ;
135
-
136
- it ( 'does not render breadcrumbs' , ( ) => {
137
- const breadcrumbs = screen . queryAllByTestId ( 'pgn__checkpoint-breadcrumb_' , { exact : false } ) ;
138
- expect ( breadcrumbs . length ) . toEqual ( 0 ) ;
139
- } ) ;
140
- } ) ;
141
-
142
- describe ( 'only one Checkpoint in Tour and showDismissButton set to true' , ( ) => {
143
- it ( 'it renders dismiss button and end button' , ( ) => {
144
- render (
145
- < IntlProvider locale = "en" messages = { { } } >
146
- < div id = "#target-element" />
147
- < Checkpoint
148
- advanceButtonText = "Next"
149
- body = "Lorem ipsum checkpoint body"
150
- dismissButtonText = "Dismiss"
151
- endButtonText = "End"
152
- index = { 0 }
153
- onAdvance = { handleAdvance }
154
- onDismiss = { handleDismiss }
155
- onEnd = { handleEnd }
156
- target = "#target-element"
157
- title = "Checkpoint title"
158
- totalCheckpoints = { 1 }
159
- showDismissButton
160
- />
161
- </ IntlProvider > ,
162
- ) ;
163
- expect ( screen . getByText ( 'Dismiss' , { selector : 'button' } ) ) . toBeInTheDocument ( ) ;
164
- expect ( screen . getByText ( 'End' , { selector : 'button' } ) ) . toBeInTheDocument ( ) ;
165
- } ) ;
166
133
} ) ;
167
134
} ) ;
0 commit comments