snackbar.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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. afterEach(function() {
  7. window.emptyTestContainers();
  8. });
  9. it('renders', function() {
  10. /* jshint ignore:start */
  11. ReactDOM.render(
  12. <Snackbar isVisible={false} message="" type="info" />,
  13. document.getElementById('test-mount')
  14. );
  15. /* jshint ignore:end */
  16. assert.ok($('.alerts-snackbar').hasClass('out'), "component is hidden");
  17. /* jshint ignore:start */
  18. ReactDOM.render(
  19. <Snackbar isVisible={true} type="success"
  20. message="Lorem ipsum dolor met." />,
  21. document.getElementById('test-mount')
  22. );
  23. /* jshint ignore:end */
  24. assert.ok($('.alerts-snackbar').hasClass('in'), "component is visible");
  25. assert.ok($('.alerts-snackbar p').hasClass('alert-success'),
  26. "component has alert-success class");
  27. assert.equal(
  28. $.trim($('.alerts-snackbar p').text()), "Lorem ipsum dolor met.",
  29. "message is inserted");
  30. /* jshint ignore:start */
  31. ReactDOM.render(
  32. <Snackbar isVisible={true} type="info"
  33. message="Lorem ipsum dolor met." />,
  34. document.getElementById('test-mount')
  35. );
  36. /* jshint ignore:end */
  37. assert.ok($('.alerts-snackbar p').hasClass('alert-info'),
  38. "component has alert-info class");
  39. /* jshint ignore:start */
  40. ReactDOM.render(
  41. <Snackbar isVisible={true} type="warning"
  42. message="Lorem ipsum dolor met." />,
  43. document.getElementById('test-mount')
  44. );
  45. /* jshint ignore:end */
  46. assert.ok($('.alerts-snackbar p').hasClass('alert-warning'),
  47. "component has alert-warning class");
  48. /* jshint ignore:start */
  49. ReactDOM.render(
  50. <Snackbar isVisible={true} type="error"
  51. message="Lorem ipsum dolor met." />,
  52. document.getElementById('test-mount')
  53. );
  54. /* jshint ignore:end */
  55. assert.ok($('.alerts-snackbar p').hasClass('alert-danger'),
  56. "component has alert-danger class");
  57. });
  58. });