threadPoolInfo.spec.tsx 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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 {getThreadPoolInfoContext} from 'sentry/components/events/contexts/knownContext/threadPoolInfo';
  5. const MOCK_THREAD_POOL_INFO_CONTEXT = {
  6. type: 'threadpool_info' as const,
  7. available_completion_port_threads: 1000,
  8. available_worker_threads: 32766,
  9. max_completion_port_threads: 3000,
  10. max_worker_threads: 32767,
  11. min_completion_port_threads: 1,
  12. min_worker_threads: 10,
  13. // Extra data is still valid and preserved
  14. extra_data: 'something',
  15. unknown_key: 123,
  16. };
  17. const MOCK_REDACTION = {
  18. max_worker_threads: {
  19. '': {
  20. rem: [['organization:0', 's', 0, 0]],
  21. len: 5,
  22. },
  23. },
  24. };
  25. describe('ThreadPoolInfoContext', function () {
  26. it('returns values and according to the parameters', function () {
  27. expect(getThreadPoolInfoContext({data: MOCK_THREAD_POOL_INFO_CONTEXT})).toEqual([
  28. {
  29. key: 'available_completion_port_threads',
  30. subject: 'Available Completion Port Threads',
  31. value: 1000,
  32. },
  33. {
  34. key: 'available_worker_threads',
  35. subject: 'Available Worker Threads',
  36. value: 32766,
  37. },
  38. {
  39. key: 'max_completion_port_threads',
  40. subject: 'Max Completion Port Threads',
  41. value: 3000,
  42. },
  43. {
  44. key: 'max_worker_threads',
  45. subject: 'Max Worker Threads',
  46. value: 32767,
  47. },
  48. {
  49. key: 'min_completion_port_threads',
  50. subject: 'Min Completion Port Threads',
  51. value: 1,
  52. },
  53. {
  54. key: 'min_worker_threads',
  55. subject: 'Min Worker Threads',
  56. value: 10,
  57. },
  58. {
  59. key: 'extra_data',
  60. subject: 'extra_data',
  61. value: 'something',
  62. meta: undefined,
  63. },
  64. {
  65. key: 'unknown_key',
  66. subject: 'unknown_key',
  67. value: 123,
  68. meta: undefined,
  69. },
  70. ]);
  71. });
  72. it('renders with meta annotations correctly', function () {
  73. const event = EventFixture({
  74. _meta: {contexts: {threadpool_info: MOCK_REDACTION}},
  75. });
  76. render(
  77. <ContextCard
  78. event={event}
  79. type={'threadpool_info'}
  80. alias={'threadpool_info'}
  81. value={{...MOCK_THREAD_POOL_INFO_CONTEXT, max_worker_threads: ''}}
  82. />
  83. );
  84. expect(screen.getByText('Thread Pool Info')).toBeInTheDocument();
  85. expect(screen.getByText('Available Completion Port Threads')).toBeInTheDocument();
  86. expect(screen.getByText('1000')).toBeInTheDocument();
  87. expect(screen.getByText('Max Worker Threads')).toBeInTheDocument();
  88. expect(screen.getByText(/redacted/)).toBeInTheDocument();
  89. });
  90. });