react.spec.tsx 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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 {
  5. getReactContextData,
  6. type ReactContext,
  7. } from 'sentry/components/events/contexts/platformContext/react';
  8. const MOCK_REACT_CONTEXT: ReactContext = {
  9. type: 'default',
  10. version: '17.0.2',
  11. // Extra data is still valid and preserved
  12. extra_data: 'something',
  13. unknown_key: 123,
  14. };
  15. const MOCK_REDACTION = {
  16. version: {
  17. '': {
  18. rem: [['organization:0', 's', 0, 0]],
  19. len: 5,
  20. },
  21. },
  22. };
  23. describe('ReactContext', function () {
  24. it('returns values and according to the parameters', function () {
  25. expect(getReactContextData({data: MOCK_REACT_CONTEXT})).toEqual([
  26. {
  27. key: 'version',
  28. subject: 'Version',
  29. value: '17.0.2',
  30. },
  31. {
  32. key: 'extra_data',
  33. subject: 'extra_data',
  34. value: 'something',
  35. meta: undefined,
  36. },
  37. {
  38. key: 'unknown_key',
  39. subject: 'unknown_key',
  40. value: 123,
  41. meta: undefined,
  42. },
  43. ]);
  44. });
  45. it('renders with meta annotations correctly', function () {
  46. const event = EventFixture({
  47. _meta: {contexts: {react: MOCK_REDACTION}},
  48. });
  49. render(
  50. <ContextCard
  51. event={event}
  52. type={'default'}
  53. alias={'react'}
  54. value={{...MOCK_REACT_CONTEXT, version: ''}}
  55. />
  56. );
  57. expect(screen.getByText('React')).toBeInTheDocument();
  58. expect(screen.getByText('unknown_key')).toBeInTheDocument();
  59. expect(screen.getByText('123')).toBeInTheDocument();
  60. expect(screen.getByText('Version')).toBeInTheDocument();
  61. expect(screen.getByText(/redacted/)).toBeInTheDocument();
  62. });
  63. });