import assert from 'assert';
import React from 'react'; // jshint ignore:line
import Button from 'misago/components/button'; // jshint ignore:line
import * as testUtils from 'misago/utils/test-utils';
describe("Button", function() {
afterEach(function() {
testUtils.emptyTestContainers();
});
it('renders', function() {
/* jshint ignore:start */
testUtils.render();
/* jshint ignore:end */
let element = $('#test-mount button');
assert.ok(element.length, "component rendered");
assert.equal(element.attr('type'), 'submit', "component is submit button");
assert.equal(element.text().trim(), "Lorem ipsum",
"component contains child");
});
it('handles clicks', function(done) { // jshint ignore:line
/* jshint ignore:start */
function click() {
assert.ok(true, "component called callback on click");
done();
}
testUtils.render();
/* jshint ignore:end */
let element = $('#test-mount button');
assert.ok(element.length, "component rendered");
assert.equal(element.attr('type'), 'button', "component is regular button");
testUtils.simulateClick('#test-mount button');
});
it('renders disabled', function() {
/* jshint ignore:start */
testUtils.render();
/* jshint ignore:end */
let element = $('#test-mount button');
assert.ok(element.length, "component rendered");
assert.equal(element.attr('disabled'), 'disabled', "component is disabled");
});
it('renders loading', function() {
/* jshint ignore:start */
testUtils.render();
/* jshint ignore:end */
let element = $('#test-mount button>.loader');
assert.ok(element.length, "component rendered with loader");
assert.equal(element.parent().attr('disabled'), 'disabled',
"component is disabled");
});
});