index.spec.tsx 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. import {EventFixture} from 'sentry-fixture/event';
  2. import {render, screen, userEvent} from 'sentry-test/reactTestingLibrary';
  3. import {textWithMarkupMatcher} from 'sentry-test/utils';
  4. import {StateEventContext} from 'sentry/components/events/contexts/state';
  5. describe('StateContext', function () {
  6. it('renders', function () {
  7. render(
  8. <StateEventContext
  9. data={{
  10. state: {
  11. type: 'redux',
  12. value: {
  13. a: 'abc',
  14. },
  15. },
  16. otherState: {
  17. value: {
  18. b: 'bcd',
  19. },
  20. },
  21. }}
  22. event={EventFixture()}
  23. />
  24. );
  25. expect(screen.getByText('State (Redux)')).toBeInTheDocument();
  26. expect(screen.getByText('otherState')).toBeInTheDocument();
  27. expect(screen.getByText(textWithMarkupMatcher('{a: abc}'))).toBeInTheDocument();
  28. expect(screen.getByText(textWithMarkupMatcher('{b: bcd}'))).toBeInTheDocument();
  29. });
  30. it('display redacted data', async function () {
  31. const event = EventFixture({
  32. _meta: {
  33. contexts: {
  34. state: {
  35. state: {
  36. value: {
  37. '': {
  38. rem: [['project:1', 's', 0, 0]],
  39. len: 25,
  40. },
  41. },
  42. },
  43. },
  44. },
  45. },
  46. });
  47. render(
  48. <StateEventContext
  49. data={{
  50. state: {
  51. type: 'redux',
  52. value: null,
  53. },
  54. otherState: {
  55. value: {
  56. b: 'bcd',
  57. },
  58. },
  59. }}
  60. event={event}
  61. />
  62. );
  63. expect(screen.getByText('State (Redux)')).toBeInTheDocument();
  64. await userEvent.hover(screen.getByText('null'));
  65. expect(
  66. await screen.findByText(
  67. textWithMarkupMatcher(
  68. "Replaced because of a data scrubbing rule in your project's settings"
  69. ) // Fall back case
  70. )
  71. ).toBeInTheDocument(); // tooltip description
  72. });
  73. });