import assert from 'assert';
import React from 'react'; // jshint ignore:line
import Search from 'misago/components/search'; // jshint ignore:line
import * as testUtils from 'misago/utils/test-utils';
describe("Search Input", function() {
afterEach(function() {
testUtils.unmountComponents();
});
it("renders", function() {
/* jshint ignore:start */
testUtils.render();
/* jshint ignore:end */
let element = $('#test-mount .form-search');
assert.ok(element.length, "element renders");
assert.equal(element.find('input').attr('placeholder'), "Search...",
"default placeholder is rendered");
assert.equal(element.find('span').text(), 'search',
"search icon is displayed");
});
it("renders with custom placeholder", function() {
/* jshint ignore:start */
testUtils.render();
/* jshint ignore:end */
let element = $('#test-mount .form-search');
assert.ok(element.length, "element renders");
assert.equal(element.find('input').attr('placeholder'), "Search tests...",
"custom placeholder is rendered");
assert.equal(element.find('span').text(), 'search',
"search icon is displayed");
});
it("renders with custom class", function() {
/* jshint ignore:start */
testUtils.render();
/* jshint ignore:end */
let element = $('#test-mount .form-search');
assert.ok(element.length, "element renders");
assert.ok(element.hasClass('extra-class'), "element has extra class");
});
it("displays value", function() {
/* jshint ignore:start */
testUtils.render();
/* jshint ignore:end */
let element = $('#test-mount .form-control');
assert.ok(element.length, "element renders");
assert.equal(element.val(), "lorem ipsum", "element has value");
});
it("calls binding on change", function(done) { // jshint ignore:line
/* jshint ignore:start */
let onChange = function(ev) {
assert.equal(ev.target.value, 'BobBoberson', "callback was called");
done();
};
testUtils.render();
/* jshint ignore:end */
testUtils.simulateChange('#test-mount .form-control', 'BobBoberson');
});
});