button.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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.emptyTestContainers();
  8. });
  9. it('renders', function() {
  10. /* jshint ignore:start */
  11. testUtils.render(<Button>Lorem ipsum</Button>, 'test-mount');
  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", "component contains child");
  17. });
  18. it('handles clicks', function(done) { // jshint ignore:line
  19. /* jshint ignore:start */
  20. function click() {
  21. assert.ok(true, "component called callback on click");
  22. done();
  23. }
  24. testUtils.render(<Button onClick={click}>Lorem ipsum</Button>, 'test-mount');
  25. /* jshint ignore:end */
  26. let element = $('#test-mount button');
  27. assert.ok(element.length, "component rendered");
  28. assert.equal(element.attr('type'), 'button', "component is regular button");
  29. testUtils.simulateClick('#test-mount button');
  30. });
  31. it('renders disabled', function() {
  32. /* jshint ignore:start */
  33. testUtils.render(<Button disabled={true}>Lorem ipsum</Button>, 'test-mount');
  34. /* jshint ignore:end */
  35. let element = $('#test-mount button');
  36. assert.ok(element.length, "component rendered");
  37. assert.equal(element.attr('disabled'), 'disabled', "component is disabled");
  38. });
  39. it('renders loading', function() {
  40. /* jshint ignore:start */
  41. testUtils.render(<Button loading={true}>Lorem ipsum</Button>, 'test-mount');
  42. /* jshint ignore:end */
  43. let element = $('#test-mount button>.loader');
  44. assert.ok(element.length, "component rendered with loader");
  45. assert.equal(element.parent().attr('disabled'), 'disabled', "component is disabled");
  46. });
  47. });