banned-page.js 1.6 KB

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