@@ -3,6 +3,19 @@ import ParallaxController from 'libs/ParallaxController';
33const addEventListener = window . addEventListener ;
44const removeEventListener = window . removeEventListener ;
55
6+ const options = {
7+ elInner : document . createElement ( 'div' ) ,
8+ elOuter : document . createElement ( 'div' ) ,
9+ props : {
10+ disabled : false ,
11+ offsetXMax : 0 ,
12+ offsetXMin : 0 ,
13+ offsetYMax : 0 ,
14+ offsetYMin : 0 ,
15+ slowerScrollRate : false ,
16+ } ,
17+ } ;
18+
619describe ( 'Expect the ParallaxController' , ( ) => {
720 afterEach ( ( ) => {
821 window . addEventListener = addEventListener ;
@@ -37,18 +50,6 @@ describe('Expect the ParallaxController', () => {
3750
3851 it ( 'to create an element and return it' , ( ) => {
3952 const controller = 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- } ;
5253 const element = controller . createElement ( options ) ;
5354
5455 const expectedElement = {
@@ -86,24 +87,52 @@ describe('Expect the ParallaxController', () => {
8687 expect ( element ) . toEqual ( expectedElement ) ;
8788 } ) ;
8889
89- it ( 'to update the controller when creating an element' , ( ) => {
90+ it ( 'to add created elements into the controller' , ( ) => {
91+ const controller = ParallaxController . init ( ) ;
92+ const element = controller . createElement ( options ) ;
93+ const elements = controller . getElements ( ) ;
94+
95+ expect ( elements [ 0 ] ) . toEqual ( element ) ;
96+ } ) ;
97+
98+ it ( 'to remove elements from the controller' , ( ) => {
99+ const controller = ParallaxController . init ( ) ;
100+ const element = controller . createElement ( options ) ;
101+ expect ( controller . getElements ( ) [ 0 ] ) . toEqual ( element ) ;
102+
103+ controller . removeElement ( element ) ;
104+ expect ( controller . getElements ( ) ) . toEqual ( [ ] ) ;
105+ } ) ;
106+
107+ it ( "to throw if matching units aren't provided" , ( ) => {
90108 window . removeEventListener = jest . fn ( ) ;
91109 const controller = ParallaxController . init ( ) ;
92- controller . update = jest . fn ( ) ;
93110
94- const options = {
111+ const incorrectOffsets = {
95112 elInner : document . createElement ( 'div' ) ,
96113 elOuter : document . createElement ( 'div' ) ,
97114 props : {
98115 disabled : false ,
99- offsetXMax : 0 ,
100- offsetXMin : 0 ,
101- offsetYMax : 0 ,
102- offsetYMin : 0 ,
116+ offsetXMax : '100px' ,
117+ offsetXMin : '-10%' ,
118+ offsetYMax : '50px' ,
119+ offsetYMin : 100 , // defaults to %
103120 slowerScrollRate : false ,
104121 } ,
105122 } ;
106123
124+ expect ( ( ) => controller . createElement ( incorrectOffsets ) ) . toThrowError (
125+ 'Must provide matching units for the min and max offset values of each axis.'
126+ ) ;
127+
128+ controller . destroy ( ) ;
129+ } ) ;
130+
131+ it ( 'to update the controller when creating an element' , ( ) => {
132+ window . removeEventListener = jest . fn ( ) ;
133+ const controller = ParallaxController . init ( ) ;
134+ controller . update = jest . fn ( ) ;
135+
107136 controller . createElement ( options ) ;
108137 expect ( controller . update ) . toBeCalled ( ) ;
109138 controller . destroy ( ) ;
@@ -114,19 +143,6 @@ describe('Expect the ParallaxController', () => {
114143 const controller = ParallaxController . init ( ) ;
115144 controller . update = jest . fn ( ) ;
116145
117- const options = {
118- elInner : document . createElement ( 'div' ) ,
119- elOuter : document . createElement ( 'div' ) ,
120- props : {
121- disabled : false ,
122- offsetXMax : 0 ,
123- offsetXMin : 0 ,
124- offsetYMax : 0 ,
125- offsetYMin : 0 ,
126- slowerScrollRate : false ,
127- } ,
128- } ;
129-
130146 const element = controller . createElement ( options ) ;
131147 controller . updateElement ( element , {
132148 prop : { disabled : false } ,
@@ -140,19 +156,6 @@ describe('Expect the ParallaxController', () => {
140156 const controller = ParallaxController . init ( ) ;
141157 controller . update = jest . fn ( ) ;
142158
143- const options = {
144- elInner : document . createElement ( 'div' ) ,
145- elOuter : document . createElement ( 'div' ) ,
146- props : {
147- disabled : false ,
148- offsetXMax : 0 ,
149- offsetXMin : 0 ,
150- offsetYMax : 0 ,
151- offsetYMin : 0 ,
152- slowerScrollRate : false ,
153- } ,
154- } ;
155-
156159 controller . createElement ( options ) ;
157160
158161 expect ( controller . update ) . toBeCalled ( ) ;
0 commit comments