@@ -7,6 +7,7 @@ import { ParallaxController } from 'parallax-controller';
77import { render } from '@testing-library/react' ;
88import { ParallaxProvider } from '.' ;
99import { useParallaxController } from '../../hooks/useParallaxController' ;
10+ import * as helpers from './helpers' ;
1011
1112describe ( 'A <ParallaxProvider>' , ( ) => {
1213 it ( 'to render children' , ( ) => {
@@ -48,6 +49,15 @@ describe('A <ParallaxProvider>', () => {
4849 expect ( parallaxController ) . toBeInstanceOf ( ParallaxController ) ;
4950 } ) ;
5051
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+
5161 it ( 'to disable parallax elements and re-enable' , ( ) => {
5262 let parallaxController : ParallaxController | null = null ;
5363
@@ -100,8 +110,10 @@ describe('A <ParallaxProvider>', () => {
100110 ) ;
101111
102112 screen . unmount ( ) ;
103- // @ts -expect-error
104- expect ( parallaxController ?. destroy ) . toBeCalled ( ) ;
113+
114+ expect (
115+ ( parallaxController as unknown as ParallaxController ) ?. destroy
116+ ) . toBeCalled ( ) ;
105117 } ) ;
106118
107119 it ( 'to update the scroll container when receiving a new container el' , ( ) => {
0 commit comments