Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit eb1ce92

Browse files
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)

AltStyle によって変換されたページ (->オリジナル) /