user-card.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. import assert from 'assert';
  2. import moment from 'moment';
  3. import React from 'react'; // jshint ignore:line
  4. import UserCard from 'misago/components/users-list/user-card'; // jshint ignore:line
  5. import * as testUtils from 'misago/utils/test-utils';
  6. describe("Users List Item", function() {
  7. afterEach(function() {
  8. testUtils.unmountComponents();
  9. });
  10. it("renders with ui-preview", function(done) {
  11. let user = testUtils.mockUser({
  12. title: "Lorem ipsum",
  13. joined_on: moment()
  14. });
  15. /* jshint ignore:start */
  16. testUtils.render(
  17. <UserCard user={user} showStatus={true} />
  18. );
  19. /* jshint ignore:end */
  20. testUtils.onElement('#test-mount .user-card.ui-ready', function() {
  21. assert.ok(true, "component renders");
  22. assert.ok($('#test-mount .status-label.ui-preview').length,
  23. "status preview is rendered");
  24. assert.equal($('#test-mount .user-title').text(), user.title,
  25. "user title is rendered");
  26. done();
  27. });
  28. });
  29. it("renders", function(done) {
  30. let user = testUtils.mockUser({
  31. title: "Lorem ipsum",
  32. status: {
  33. is_online: true
  34. },
  35. joined_on: moment()
  36. });
  37. /* jshint ignore:start */
  38. testUtils.render(
  39. <UserCard user={user} showStatus={true} />
  40. );
  41. /* jshint ignore:end */
  42. testUtils.onElement('#test-mount .user-card.ui-ready', function() {
  43. assert.ok(true, "component renders");
  44. assert.equal($('#test-mount .status-label').text(), 'Online',
  45. "status label is rendered");
  46. assert.equal($('#test-mount .user-title').text(), user.title,
  47. "user title is rendered");
  48. done();
  49. });
  50. });
  51. it("renders without status", function(done) {
  52. let user = testUtils.mockUser({
  53. title: "Lorem ipsum",
  54. status: {is_online: true},
  55. joined_on: moment()
  56. });
  57. /* jshint ignore:start */
  58. testUtils.render(
  59. <UserCard user={user} showStatus={false} />
  60. );
  61. /* jshint ignore:end */
  62. testUtils.onElement('#test-mount .user-card.ui-ready', function() {
  63. assert.ok(true, "component renders");
  64. assert.ok(!$('#test-mount .user-status').length, "status is hidden");
  65. assert.equal($('#test-mount .user-title').text(), user.title,
  66. "user title is rendered");
  67. done();
  68. });
  69. });
  70. it("renders with rank", function(done) {
  71. let user = testUtils.mockUser({
  72. title: "Lorem ipsum",
  73. status: {is_online: true},
  74. joined_on: moment(),
  75. rank: {
  76. name: 'Some Yolo',
  77. is_tab: false,
  78. absolute_url: '/users/ranks/some-yolo/'
  79. }
  80. });
  81. /* jshint ignore:start */
  82. testUtils.render(
  83. <UserCard user={user} showRank={true} />
  84. );
  85. /* jshint ignore:end */
  86. testUtils.onElement('#test-mount .user-card.ui-ready', function() {
  87. assert.ok(true, "component renders");
  88. assert.ok(!$('#test-mount .user-status').length, "status is hidden");
  89. assert.equal($('#test-mount .user-title').text(), user.title,
  90. "user title is rendered");
  91. assert.equal($('#test-mount .rank-name').text(), user.rank.name,
  92. "user rank is rendered");
  93. done();
  94. });
  95. });
  96. it("renders with rank url", function(done) {
  97. let user = testUtils.mockUser({
  98. title: "Lorem ipsum",
  99. status: {is_online: true},
  100. joined_on: moment(),
  101. rank: {
  102. name: 'Some Yolo',
  103. is_tab: true,
  104. absolute_url: '/users/ranks/some-yolo/'
  105. }
  106. });
  107. /* jshint ignore:start */
  108. testUtils.render(
  109. <UserCard user={user} showRank={true} />
  110. );
  111. /* jshint ignore:end */
  112. testUtils.onElement('#test-mount .user-card.ui-ready', function() {
  113. assert.ok(true, "component renders");
  114. assert.ok(!$('#test-mount .user-status').length, "status is hidden");
  115. assert.equal($('#test-mount .user-title').text(), user.title,
  116. "user title is rendered");
  117. assert.equal($('#test-mount .rank-name').text(), user.rank.name,
  118. "user rank is rendered");
  119. assert.equal($('#test-mount .rank-name').attr('href'),
  120. user.rank.absolute_url,
  121. "user rank is url to rank users list");
  122. done();
  123. });
  124. });
  125. });