Skip to content

Commit e8c0dbf

Browse files
author
Steve Hobbs
committed
Added test for setting document element
1 parent 45ec0bc commit e8c0dbf

File tree

3 files changed

+68
-21
lines changed

3 files changed

+68
-21
lines changed

src/__tests__/testUtils.js

+13-21
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import React from 'react'; // eslint-disable-line
22
import renderer from 'react-test-renderer';
33

4-
export const expectComponent = children => {
5-
const component = renderer.create(children);
4+
export const expectComponent = (children, opts) => {
5+
const component = renderer.create(children, opts);
66
return expect(component);
77
};
88

@@ -40,26 +40,18 @@ export const extractPropsFromWrapper = (wrapper, index = 0) =>
4040
export const setURL = (url, options = {}) => {
4141
const parser = document.createElement('a');
4242
parser.href = url;
43-
[
44-
'href',
45-
'protocol',
46-
'host',
47-
'hostname',
48-
'origin',
49-
'port',
50-
'pathname',
51-
'search',
52-
'hash'
53-
].forEach(prop => {
54-
let value = parser[prop];
55-
if (prop === 'origin' && options.noOrigin) {
56-
value = null;
43+
['href', 'protocol', 'host', 'hostname', 'origin', 'port', 'pathname', 'search', 'hash'].forEach(
44+
prop => {
45+
let value = parser[prop];
46+
if (prop === 'origin' && options.noOrigin) {
47+
value = null;
48+
}
49+
Object.defineProperty(window.location, prop, {
50+
value,
51+
writable: true
52+
});
5753
}
58-
Object.defineProperty(window.location, prop, {
59-
value,
60-
writable: true
61-
});
62-
});
54+
);
6355
};
6456

6557
export const expectMockToMatch = ({ mock }, numberOfCalls) => {

src/__tests__/ui/box/__snapshots__/header.test.jsx.snap

+37
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,43 @@ exports[`Header renders correctly with basic props 1`] = `
3737
</div>
3838
`;
3939

40+
exports[`Header sets the header size property on the document element 1`] = `
41+
<div
42+
className="auth0-lock-header"
43+
>
44+
<div
45+
className="auth0-lock-header-bg auth0-lock-blur-support"
46+
>
47+
<div
48+
className="auth0-lock-header-bg-blur auth0-lock-no-grayscale"
49+
style={
50+
Object {
51+
"backgroundImage": "url('some-image.png')",
52+
}
53+
}
54+
/>
55+
<div
56+
className="auth0-lock-header-bg-solid"
57+
style={
58+
Object {
59+
"backgroundColor": "red",
60+
}
61+
}
62+
/>
63+
</div>
64+
<div
65+
className="auth0-lock-header-welcome"
66+
>
67+
<div
68+
className="auth0-lock-firstname"
69+
title="Header"
70+
>
71+
Header
72+
</div>
73+
</div>
74+
</div>
75+
`;
76+
4077
exports[`Header shows the back button when there is a handler 1`] = `
4178
<div
4279
className="auth0-lock-header"

src/__tests__/ui/box/header.test.jsx

+18
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,22 @@ describe('Header', () => {
4545

4646
expectComponent(<Header {...props} />).toMatchSnapshot();
4747
});
48+
49+
it('sets the header size property on the document element', () => {
50+
const spy = jest.spyOn(document.documentElement.style, 'setProperty');
51+
52+
const props = {
53+
title: 'This is the header',
54+
name: 'Header',
55+
logoUrl: 'some-logo.png',
56+
backgroundUrl: 'some-image.png',
57+
backgroundColor: 'red'
58+
};
59+
60+
expectComponent(<Header {...props} />, {
61+
createNodeMock: () => ({ clientHeight: 100 })
62+
}).toMatchSnapshot();
63+
64+
expect(spy).toHaveBeenCalledWith('--header-height', '100px');
65+
});
4866
});

0 commit comments

Comments
 (0)