guest-menu.js 2.7 KB

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