replay.spec.tsx 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import {EventFixture} from 'sentry-fixture/event';
  2. import {render, screen} from 'sentry-test/reactTestingLibrary';
  3. import ContextCard from 'sentry/components/events/contexts/contextCard';
  4. import {getReplayContextData} from 'sentry/components/events/contexts/knownContext/replay';
  5. const REPLAY_ID = '61d2d7c5acf448ffa8e2f8f973e2cd36';
  6. const MOCK_REPLAY_CONTEXT = {
  7. type: 'default',
  8. replay_id: REPLAY_ID,
  9. // Extra data is still valid and preserved
  10. extra_data: 'something',
  11. unknown_key: 123,
  12. };
  13. const MOCK_REDACTION = {
  14. extra_data: {
  15. '': {
  16. rem: [['organization:0', 's', 0, 0]],
  17. len: 5,
  18. },
  19. },
  20. };
  21. describe('ReplayContext', function () {
  22. it('returns values and according to the parameters', function () {
  23. expect(getReplayContextData({data: MOCK_REPLAY_CONTEXT})).toEqual([
  24. {
  25. key: 'extra_data',
  26. subject: 'extra_data',
  27. value: 'something',
  28. meta: undefined,
  29. },
  30. {
  31. key: 'unknown_key',
  32. subject: 'unknown_key',
  33. value: 123,
  34. meta: undefined,
  35. },
  36. ]);
  37. });
  38. it('renders with meta annotations correctly', function () {
  39. const event = EventFixture({
  40. _meta: {contexts: {replay: MOCK_REDACTION}},
  41. });
  42. render(
  43. <ContextCard
  44. event={event}
  45. type={'default'}
  46. alias={'replay'}
  47. value={{...MOCK_REPLAY_CONTEXT, extra_data: ''}}
  48. />
  49. );
  50. expect(screen.getByText('Replay')).toBeInTheDocument();
  51. expect(screen.getByText('unknown_key')).toBeInTheDocument();
  52. expect(screen.getByText('123')).toBeInTheDocument();
  53. expect(screen.getByText('extra_data')).toBeInTheDocument();
  54. expect(screen.getByText(/redacted/)).toBeInTheDocument();
  55. });
  56. });