hasFirstBucketsEmpty.spec.tsx 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. import {hasFirstBucketsEmpty} from 'sentry/views/settings/project/server-side-sampling/utils/hasFirstBucketsEmpty';
  2. const stats = {
  3. start: '2022-07-02T19:00:00Z',
  4. end: '2022-07-04T18:35:00Z',
  5. intervals: [
  6. '2022-07-02T19:00:00Z',
  7. '2022-07-02T20:00:00Z',
  8. '2022-07-02T21:00:00Z',
  9. '2022-07-02T22:00:00Z',
  10. '2022-07-02T23:00:00Z',
  11. '2022-07-03T00:00:00Z',
  12. '2022-07-03T01:00:00Z',
  13. '2022-07-03T02:00:00Z',
  14. '2022-07-03T03:00:00Z',
  15. '2022-07-03T04:00:00Z',
  16. '2022-07-03T05:00:00Z',
  17. '2022-07-03T06:00:00Z',
  18. '2022-07-03T07:00:00Z',
  19. '2022-07-03T08:00:00Z',
  20. '2022-07-03T09:00:00Z',
  21. '2022-07-03T10:00:00Z',
  22. '2022-07-03T11:00:00Z',
  23. '2022-07-03T12:00:00Z',
  24. '2022-07-03T13:00:00Z',
  25. '2022-07-03T14:00:00Z',
  26. '2022-07-03T15:00:00Z',
  27. '2022-07-03T16:00:00Z',
  28. '2022-07-03T17:00:00Z',
  29. '2022-07-03T18:00:00Z',
  30. '2022-07-03T19:00:00Z',
  31. '2022-07-03T20:00:00Z',
  32. '2022-07-03T21:00:00Z',
  33. '2022-07-03T22:00:00Z',
  34. '2022-07-03T23:00:00Z',
  35. '2022-07-04T00:00:00Z',
  36. '2022-07-04T01:00:00Z',
  37. '2022-07-04T02:00:00Z',
  38. '2022-07-04T03:00:00Z',
  39. '2022-07-04T04:00:00Z',
  40. '2022-07-04T05:00:00Z',
  41. '2022-07-04T06:00:00Z',
  42. '2022-07-04T07:00:00Z',
  43. '2022-07-04T08:00:00Z',
  44. '2022-07-04T09:00:00Z',
  45. '2022-07-04T10:00:00Z',
  46. '2022-07-04T11:00:00Z',
  47. '2022-07-04T12:00:00Z',
  48. '2022-07-04T13:00:00Z',
  49. '2022-07-04T14:00:00Z',
  50. '2022-07-04T15:00:00Z',
  51. '2022-07-04T16:00:00Z',
  52. '2022-07-04T17:00:00Z',
  53. '2022-07-04T18:00:00Z',
  54. ],
  55. groups: [
  56. {
  57. by: {outcome: 'client_discard'},
  58. totals: {'sum(quantity)': 1231342},
  59. series: {
  60. 'sum(quantity)': [
  61. 0, 0, 0, 1, 94, 1, 1, 0, 566, 179, 1, 1, 1, 0, 222, 6, 287, 465, 83, 7, 0, 1835,
  62. 145, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0, 1, 849, 25331, 147200, 220014, 189001, 99590,
  63. 81288, 134522, 151489, 128585, 41643, 6404, 145, 1381,
  64. ],
  65. },
  66. },
  67. {
  68. by: {outcome: 'rate_limited'},
  69. totals: {'sum(quantity)': 1335469},
  70. series: {
  71. 'sum(quantity)': [
  72. 0, 0, 0, 0, 191, 0, 0, 0, 385, 0, 0, 0, 0, 0, 345, 0, 445, 276, 56, 0, 0, 1101,
  73. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 656, 45581, 143705, 168077, 168143, 127756,
  74. 114636, 148322, 162904, 153069, 80977, 17299, 512, 1033,
  75. ],
  76. },
  77. },
  78. {
  79. by: {outcome: 'accepted'},
  80. totals: {'sum(quantity)': 18868070},
  81. series: {
  82. 'sum(quantity)': [
  83. 0, 0, 0, 259581, 246831, 278464, 290677, 242770, 242559, 248963, 250920, 268994,
  84. 296129, 308165, 302398, 301891, 316698, 333888, 336204, 329735, 323717, 317564,
  85. 312407, 307008, 301681, 299652, 276849, 274486, 298985, 368148, 444434, 423119,
  86. 416110, 464443, 526387, 692300, 720026, 719854, 719658, 719237, 717889, 719757,
  87. 718147, 719843, 712099, 643028, 545065, 311310,
  88. ],
  89. },
  90. },
  91. {
  92. by: {outcome: 'filtered'},
  93. totals: {'sum(quantity)': 13199},
  94. series: {
  95. 'sum(quantity)': [
  96. 0, 0, 0, 251, 270, 269, 285, 256, 248, 267, 326, 335, 258, 255, 269, 292, 271,
  97. 246, 254, 285, 291, 295, 260, 292, 242, 318, 326, 302, 299, 299, 321, 310, 320,
  98. 371, 323, 331, 286, 256, 275, 316, 294, 295, 301, 282, 391, 358, 391, 217,
  99. ],
  100. },
  101. },
  102. {
  103. by: {outcome: 'invalid'},
  104. totals: {'sum(quantity)': 35},
  105. series: {
  106. 'sum(quantity)': [
  107. 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 3, 2, 0, 0, 0, 0, 0,
  108. 0, 1, 2, 0, 0, 0, 2, 1, 1, 1, 2, 2, 0, 0, 1, 1, 4, 3, 0, 0, 0,
  109. ],
  110. },
  111. },
  112. ],
  113. };
  114. describe('hasIncompleteStats', function () {
  115. it('calculates correctly', function () {
  116. expect(hasFirstBucketsEmpty(stats, 3)).toBe(true);
  117. expect(hasFirstBucketsEmpty(stats, 5)).toBe(false);
  118. });
  119. });