button.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import assert from 'assert';
  2. import React from 'react'; // jshint ignore:line
  3. import Button from 'misago/components/button'; // jshint ignore:line
  4. import * as testUtils from 'misago/utils/test-utils';
  5. describe("Button", function() {
  6. afterEach(function() {
  7. testUtils.unmountComponents();
  8. });
  9. it('renders', function() {
  10. /* jshint ignore:start */
  11. testUtils.render(<Button>Lorem ipsum</Button>);
  12. /* jshint ignore:end */
  13. let element = $('#test-mount button');
  14. assert.ok(element.length, "component rendered");
  15. assert.equal(element.attr('type'), 'submit', "component is submit button");
  16. assert.equal(element.text().trim(), "Lorem ipsum",
  17. "component contains child");
  18. });
  19. it('handles clicks', function(done) { // jshint ignore:line
  20. /* jshint ignore:start */
  21. function click() {
  22. assert.ok(true, "component called callback on click");
  23. done();
  24. }
  25. testUtils.render(<Button onClick={click}>Lorem ipsum</Button>);
  26. /* jshint ignore:end */
  27. let element = $('#test-mount button');
  28. assert.ok(element.length, "component rendered");
  29. assert.equal(element.attr('type'), 'button', "component is regular button");
  30. testUtils.simulateClick('#test-mount button');
  31. });
  32. it('renders disabled', function() {
  33. /* jshint ignore:start */
  34. testUtils.render(<Button disabled={true}>Lorem ipsum</Button>);
  35. /* jshint ignore:end */
  36. let element = $('#test-mount button');
  37. assert.ok(element.length, "component rendered");
  38. assert.equal(element.attr('disabled'), 'disabled', "component is disabled");
  39. });
  40. it('renders loading', function() {
  41. /* jshint ignore:start */
  42. testUtils.render(<Button loading={true}>Lorem ipsum</Button>);
  43. /* jshint ignore:end */
  44. let element = $('#test-mount button>.loader');
  45. assert.ok(element.length, "component rendered with loader");
  46. assert.equal(element.parent().attr('disabled'), 'disabled',
  47. "component is disabled");
  48. });
  49. });