message.spec.tsx 1.9 KB

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