banned-page.js 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. import assert from 'assert';
  2. import moment from 'moment'; // jshint ignore:line
  3. import React from 'react'; // jshint ignore:line
  4. import ReactDOM from 'react-dom'; // jshint ignore:line
  5. import BannedPage from 'misago/components/banned-page'; // jshint ignore:line
  6. describe("Banned page", function() {
  7. afterEach(function() {
  8. window.emptyTestContainers();
  9. });
  10. it('renders', function() {
  11. /* jshint ignore:start */
  12. ReactDOM.render(
  13. <BannedPage message={{html: '<p>Lorem ipsum!</p>'}} expires={null} />,
  14. document.getElementById('test-mount')
  15. );
  16. /* jshint ignore:end */
  17. assert.equal(
  18. $('#test-mount .page-error-banned .lead p').text().trim(),
  19. "Lorem ipsum!",
  20. "component renders with html ban message");
  21. });
  22. it('renders with fallback message', function() {
  23. /* jshint ignore:start */
  24. ReactDOM.render(
  25. <BannedPage message={{plain: 'Lorem ipsum plain!'}} expires={null} />,
  26. document.getElementById('test-mount')
  27. );
  28. /* jshint ignore:end */
  29. assert.equal(
  30. $('#test-mount .page-error-banned p.lead').text().trim(),
  31. "Lorem ipsum plain!",
  32. "component renders with plaintext ban message");
  33. });
  34. it('renders with permanent expiration date', function() {
  35. /* jshint ignore:start */
  36. ReactDOM.render(
  37. <BannedPage message={{plain: 'Lorem ipsum plain!'}} expires={null} />,
  38. document.getElementById('test-mount')
  39. );
  40. /* jshint ignore:end */
  41. assert.equal(
  42. $('#test-mount .page-error-banned p.message-footnote').text().trim(),
  43. "This ban is permanent.",
  44. "component renders with perma ban expiration");
  45. });
  46. it('renders with future expiration date', function() {
  47. /* jshint ignore:start */
  48. let expires = moment().add(7, 'days');
  49. ReactDOM.render(
  50. <BannedPage message={{plain: 'Lorem ipsum plain!'}} expires={expires} />,
  51. document.getElementById('test-mount')
  52. );
  53. /* jshint ignore:end */
  54. assert.equal(
  55. $('#test-mount .page-error-banned p.message-footnote').text().trim(),
  56. "This ban expires in 7 days.",
  57. "component renders with past ban expiration");
  58. });
  59. it('renders with past expiration date', function() {
  60. /* jshint ignore:start */
  61. let expires = moment().subtract(7, 'days');
  62. ReactDOM.render(
  63. <BannedPage message={{plain: 'Lorem ipsum plain!'}} expires={expires} />,
  64. document.getElementById('test-mount')
  65. );
  66. /* jshint ignore:end */
  67. assert.equal(
  68. $('#test-mount .page-error-banned p.message-footnote').text().trim(),
  69. "This ban has expired.",
  70. "component renders with past ban expiration");
  71. });
  72. });