message.spec.tsx 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import {render, screen, userEvent} from 'sentry-test/reactTestingLibrary';
  2. import {textWithMarkupMatcher} from 'sentry-test/utils';
  3. import {Message} from 'sentry/components/events/interfaces/message';
  4. describe('Message entry', function () {
  5. const routerContext = TestStubs.routerContext();
  6. it('display redacted data', async function () {
  7. const event = {
  8. ...TestStubs.Event(),
  9. entries: [
  10. {
  11. type: 'message',
  12. data: {
  13. formatted: null,
  14. },
  15. },
  16. ],
  17. _meta: {
  18. entries: {
  19. 0: {
  20. data: {
  21. formatted: {'': {rem: [['organization:0', 'x']]}},
  22. },
  23. },
  24. },
  25. },
  26. };
  27. render(<Message data={{formatted: null}} event={event} />, {
  28. context: routerContext,
  29. organization: {
  30. relayPiiConfig: JSON.stringify(TestStubs.DataScrubbingRelayPiiConfig()),
  31. },
  32. });
  33. expect(screen.getByText(/redacted/)).toBeInTheDocument();
  34. userEvent.hover(screen.getByText(/redacted/));
  35. expect(
  36. await screen.findByText(
  37. textWithMarkupMatcher(
  38. "Removed because of the data scrubbing rule [Replace] [Password fields] with [Scrubbed] from [password] in your organization's settings"
  39. )
  40. )
  41. ).toBeInTheDocument(); // tooltip description
  42. expect(
  43. screen.getByRole('link', {
  44. name: '[Replace] [Password fields] with [Scrubbed] from [password]',
  45. })
  46. ).toHaveAttribute(
  47. 'href',
  48. '/settings/org-slug/security-and-privacy/advanced-data-scrubbing/0/'
  49. );
  50. expect(screen.getByRole('link', {name: "organization's settings"})).toHaveAttribute(
  51. 'href',
  52. '/settings/org-slug/security-and-privacy/'
  53. );
  54. });
  55. });