react-toolbox/components/chip/__test__/index.spec.js

49 lines
1.5 KiB
JavaScript

import React from 'react';
import { mount } from 'enzyme';
import { themr } from 'react-css-themr';
import { CHIP } from '../../identifiers';
import { tooltipFactory } from '../../tooltip';
import { chipFactory } from '../Chip';
const Avatar = ({ title }) => <span>{title}</span>; // eslint-disable-line react/prop-types
const Chip = themr(CHIP)(chipFactory(Avatar));
describe('Chip', () => {
describe('with avatar', () => {
it('adds the avatar class to the element', () => {
const wrapper = mount(
<Chip theme={{ avatar: 'avatar-class' }}>
<Avatar title="Test" />
<span>Test</span>
</Chip>,
);
const chipNode = wrapper.find('div').node;
expect(chipNode.className).toMatch(/\bavatar-class\b/);
});
it('works with non-flat children', () => {
const TooltippedChip = tooltipFactory()(Chip);
const wrapper = mount(
<TooltippedChip theme={{ avatar: 'avatar-class' }} tooltip="Test tooltip">
<Avatar title="Test" />
<span>Test</span>
</TooltippedChip>,
);
const chipNode = wrapper.find('div').node;
expect(chipNode.className).toMatch(/\bavatar-class\b/);
});
});
describe('without avatar', () => {
it('does not add avatar class to the element', () => {
const wrapper = mount(
<Chip theme={{ avatar: 'avatar-class' }}>
<span>Test</span>
</Chip>,
);
const chipNode = wrapper.find('div').node;
expect(chipNode.className).toNotMatch(/\bavatar-class\b/);
});
});
});