@@ -3,6 +3,7 @@ import { Element } from './Element';
3
3
import { Rect } from './Rect' ;
4
4
import { Limits } from './Limits' ;
5
5
import { CSSEffect , ScrollAxis } from '../types' ;
6
+ import * as elementStyles from '../helpers/elementStyles' ;
6
7
7
8
const addEventListener = window . addEventListener ;
8
9
const removeEventListener = window . removeEventListener ;
@@ -18,10 +19,45 @@ const OPTIONS = {
18
19
19
20
describe ( 'Expect the ParallaxController' , ( ) => {
20
21
afterEach ( ( ) => {
22
+ jest . restoreAllMocks ( ) ;
21
23
window . addEventListener = addEventListener ;
22
24
window . removeEventListener = removeEventListener ;
23
25
} ) ;
24
26
27
+ describe ( 'when init with disabled configuration' , ( ) => {
28
+ it ( 'to not add listeners when init' , ( ) => {
29
+ window . addEventListener = jest . fn ( ) ;
30
+ const controller = ParallaxController . init ( {
31
+ scrollAxis : ScrollAxis . vertical ,
32
+ disabled : true ,
33
+ } ) ;
34
+ // @ts -expect-error
35
+ expect ( window . addEventListener . mock . calls [ 0 ] ) . toEqual (
36
+ expect . arrayContaining ( [ 'test' , null , expect . any ( Object ) ] )
37
+ ) ;
38
+ // @ts -expect-error
39
+ expect ( window . addEventListener . mock . calls [ 1 ] ) . toBeUndefined ( ) ;
40
+ // @ts -expect-error
41
+ expect ( window . addEventListener . mock . calls [ 2 ] ) . toBeUndefined ( ) ;
42
+ // @ts -expect-error
43
+ expect ( window . addEventListener . mock . calls [ 3 ] ) . toBeUndefined ( ) ;
44
+ // @ts -expect-error
45
+ expect ( window . addEventListener . mock . calls [ 4 ] ) . toBeUndefined ( ) ;
46
+ // @ts -expect-error
47
+ expect ( window . addEventListener . mock . calls [ 5 ] ) . toBeUndefined ( ) ;
48
+ controller . destroy ( ) ;
49
+ } ) ;
50
+ it ( 'to create an element with the disabledParallaxController property' , ( ) => {
51
+ const controller = ParallaxController . init ( {
52
+ scrollAxis : ScrollAxis . vertical ,
53
+ disabled : true ,
54
+ } ) ;
55
+ const element = controller . createElement ( OPTIONS ) ;
56
+ expect ( element . disabledParallaxController ) . toBe ( true ) ;
57
+ controller . destroy ( ) ;
58
+ } ) ;
59
+ } ) ;
60
+
25
61
it ( 'to return an instance on init' , ( ) => {
26
62
const controller = ParallaxController . init ( {
27
63
scrollAxis : ScrollAxis . vertical ,
@@ -62,6 +98,49 @@ describe('Expect the ParallaxController', () => {
62
98
controller . destroy ( ) ;
63
99
} ) ;
64
100
101
+ describe ( 'when disabling the controller' , ( ) => {
102
+ it ( 'to update the disabled property' , ( ) => {
103
+ const controller = ParallaxController . init ( {
104
+ scrollAxis : ScrollAxis . vertical ,
105
+ } ) ;
106
+ controller . disableParallaxController ( ) ;
107
+ expect ( controller . disabled ) . toBe ( true ) ;
108
+ controller . destroy ( ) ;
109
+ } ) ;
110
+
111
+ it ( 'to reset element styles' , ( ) => {
112
+ const controller = ParallaxController . init ( {
113
+ scrollAxis : ScrollAxis . vertical ,
114
+ } ) ;
115
+ const element = controller . createElement ( OPTIONS ) ;
116
+ jest . spyOn ( elementStyles , 'resetStyles' ) ;
117
+ controller . disableParallaxController ( ) ;
118
+ expect ( elementStyles . resetStyles ) . toHaveBeenCalledWith ( element ) ;
119
+ controller . destroy ( ) ;
120
+ } ) ;
121
+
122
+ it ( 'to remove listeners' , ( ) => {
123
+ window . removeEventListener = jest . fn ( ) ;
124
+ const controller = ParallaxController . init ( {
125
+ scrollAxis : ScrollAxis . vertical ,
126
+ } ) ;
127
+ controller . disableParallaxController ( ) ;
128
+ // @ts -expect-error
129
+ expect ( window . removeEventListener . mock . calls [ 0 ] ) . toEqual (
130
+ expect . arrayContaining ( [ 'test' , null , expect . any ( Object ) ] )
131
+ ) ;
132
+ // @ts -expect-error
133
+ expect ( window . removeEventListener . mock . calls [ 1 ] ) . toEqual (
134
+ expect . arrayContaining ( [ 'scroll' , expect . any ( Function ) , false ] )
135
+ ) ;
136
+ // @ts -expect-error
137
+ expect ( window . removeEventListener . mock . calls [ 2 ] ) . toEqual (
138
+ expect . arrayContaining ( [ 'resize' , expect . any ( Function ) , false ] )
139
+ ) ;
140
+ controller . destroy ( ) ;
141
+ } ) ;
142
+ } ) ;
143
+
65
144
it ( 'to add a resize observer' , ( ) => {
66
145
const controller = ParallaxController . init ( {
67
146
scrollAxis : ScrollAxis . vertical ,
@@ -129,6 +208,7 @@ describe('Expect the ParallaxController', () => {
129
208
} ) ;
130
209
131
210
it ( 'to disable all elements when calling disableAllElements()' , ( ) => {
211
+ jest . spyOn ( console , 'warn' ) . mockImplementation ( ( ) => { } ) ;
132
212
const controller = ParallaxController . init ( {
133
213
scrollAxis : ScrollAxis . vertical ,
134
214
} ) ;
@@ -142,9 +222,13 @@ describe('Expect the ParallaxController', () => {
142
222
elements . forEach ( element => {
143
223
expect ( element . props . disabled ) . toBe ( true ) ;
144
224
} ) ;
225
+ expect ( console . warn ) . toHaveBeenCalledWith (
226
+ 'deprecated: use disableParallaxController() instead'
227
+ ) ;
145
228
} ) ;
146
229
147
230
it ( 'to enable all elements when calling enableAllElements()' , ( ) => {
231
+ jest . spyOn ( console , 'warn' ) . mockImplementation ( ( ) => { } ) ;
148
232
const controller = ParallaxController . init ( {
149
233
scrollAxis : ScrollAxis . vertical ,
150
234
} ) ;
@@ -158,6 +242,9 @@ describe('Expect the ParallaxController', () => {
158
242
elements . forEach ( element => {
159
243
expect ( element . props . disabled ) . toBe ( false ) ;
160
244
} ) ;
245
+ expect ( console . warn ) . toHaveBeenCalledWith (
246
+ 'deprecated: use enableParallaxController() instead'
247
+ ) ;
161
248
} ) ;
162
249
163
250
it ( 'to remove listeners when destroyed' , ( ) => {
0 commit comments