banned-page.js 2.4 KB

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