banned-page.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import assert from 'assert';
  2. import moment from 'moment';
  3. import misago from 'misago/index';
  4. import store from 'misago/services/store'; // jshint ignore:line
  5. import showBannedPage from 'misago/utils/banned-page';
  6. import * as testUtils from 'misago/utils/test-utils';
  7. let ban = {
  8. message: {
  9. plain: 'Lorem ipsum dolor met sit amet elit!',
  10. html: '<p>Lorem ipsum dolor met sit amet elit!</p>'
  11. },
  12. expires_on: moment().add(7, 'days')
  13. };
  14. describe('Show Banned Page', function() {
  15. beforeEach(function() {
  16. misago._context = {
  17. 'SETTINGS': {
  18. 'forum_name': 'Fake Forum'
  19. },
  20. 'BANNED_URL': 'banned/'
  21. };
  22. /* jshint ignore:start */
  23. store.constructor();
  24. store.addReducer('tick', function(state={tick: 1}, action=null) {
  25. return {tick: 1};
  26. }, {});
  27. store.init();
  28. /* jshint ignore:end */
  29. });
  30. afterEach(function() {
  31. testUtils.unmountComponents();
  32. });
  33. it("renders banned page", function(done) {
  34. showBannedPage(ban, false);
  35. window.setTimeout(function() {
  36. assert.equal(
  37. $('#page-mount .page-error-banned .lead p').text().trim(),
  38. "Lorem ipsum dolor met sit amet elit!",
  39. "utility renders ban message");
  40. assert.equal(
  41. $('#page-mount .page-error-banned p.message-footnote').text().trim(),
  42. "This ban expires in 7 days.",
  43. "utility renders ban message expiration");
  44. done();
  45. }, 200);
  46. });
  47. it("changes context", function() {
  48. showBannedPage(ban, true);
  49. assert.equal(document.title, "You are banned | Fake Forum",
  50. "page title was changed");
  51. assert.equal(
  52. String(document.location.href).substr(-19), 'test-runner/banned/',
  53. "page location was changed.");
  54. });
  55. });