@@ -4,7 +4,6 @@ const addEventListener = window.addEventListener;
44const removeEventListener = window . removeEventListener ;
55
66describe ( 'Expect the ParallaxController' , ( ) => {
7-
87 afterEach ( ( ) => {
98 window . addEventListener = addEventListener ;
109 window . removeEventListener = removeEventListener ;
@@ -22,7 +21,7 @@ describe('Expect the ParallaxController', () => {
2221 window . ParallaxController = undefined ;
2322 } ) ;
2423
25- it ( ' to throw on init if there\ 's no window' ) ;
24+ it ( " to throw on init if there's no window" ) ;
2625
2726 it ( 'to add listeners when init' , ( ) => {
2827 window . addEventListener = jest . fn ( ) ;
@@ -36,6 +35,131 @@ describe('Expect the ParallaxController', () => {
3635 ) ;
3736 } ) ;
3837
38+ it ( 'to create an element and return it' , ( ) => {
39+ const instance = ParallaxController . init ( ) ;
40+ const options = {
41+ elInner : document . createElement ( 'div' ) ,
42+ elOuter : document . createElement ( 'div' ) ,
43+ props : {
44+ disabled : false ,
45+ offsetXMax : 0 ,
46+ offsetXMin : 0 ,
47+ offsetYMax : 0 ,
48+ offsetYMin : 0 ,
49+ slowerScrollRate : false ,
50+ } ,
51+ } ;
52+ const element = instance . createElement ( options ) ;
53+ const expectedElInner = document . createElement ( 'div' ) ;
54+ expectedElInner . style . position = 'relative' ;
55+
56+ const expectedElement = {
57+ attributes : {
58+ bottom : 0 ,
59+ elHeight : 0 ,
60+ elWidth : 0 ,
61+ top : 0 ,
62+ totalDist : 768 ,
63+ xMaxPx : 0 ,
64+ xMinPx : 0 ,
65+ yMaxPx : 0 ,
66+ yMinPx : 0 ,
67+ } ,
68+ elInner : expectedElInner ,
69+ elOuter : document . createElement ( 'div' ) ,
70+ id : 1 ,
71+ offsets : {
72+ xMax : { unit : '%' , value : 0 } ,
73+ xMin : { unit : '%' , value : 0 } ,
74+ xUnit : '%' ,
75+ yMax : { unit : '%' , value : 0 } ,
76+ yMin : { unit : '%' , value : 0 } ,
77+ yUnit : '%' ,
78+ } ,
79+ props : {
80+ disabled : false ,
81+ offsetXMax : 0 ,
82+ offsetXMin : 0 ,
83+ offsetYMax : 0 ,
84+ offsetYMin : 0 ,
85+ slowerScrollRate : false ,
86+ } ,
87+ } ;
88+ expect ( element ) . toEqual ( expectedElement ) ;
89+ } ) ;
90+
91+ it ( 'to update the controller when creating an element' , ( ) => {
92+ window . removeEventListener = jest . fn ( ) ;
93+ window . ParallaxController = ParallaxController . init ( ) ;
94+ window . ParallaxController . update = jest . fn ( ) ;
95+
96+ const options = {
97+ elInner : document . createElement ( 'div' ) ,
98+ elOuter : document . createElement ( 'div' ) ,
99+ props : {
100+ disabled : false ,
101+ offsetXMax : 0 ,
102+ offsetXMin : 0 ,
103+ offsetYMax : 0 ,
104+ offsetYMin : 0 ,
105+ slowerScrollRate : false ,
106+ } ,
107+ } ;
108+
109+ window . ParallaxController . createElement ( options ) ;
110+ expect ( window . ParallaxController . update ) . toBeCalled ( ) ;
111+ window . ParallaxController . destroy ( ) ;
112+ } ) ;
113+
114+ it ( 'to update the controller when updating an element' , ( ) => {
115+ window . removeEventListener = jest . fn ( ) ;
116+ window . ParallaxController = ParallaxController . init ( ) ;
117+ window . ParallaxController . update = jest . fn ( ) ;
118+
119+ const options = {
120+ elInner : document . createElement ( 'div' ) ,
121+ elOuter : document . createElement ( 'div' ) ,
122+ props : {
123+ disabled : false ,
124+ offsetXMax : 0 ,
125+ offsetXMin : 0 ,
126+ offsetYMax : 0 ,
127+ offsetYMin : 0 ,
128+ slowerScrollRate : false ,
129+ } ,
130+ } ;
131+
132+ const element = window . ParallaxController . createElement ( options ) ;
133+ window . ParallaxController . updateElement ( element , {
134+ prop : { disabled : false } ,
135+ } ) ;
136+ expect ( window . ParallaxController . update ) . toBeCalled ( ) ;
137+ window . ParallaxController . destroy ( ) ;
138+ } ) ;
139+
140+ it ( 'to create an element then update the controller' , ( ) => {
141+ window . removeEventListener = jest . fn ( ) ;
142+ window . ParallaxController = ParallaxController . init ( ) ;
143+ window . ParallaxController . update = jest . fn ( ) ;
144+
145+ const options = {
146+ elInner : document . createElement ( 'div' ) ,
147+ elOuter : document . createElement ( 'div' ) ,
148+ props : {
149+ disabled : false ,
150+ offsetXMax : 0 ,
151+ offsetXMin : 0 ,
152+ offsetYMax : 0 ,
153+ offsetYMin : 0 ,
154+ slowerScrollRate : false ,
155+ } ,
156+ } ;
157+
158+ window . ParallaxController . createElement ( options ) ;
159+
160+ expect ( window . ParallaxController . update ) . toBeCalled ( ) ;
161+ } ) ;
162+
39163 it ( 'to remove listeners when destroyed' , ( ) => {
40164 window . removeEventListener = jest . fn ( ) ;
41165 const instance = ParallaxController . init ( ) ;
@@ -49,4 +173,4 @@ describe('Expect the ParallaxController', () => {
49173 ) ;
50174 expect ( window . ParallaxController ) . toBe ( null ) ;
51175 } ) ;
52- } ) ;
176+ } ) ;
0 commit comments