navs.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import assert from 'assert';
  2. import React from 'react'; // jshint ignore:line
  3. import { TabsNav, CompactNav } from 'misago/components/users/navs'; // jshint ignore:line
  4. import * as testUtils from 'misago/utils/test-utils';
  5. let lists = {
  6. baseUrl: '/users/',
  7. lists: [
  8. {
  9. component: "active-posters",
  10. name: "Active posters"
  11. },
  12. {
  13. component: "rank",
  14. slug: "admins",
  15. name: "Admins"
  16. },
  17. {
  18. component: "rank",
  19. slug: "moderators",
  20. name: "Moderators"
  21. }
  22. ]
  23. };
  24. describe("Users Lists Navs", function() {
  25. afterEach(function() {
  26. testUtils.unmountComponents();
  27. });
  28. it("renders tab nav", function(done) {
  29. /* jshint ignore:start */
  30. testUtils.render(<TabsNav {...lists} />);
  31. /* jshint ignore:end */
  32. testUtils.onElement('#test-mount .nav-pills', function() {
  33. assert.ok(true, "component renders");
  34. lists.lists.forEach(function(list, i) {
  35. let element = $($('#test-mount a')[i]);
  36. assert.ok(element.length, "list has its link in menu");
  37. assert.equal(element.text().trim(), list.name,
  38. "list has its name in menu");
  39. });
  40. done();
  41. });
  42. });
  43. it("renders compact nav", function(done) {
  44. /* jshint ignore:start */
  45. testUtils.render(<CompactNav {...lists} />);
  46. /* jshint ignore:end */
  47. testUtils.onElement('#test-mount .dropdown-menu', function() {
  48. assert.ok(true, "component renders");
  49. lists.lists.forEach(function(list, i) {
  50. let element = $($('#test-mount a')[i]);
  51. assert.ok(element.length, "list has its link in menu");
  52. assert.equal(element.text().trim(), list.name,
  53. "list has its name in menu");
  54. });
  55. done();
  56. });
  57. });
  58. });