actorAvatar.spec.jsx 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. import React from 'react';
  2. import {shallow, mount} from 'enzyme';
  3. import ActorAvatar from 'app/components/actorAvatar';
  4. import MemberListStore from 'app/stores/memberListStore';
  5. import TeamStore from 'app/stores/teamStore';
  6. describe('Avatar', function() {
  7. const USER = {
  8. id: '1',
  9. name: 'Jane Doe',
  10. email: 'janedoe@example.com',
  11. };
  12. const TEAM_1 = {
  13. id: '3',
  14. slug: 'cool-team',
  15. name: 'COOL TEAM',
  16. projects: [
  17. {
  18. slug: 2,
  19. },
  20. ],
  21. };
  22. beforeEach(function() {
  23. MemberListStore.loadInitialData([USER]);
  24. TeamStore.loadInitialData([TEAM_1]);
  25. });
  26. afterEach(function() {});
  27. describe('render()', function() {
  28. it('should show a gravatar when actor type is a user', function() {
  29. const avatar = shallow(
  30. <ActorAvatar
  31. actor={{
  32. id: '1',
  33. name: 'Jane Doe',
  34. type: 'user',
  35. }}
  36. />
  37. );
  38. expect(avatar).toMatchSnapshot();
  39. });
  40. it('should show a gravatar when actor type is a team', function() {
  41. const avatar = shallow(
  42. <ActorAvatar
  43. actor={{
  44. id: '3',
  45. name: 'COOL TEAM',
  46. type: 'team',
  47. }}
  48. />
  49. );
  50. expect(avatar).toMatchSnapshot();
  51. });
  52. it('should return null when actor type is a unknown', function() {
  53. window.console.error = jest.fn();
  54. const avatar = mount(
  55. <ActorAvatar
  56. actor={{
  57. id: '3',
  58. name: 'COOL TEAM',
  59. type: 'teapot',
  60. }}
  61. />
  62. );
  63. expect(avatar.html()).toBe(null);
  64. //proptype warning
  65. expect(window.console.error.mock.calls.length).toBeGreaterThan(0);
  66. window.console.error.mockRestore();
  67. });
  68. });
  69. });