instantjob-recruiter-client
Version:
a set of tools for creating an instantjob recruiter react client
71 lines (57 loc) • 2.32 kB
JavaScript
'use strict';
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _enzyme = require('enzyme');
var _expect = require('expect');
var _expect2 = _interopRequireDefault(_expect);
var _fuse = require('fuse.js');
var _fuse2 = _interopRequireDefault(_fuse);
var _sinon = require('sinon');
var _sinon2 = _interopRequireDefault(_sinon);
var _search_bar = require('components/search_bar');
var _search_bar2 = _interopRequireDefault(_search_bar);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
describe('SearchBar', function () {
it('should render', function () {
var on_query_change = _sinon2.default.spy();
var element = (0, _enzyme.mount)(_react2.default.createElement(_search_bar2.default, {
make_fuse: function make_fuse() {
return new _fuse2.default([], {
keys: ["name"],
id: "id",
threshold: 0.2
});
},
on_query_change: on_query_change,
default_results: [1]
}));
(0, _expect2.default)(element.html()).toExist();
(0, _expect2.default)(on_query_change.callCount).toEqual(1);
element.instance().set_query("blob");
(0, _expect2.default)(on_query_change.callCount).toEqual(2);
element.instance().set_query("blob");
(0, _expect2.default)(on_query_change.callCount).toEqual(2);
element.setProps({ items: [{ id: 1, name: '' }] });
(0, _expect2.default)(on_query_change.callCount).toEqual(2);
element.setProps({ items: [{ id: 1, name: 'blob' }] });
(0, _expect2.default)(on_query_change.callCount).toEqual(3);
element.instance().set_query("");
(0, _expect2.default)(on_query_change.callCount).toEqual(4);
});
it('should set default results at initialisation', function () {
var on_query_change = _sinon2.default.spy();
var default_results = [1];
var element = (0, _enzyme.mount)(_react2.default.createElement(_search_bar2.default, {
make_fuse: function make_fuse() {
return new _fuse2.default([], {
keys: ["name"],
id: "id",
threshold: 0.2
});
},
on_query_change: on_query_change,
default_results: default_results
}));
(0, _expect2.default)(on_query_change.calledWith("", default_results)).toBeTruthy();
});
});