Skip to content

Commit f98bcca

Browse files
committed
add ParallaxController tests
1 parent fd8a785 commit f98bcca

File tree

1 file changed

+127
-3
lines changed

1 file changed

+127
-3
lines changed

__tests__/ParallaxController.test.js

Lines changed: 127 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ const addEventListener = window.addEventListener;
44
const removeEventListener = window.removeEventListener;
55

66
describe('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

Comments
 (0)