Skip to content

Commit 28192bc

Browse files
committed
initialiseAllContainers now triggers adjust calls on dom load
Fixes #21
1 parent 1b72890 commit 28192bc

File tree

3 files changed

+24
-13
lines changed

3 files changed

+24
-13
lines changed

src/initialiseAllContainers.js

+8-5
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ export default function initialiseAllContainers (
1010
) {
1111
const containerInstances = [];
1212

13+
function adjustAll () {
14+
containerInstances.forEach((instance) => instance.adjust());
15+
}
16+
1317
for (let containerSelector in containers) {
1418
document.querySelectorAll(containerSelector).forEach((htmlElement) => {
1519
containerInstances.push(
@@ -22,10 +26,9 @@ export default function initialiseAllContainers (
2226
}
2327

2428
if (adjustOnWindowResize) {
25-
window.addEventListener('resize', () => {
26-
containerInstances.forEach((instance) => {
27-
instance.adjust();
28-
});
29-
});
29+
window.addEventListener('resize', adjustAll);
3030
}
31+
32+
// Trigger first adjustment
33+
document.addEventListener('DOMContentLoaded', adjustAll);
3134
}

src/initialiseAllContainers.spec.js

+15-7
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,19 @@ test('should initialise all containers and adjust them on window resize', () =>
3232
}
3333
});
3434

35-
let windowOnResizeFn = null;
36-
window.addEventListener = jest.fn((type, onResizeFn) => { windowOnResizeFn = onResizeFn; });
35+
let triggerWindowResize = null;
36+
let triggerDOMContentLoaded = null;
37+
document.addEventListener = jest.fn((type, fn) => {
38+
triggerDOMContentLoaded = fn;
39+
});
40+
window.addEventListener = jest.fn((type, fn) => {
41+
triggerWindowResize = fn;
42+
});
3743

3844
initialiseAllContainers(containers);
39-
windowOnResizeFn();
45+
46+
triggerDOMContentLoaded();
47+
triggerWindowResize();
4048

4149
expect(document.querySelectorAll).toHaveBeenCalledTimes(2);
4250
expect(document.querySelectorAll).toHaveBeenCalledWith(container1Config.selector);
@@ -48,14 +56,14 @@ test('should initialise all containers and adjust them on window resize', () =>
4856
expect(Container.mock.calls[2]).toEqual([ container2Element1, container2Config ]);
4957

5058
expect(window.addEventListener).toHaveBeenCalledTimes(1);
51-
expect(Container.prototype.adjust).toHaveBeenCalledTimes(3);
59+
expect(Container.prototype.adjust).toHaveBeenCalledTimes(6);
5260
});
5361

5462
test('should not add window resize call if not required', () => {
55-
let windowOnResizeFn = null;
56-
window.addEventListener = jest.fn((type, onResizeFn) => { windowOnResizeFn = onResizeFn; });
63+
let triggerWindowResize = null;
64+
window.addEventListener = jest.fn((type, onResizeFn) => { triggerWindowResize = onResizeFn; });
5765

5866
initialiseAllContainers({}, false);
5967

60-
expect(windowOnResizeFn).toBe(null);
68+
expect(triggerWindowResize).toBe(null);
6169
});

src/runtime/adjustContainer.spec.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ describe('query styles should be applied, then removed when conditions no longer
159159
});
160160

161161
test("shouldn't adjust if the configuration is null (invalid)", () => {
162-
const getContainerDimensionsMock = require('./getContainerDimensions').default.mockImplementation(() => { console.log('called') });
162+
const getContainerDimensionsMock = require('./getContainerDimensions').default;
163163

164164
adjustContainer(container);
165165

0 commit comments

Comments
 (0)