@@ -7,6 +7,7 @@ import { ParallaxController } from 'parallax-controller';
7
7
import { render } from '@testing-library/react' ;
8
8
import { ParallaxProvider } from '.' ;
9
9
import { useParallaxController } from '../../hooks/useParallaxController' ;
10
+ import * as helpers from './helpers' ;
10
11
11
12
describe ( 'A <ParallaxProvider>' , ( ) => {
12
13
it ( 'to render children' , ( ) => {
@@ -48,6 +49,15 @@ describe('A <ParallaxProvider>', () => {
48
49
expect ( parallaxController ) . toBeInstanceOf ( ParallaxController ) ;
49
50
} ) ;
50
51
52
+ it ( 'calls to createController only once' , ( ) => {
53
+ jest . spyOn ( helpers , 'createController' ) ;
54
+ const { rerender } = render ( < ParallaxProvider /> ) ;
55
+ rerender ( < ParallaxProvider /> ) ;
56
+ rerender ( < ParallaxProvider /> ) ;
57
+ rerender ( < ParallaxProvider /> ) ;
58
+ expect ( helpers . createController ) . toHaveBeenCalledTimes ( 1 ) ;
59
+ } ) ;
60
+
51
61
it ( 'to disable parallax elements and re-enable' , ( ) => {
52
62
let parallaxController : ParallaxController | null = null ;
53
63
@@ -100,8 +110,10 @@ describe('A <ParallaxProvider>', () => {
100
110
) ;
101
111
102
112
screen . unmount ( ) ;
103
- // @ts -expect-error
104
- expect ( parallaxController ?. destroy ) . toBeCalled ( ) ;
113
+
114
+ expect (
115
+ ( parallaxController as unknown as ParallaxController ) ?. destroy
116
+ ) . toBeCalled ( ) ;
105
117
} ) ;
106
118
107
119
it ( 'to update the scroll container when receiving a new container el' , ( ) => {
0 commit comments