userBadge.spec.tsx 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. import {User} from 'fixtures/js-stubs/user';
  2. import {render, screen} from 'sentry-test/reactTestingLibrary';
  3. import UserBadge from 'sentry/components/idBadge/userBadge';
  4. import {AvatarUser} from 'sentry/types';
  5. describe('UserBadge', function () {
  6. const user: AvatarUser = User();
  7. it('renders with no link when user is supplied', function () {
  8. render(<UserBadge user={user} />);
  9. expect(screen.getByText('Foo Bar')).toBeInTheDocument();
  10. expect(screen.getByText('foo@example.com')).toBeInTheDocument();
  11. });
  12. it('can display alternate display names/emails', function () {
  13. render(
  14. <UserBadge
  15. user={user}
  16. displayName="Other Display Name"
  17. displayEmail="Other Display Email"
  18. />
  19. );
  20. expect(screen.getByText('Other Display Name')).toBeInTheDocument();
  21. expect(screen.getByText('Other Display Email')).toBeInTheDocument();
  22. });
  23. it('can coalesce using username', function () {
  24. const username = User({
  25. name: null,
  26. email: null,
  27. username: 'the-batman',
  28. });
  29. render(<UserBadge user={username} />);
  30. expect(screen.getByText(username.username)).toBeInTheDocument();
  31. });
  32. it('can coalesce using ipaddress', function () {
  33. const ipUser = User({
  34. name: null,
  35. email: null,
  36. username: null,
  37. ipAddress: '127.0.0.1',
  38. });
  39. render(<UserBadge user={ipUser} />);
  40. expect(screen.getByText(ipUser.ipAddress)).toBeInTheDocument();
  41. });
  42. it('can coalesce using id', function () {
  43. const idUser = User({
  44. id: '99',
  45. name: null,
  46. email: null,
  47. username: null,
  48. ipAddress: null,
  49. });
  50. render(<UserBadge user={idUser} />);
  51. expect(screen.getByText(idUser.id)).toBeInTheDocument();
  52. });
  53. it('can hide email address', function () {
  54. render(<UserBadge user={user} hideEmail />);
  55. expect(screen.queryByText(user.email)).not.toBeInTheDocument();
  56. });
  57. it('can coalesce using ip', function () {
  58. const ipUser = User({
  59. name: null,
  60. email: null,
  61. username: null,
  62. ip: '127.0.0.1',
  63. });
  64. render(<UserBadge user={ipUser} />);
  65. expect(screen.getByText(ipUser.ip)).toBeInTheDocument();
  66. });
  67. });