react-categorized-tag-input
Version:
React.js component for making tag autocompletion inputs with categorized results.
55 lines (46 loc) • 1.26 kB
JavaScript
import expect from 'expect';
import React from 'react';
import TestUtils from 'react-addons-test-utils';
import jsdomReact from './jsdomReact';
import Panel from '../src/Panel.jsx';
function panel(props) {
return TestUtils.renderIntoDocument(React.createElement(Panel, props));
}
function findCategories(p) {
return TestUtils.scryRenderedDOMComponentsWithClass(p, 'cti__category');
}
function props(p = {}) {
return Object.assign({}, {
categories: [
{
id: 1,
items: ['rabbit'],
title: 'Things',
type: 'thing'
},
{
id: 2,
items: ['rab'],
title: 'Reversed things',
type: 'reversed thing'
}
],
selection: { category: 1, item: 1 },
onAdd: () => {},
input: 'ra',
addNew: true
}, p);
}
describe('Panel', () => {
jsdomReact();
it('should render categories', () => {
let p = panel(props());
expect(findCategories(p).length).toBe(2);
});
it('should select the corresponding item', () => {
let p = panel(props());
let selected = TestUtils.scryRenderedDOMComponentsWithClass(p, 'cti-selected');
expect(selected.length).toBe(1);
expect(selected[0].textContent).toBe('Create new reversed thing "ra"');
});
});