@@ -3,6 +3,19 @@ import ParallaxController from 'libs/ParallaxController';
3
3
const addEventListener = window . addEventListener ;
4
4
const removeEventListener = window . removeEventListener ;
5
5
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
+
6
19
describe ( 'Expect the ParallaxController' , ( ) => {
7
20
afterEach ( ( ) => {
8
21
window . addEventListener = addEventListener ;
@@ -37,18 +50,6 @@ describe('Expect the ParallaxController', () => {
37
50
38
51
it ( 'to create an element and return it' , ( ) => {
39
52
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
- } ;
52
53
const element = controller . createElement ( options ) ;
53
54
54
55
const expectedElement = {
@@ -86,24 +87,52 @@ describe('Expect the ParallaxController', () => {
86
87
expect ( element ) . toEqual ( expectedElement ) ;
87
88
} ) ;
88
89
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" , ( ) => {
90
108
window . removeEventListener = jest . fn ( ) ;
91
109
const controller = ParallaxController . init ( ) ;
92
- controller . update = jest . fn ( ) ;
93
110
94
- const options = {
111
+ const incorrectOffsets = {
95
112
elInner : document . createElement ( 'div' ) ,
96
113
elOuter : document . createElement ( 'div' ) ,
97
114
props : {
98
115
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 %
103
120
slowerScrollRate : false ,
104
121
} ,
105
122
} ;
106
123
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
+
107
136
controller . createElement ( options ) ;
108
137
expect ( controller . update ) . toBeCalled ( ) ;
109
138
controller . destroy ( ) ;
@@ -114,19 +143,6 @@ describe('Expect the ParallaxController', () => {
114
143
const controller = ParallaxController . init ( ) ;
115
144
controller . update = jest . fn ( ) ;
116
145
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
-
130
146
const element = controller . createElement ( options ) ;
131
147
controller . updateElement ( element , {
132
148
prop : { disabled : false } ,
@@ -140,19 +156,6 @@ describe('Expect the ParallaxController', () => {
140
156
const controller = ParallaxController . init ( ) ;
141
157
controller . update = jest . fn ( ) ;
142
158
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
-
156
159
controller . createElement ( options ) ;
157
160
158
161
expect ( controller . update ) . toBeCalled ( ) ;
0 commit comments