@retailmenot/anchor
Version:
A React UI Library by RetailMeNot
37 lines • 1.85 kB
JavaScript
// REACT
import * as React from 'react';
// VENDOR
import * as renderer from 'react-test-renderer';
import { ThemeProvider } from '@xstyled/styled-components';
import { shallow, mount } from 'enzyme';
// COMPONENT
import { RootTheme } from '../../theme';
import { ResultsContainer } from './ResultsContainer.component';
import { Item } from '../../List';
describe('Component: ResultsContainer', () => {
it('should be defined', () => {
const subject = (React.createElement(ThemeProvider, { theme: RootTheme },
React.createElement(ResultsContainer, { term: "a", emitSelectedItem: () => true, emitActiveTerm: () => true, dataSource: [
{ value: 1, label: 'Result Item 1' },
{ value: 2, label: 'Result Item 2' },
] })));
const wrapper = mount(subject);
const component = shallow(subject);
expect(subject).toBeDefined();
expect(wrapper).toBeDefined();
expect(component).toBeDefined();
const tree = renderer.create(subject).toJSON();
expect(tree).toMatchSnapshot();
});
it('should accept a resultTemplate', () => {
const CustomResult = ({ index, currentIndex, label }) => (React.createElement(Item, { key: index, active: index === currentIndex }, label));
const subject = (React.createElement(ThemeProvider, { theme: RootTheme },
React.createElement(ResultsContainer, { term: "a", emitSelectedItem: () => true, emitActiveTerm: () => true, dataSource: [
{ value: 1, label: 'Result Item 1' },
{ value: 2, label: 'Result Item 2' },
], resultTemplate: CustomResult })));
const tree = renderer.create(subject).toJSON();
expect(tree).toMatchSnapshot();
});
});
//# sourceMappingURL=ResultsContainer.component.spec.js.map