displayReprocessEventAction.spec.tsx 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. import {EventStacktraceException} from 'fixtures/js-stubs/eventStacktraceException';
  2. import {EventStacktraceMessage} from 'fixtures/js-stubs/eventStacktraceMessage';
  3. import {displayReprocessEventAction} from 'sentry/utils/displayReprocessEventAction';
  4. describe('DisplayReprocessEventAction', function () {
  5. const orgFeatures = ['reprocessing-v2'];
  6. it('returns false in case of no reprocessing-v2 feature', function () {
  7. const event = EventStacktraceMessage();
  8. expect(displayReprocessEventAction([], event)).toBe(false);
  9. });
  10. it('returns false in case of no event', function () {
  11. expect(displayReprocessEventAction(orgFeatures)).toBe(false);
  12. });
  13. it('returns false if no exception entry is found', function () {
  14. const event = EventStacktraceMessage();
  15. expect(displayReprocessEventAction(orgFeatures, event)).toBe(false);
  16. });
  17. it('returns false if the event is not a mini-dump event or an Apple crash report event or a Native event', function () {
  18. const event = EventStacktraceException();
  19. expect(displayReprocessEventAction(orgFeatures, event)).toBe(false);
  20. });
  21. describe('returns true', function () {
  22. describe('native event', function () {
  23. describe('event with defined platform', function () {
  24. it('native', function () {
  25. const event = EventStacktraceException({
  26. platform: 'native',
  27. });
  28. expect(displayReprocessEventAction(orgFeatures, event)).toBe(true);
  29. });
  30. it('cocoa', function () {
  31. const event = EventStacktraceException({
  32. platform: 'cocoa',
  33. });
  34. expect(displayReprocessEventAction(orgFeatures, event)).toBe(true);
  35. });
  36. });
  37. describe('event with undefined platform, but stack trace has platform', function () {
  38. it('native', function () {
  39. const event = EventStacktraceException({
  40. platform: undefined,
  41. });
  42. event.entries[0].data.values[0].stacktrace.frames[0].platform = 'native';
  43. expect(displayReprocessEventAction(orgFeatures, event)).toBe(true);
  44. });
  45. it('cocoa', function () {
  46. const event = EventStacktraceException({
  47. platform: undefined,
  48. });
  49. event.entries[0].data.values[0].stacktrace.frames[0].platform = 'cocoa';
  50. expect(displayReprocessEventAction(orgFeatures, event)).toBe(true);
  51. });
  52. });
  53. });
  54. it('mini-dump event', function () {
  55. const event = EventStacktraceException({
  56. platform: undefined,
  57. });
  58. event.entries[0].data.values[0] = {
  59. ...event.entries[0].data.values[0],
  60. mechanism: {
  61. type: 'minidump',
  62. },
  63. };
  64. expect(displayReprocessEventAction(orgFeatures, event)).toBe(true);
  65. });
  66. it('apple crash report event', function () {
  67. const event = EventStacktraceException({
  68. platform: undefined,
  69. });
  70. event.entries[0].data.values[0] = {
  71. ...event.entries[0].data.values[0],
  72. mechanism: {
  73. type: 'applecrashreport',
  74. },
  75. };
  76. expect(displayReprocessEventAction(orgFeatures, event)).toBe(true);
  77. });
  78. });
  79. });