Skip to content

Commit eb1ce92

Browse files
committed
increase test coverage of the controller
1 parent b254ad1 commit eb1ce92

File tree

1 file changed

+48
-45
lines changed

1 file changed

+48
-45
lines changed

__tests__/ParallaxController.test.js

Lines changed: 48 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,19 @@ import ParallaxController from 'libs/ParallaxController';
33
const addEventListener = window.addEventListener;
44
const 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+
619
describe('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

Comments
 (0)