snackbar.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import assert from 'assert';
  2. import React from 'react'; // jshint ignore:line
  3. import ReactDOM from 'react-dom'; // jshint ignore:line
  4. import { Snackbar } from 'misago/components/snackbar'; // jshint ignore:line
  5. describe("Snackbar", function() {
  6. beforeEach(function() {
  7. $('body').append('<div id="test-mount"></div>');
  8. });
  9. afterEach(function() {
  10. ReactDOM.unmountComponentAtNode(document.getElementById('test-mount'));
  11. $('#test-mount').remove();
  12. });
  13. it('renders', function() {
  14. /* jshint ignore:start */
  15. ReactDOM.render(
  16. <Snackbar isVisible={false} message="" type="info" />,
  17. document.getElementById('test-mount')
  18. );
  19. /* jshint ignore:end */
  20. assert.ok($('.alerts-snackbar').hasClass('out'), "component is hidden");
  21. /* jshint ignore:start */
  22. ReactDOM.render(
  23. <Snackbar isVisible={true} type="success"
  24. message="Lorem ipsum dolor met." />,
  25. document.getElementById('test-mount')
  26. );
  27. /* jshint ignore:end */
  28. assert.ok($('.alerts-snackbar').hasClass('in'), "component is visible");
  29. assert.ok($('.alerts-snackbar p').hasClass('alert-success'),
  30. "component has alert-success class");
  31. assert.equal(
  32. $.trim($('.alerts-snackbar p').text()), "Lorem ipsum dolor met.",
  33. "message is inserted");
  34. /* jshint ignore:start */
  35. ReactDOM.render(
  36. <Snackbar isVisible={true} type="info"
  37. message="Lorem ipsum dolor met." />,
  38. document.getElementById('test-mount')
  39. );
  40. /* jshint ignore:end */
  41. assert.ok($('.alerts-snackbar p').hasClass('alert-info'),
  42. "component has alert-info class");
  43. /* jshint ignore:start */
  44. ReactDOM.render(
  45. <Snackbar isVisible={true} type="warning"
  46. message="Lorem ipsum dolor met." />,
  47. document.getElementById('test-mount')
  48. );
  49. /* jshint ignore:end */
  50. assert.ok($('.alerts-snackbar p').hasClass('alert-warning'),
  51. "component has alert-warning class");
  52. /* jshint ignore:start */
  53. ReactDOM.render(
  54. <Snackbar isVisible={true} type="error"
  55. message="Lorem ipsum dolor met." />,
  56. document.getElementById('test-mount')
  57. );
  58. /* jshint ignore:end */
  59. assert.ok($('.alerts-snackbar p').hasClass('alert-danger'),
  60. "component has alert-danger class");
  61. });
  62. });