@@ -18,22 +18,23 @@ describe("steps", () => {
1818 test ( "should decrement the step counter" , async ( ) => {
1919 // Arrange
2020 const mockTour = getMockTour ( ) ;
21- mockTour . setCurrentStep ( 1 ) ;
21+ mockTour . setSteps ( getMockSteps ( ) ) ;
22+ await mockTour . setCurrentStep ( 1 ) ;
2223
23- // Act
2424 await previousStep ( mockTour ) ;
2525
26- // Assert
2726 expect ( mockTour . getCurrentStep ( ) ) . toBe ( 0 ) ;
2827 } ) ;
2928
3029 test ( "should not decrement when step is 0" , async ( ) => {
3130 // Arrange
3231 const mockTour = getMockTour ( ) ;
33- mockTour . setCurrentStep ( 0 ) ;
32+ mockTour . setSteps ( getMockSteps ( ) ) ;
33+ await mockTour . setCurrentStep ( 0 ) ;
3434
3535 // Act
3636 await previousStep ( mockTour ) ;
37+ await Promise . resolve ( ) ;
3738
3839 // Assert
3940 expect ( mockTour . getCurrentStep ( ) ) . toBe ( 0 ) ;
@@ -44,7 +45,8 @@ describe("steps", () => {
4445 test ( "should increment the step counter" , async ( ) => {
4546 // Arrange
4647 const mockTour = getMockTour ( ) ;
47- mockTour . setCurrentStep ( 0 ) ;
48+ mockTour . setSteps ( getMockSteps ( ) ) ;
49+ await mockTour . setCurrentStep ( 0 ) ;
4850
4951 // Act
5052 await nextStep ( mockTour ) ;
@@ -67,77 +69,16 @@ describe("steps", () => {
6769 expect ( showElementMock ) . toHaveBeenCalledTimes ( 1 ) ;
6870 } ) ;
6971
70- test ( "should call the onBeforeChange callback" , async ( ) => {
71- // Arrange
72- const mockTour = getMockTour ( ) ;
73- mockTour . setSteps ( getMockSteps ( ) ) ;
74- const fnBeforeChangeCallback = jest . fn ( ) ;
75- mockTour . onBeforeChange ( fnBeforeChangeCallback ) ;
76-
77- // Act
78- await nextStep ( mockTour ) ;
79-
80- // Assert
81- expect ( fnBeforeChangeCallback ) . toHaveBeenCalledTimes ( 1 ) ;
82- expect ( fnBeforeChangeCallback ) . toHaveBeenCalledWith (
83- undefined ,
84- 0 ,
85- "forward"
86- ) ;
87- } ) ;
88-
89- test ( "should not continue when onBeforeChange return false" , async ( ) => {
90- // Arrange
91- const mockTour = getMockTour ( ) ;
92- const showElementMock = jest . fn ( ) ;
93- ( showElement as jest . Mock ) . mockImplementation ( showElementMock ) ;
94- const fnBeforeChangeCallback = jest . fn ( ) ;
95- fnBeforeChangeCallback . mockReturnValue ( false ) ;
96-
97- mockTour . onBeforeChange ( fnBeforeChangeCallback ) ;
98-
99- // Act
100- await nextStep ( mockTour ) ;
101-
102- // Assert
103- expect ( fnBeforeChangeCallback ) . toHaveBeenCalledTimes ( 1 ) ;
104- expect ( showElementMock ) . toHaveBeenCalledTimes ( 0 ) ;
105- } ) ;
106-
107- test ( "should wait for the onBeforeChange promise object" , async ( ) => {
72+ test ( "should call the complete callback" , async ( ) => {
10873 // Arrange
10974 const mockTour = getMockTour ( ) ;
110- mockTour . setSteps ( getMockSteps ( ) ) ;
111- const showElementMock = jest . fn ( ) ;
112- ( showElement as jest . Mock ) . mockImplementation ( showElementMock ) ;
75+ mockTour . setSteps ( getMockSteps ( ) . slice ( 0 , 2 ) ) ;
11376
114- const onBeforeChangeMock = jest . fn ( ) ;
115- const sideEffect : number [ ] = [ ] ;
116-
117- mockTour . onBeforeChange ( async ( ) => {
118- return new Promise < boolean > ( ( res ) => {
119- setTimeout ( ( ) => {
120- sideEffect . push ( 1 ) ;
121- onBeforeChangeMock ( ) ;
122- res ( true ) ;
123- } , 50 ) ;
124- } ) ;
77+ // Mock isEnd so that after reaching step 1, next call finishes the tour
78+ jest . spyOn ( mockTour , "isEnd" ) . mockImplementation ( ( ) => {
79+ return mockTour . getCurrentStep ( ) === 1 ;
12580 } ) ;
12681
127- expect ( sideEffect ) . toHaveLength ( 0 ) ;
128-
129- // Act
130- await nextStep ( mockTour ) ;
131-
132- // Assert
133- expect ( sideEffect ) . toHaveLength ( 1 ) ;
134- expect ( onBeforeChangeMock ) . toHaveBeenCalledBefore ( showElementMock ) ;
135- } ) ;
136-
137- test ( "should call the complete callback" , async ( ) => {
138- // Arrange
139- const mockTour = getMockTour ( ) ;
140- mockTour . setSteps ( getMockSteps ( ) . slice ( 0 , 2 ) ) ;
14182 const fnCompleteCallback = jest . fn ( ) ;
14283 mockTour . onComplete ( fnCompleteCallback ) ;
14384
@@ -148,7 +89,7 @@ describe("steps", () => {
14889
14990 // Assert
15091 expect ( fnCompleteCallback ) . toBeCalledTimes ( 1 ) ;
151- expect ( fnCompleteCallback ) . toHaveBeenCalledWith ( 2 , "end" ) ;
92+ expect ( fnCompleteCallback ) . toHaveBeenCalledWith ( 1 , "end" ) ;
15293 } ) ;
15394
15495 test ( "should be able to add steps using addStep()" , async ( ) => {
0 commit comments