guest-menu.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. import assert from 'assert';
  2. import React from 'react'; // jshint ignore:line
  3. import ReactDOM from 'react-dom'; // jshint ignore:line
  4. import { GuestMenu, GuestNav, CompactGuestNav } from 'misago/components/user-menu/guest-nav'; // jshint ignore:line
  5. import misago from 'misago/index';
  6. import dropdown from 'misago/services/mobile-navbar-dropdown';
  7. import modal from 'misago/services/modal';
  8. import store from 'misago/services/store';
  9. describe("GuestMenu", function() {
  10. beforeEach(function() {
  11. window.initEmptyStore(store);
  12. window.initDropdown(dropdown);
  13. window.initModal(modal);
  14. misago._context = {
  15. 'FORGOTTEN_PASSWORD_URL': '/forgotten-password/'
  16. };
  17. /* jshint ignore:start */
  18. ReactDOM.render(
  19. <GuestMenu />,
  20. document.getElementById('test-mount')
  21. );
  22. /* jshint ignore:end */
  23. });
  24. afterEach(function() {
  25. window.emptyTestContainers();
  26. });
  27. it('renders', function() {
  28. let element = $('#test-mount .dropdown-menu');
  29. assert.ok(element.length, "component renders");
  30. });
  31. it('opens sign in modal on click', function(done) {
  32. window.simulateClick('#test-mount .btn-default');
  33. window.onElement('#modal-mount .modal-sign-in', function() {
  34. assert.ok(true, "sign in modal was displayed");
  35. done();
  36. });
  37. });
  38. });
  39. describe("GuestNav", function() {
  40. beforeEach(function() {
  41. window.initEmptyStore(store);
  42. window.initDropdown(dropdown);
  43. window.initModal(modal);
  44. misago._context = {
  45. 'FORGOTTEN_PASSWORD_URL': '/forgotten-password/'
  46. };
  47. /* jshint ignore:start */
  48. ReactDOM.render(
  49. <GuestNav />,
  50. document.getElementById('test-mount')
  51. );
  52. /* jshint ignore:end */
  53. });
  54. afterEach(function() {
  55. window.emptyTestContainers();
  56. });
  57. it('renders', function() {
  58. let element = $('#test-mount .nav-guest');
  59. assert.ok(element.length, "component renders");
  60. });
  61. it('opens sign in modal on click', function(done) {
  62. window.simulateClick('#test-mount .btn-default');
  63. window.onElement('#modal-mount .modal-sign-in', function() {
  64. assert.ok(true, "sign in modal was displayed");
  65. done();
  66. });
  67. });
  68. });
  69. describe("CompactGuestNav", function() {
  70. beforeEach(function() {
  71. window.initEmptyStore(store);
  72. window.initDropdown(dropdown);
  73. /* jshint ignore:start */
  74. ReactDOM.render(
  75. <CompactGuestNav />,
  76. document.getElementById('test-mount')
  77. );
  78. /* jshint ignore:end */
  79. });
  80. afterEach(function() {
  81. window.emptyTestContainers();
  82. });
  83. it('renders', function() {
  84. let element = $('#test-mount img.user-avatar');
  85. assert.ok(element.length, "component renders");
  86. });
  87. it('opens dropdown on click', function() {
  88. window.simulateClick('#test-mount button');
  89. let element = $('#dropdown-mount>.dropdown-menu');
  90. assert.ok(element.length, "component opened dropdown");
  91. });
  92. });