homehub/packages/homehub_icons/tests/components/Icon.spec.js

61 lines
1.5 KiB
JavaScript
Raw Normal View History

2021-08-26 10:33:15 +00:00
import {shallow} from 'enzyme';
import React from 'react';
import {Icon} from 'src/components/Icon';
describe('src/components/Icon', () => {
const FakeIcon = (props) => { // eslint-disable-line no-unused-vars
return <span>It works!</span>;
};
it('allows passing an arbitrary class name', () => {
const component = shallow(
<Icon className="test" icon={FakeIcon} />
);
expect(component.hasClass('test')).toBe(true);
});
it('allows specifying the size', () => {
const component = shallow(
<Icon icon={FakeIcon} size="16px" />
);
const style = component.prop('style');
expect(style.height).toEqual('16px');
expect(style.width).toEqual('16px');
});
it('defaults size to 1em if not specified', () => {
const component = shallow(
<Icon icon={FakeIcon} />
);
const style = component.prop('style');
expect(style.height).toEqual('1em');
expect(style.width).toEqual('1em');
});
it('allows setting vertical align to middle', () => {
const component = shallow(
<Icon icon={FakeIcon} middle />
);
const style = component.prop('style');
expect(style.verticalAlign).toEqual('middle');
});
it('allows specifying a title', () => {
const component = shallow(
<Icon icon={FakeIcon} title="Test" />
);
expect(component.prop('title')).toEqual('Test');
});
it('renders the element passed in the icon prop', () => {
const component = shallow(
<Icon icon={FakeIcon} />
);
expect(component.find(FakeIcon).exists()).toBe(true);
});
});