@trigger.dev/core 4.5.14 → 4.5.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (267) hide show
  1. package/dist/commonjs/v3/apiClient/index.d.ts +8 -2
  2. package/dist/commonjs/v3/apiClient/index.js +19 -6
  3. package/dist/commonjs/v3/apiClient/index.js.map +1 -1
  4. package/dist/commonjs/v3/realtimeStreams/sessionStreamOneshot.d.ts +2 -2
  5. package/dist/commonjs/v3/realtimeStreams/sessionStreamOneshot.js +6 -6
  6. package/dist/commonjs/v3/realtimeStreams/sessionStreamOneshot.js.map +1 -1
  7. package/dist/commonjs/v3/schemas/api.js +1 -1
  8. package/dist/commonjs/v3/schemas/api.js.map +1 -1
  9. package/dist/commonjs/v3/session-streams-api.d.ts +1 -0
  10. package/dist/commonjs/v3/session-streams-api.js +1 -0
  11. package/dist/commonjs/v3/session-streams-api.js.map +1 -1
  12. package/dist/commonjs/v3/sessionStreams/channels.d.ts +25 -0
  13. package/dist/commonjs/v3/sessionStreams/channels.js +3 -0
  14. package/dist/commonjs/v3/sessionStreams/channels.js.map +1 -0
  15. package/dist/commonjs/v3/sessionStreams/index.d.ts +16 -16
  16. package/dist/commonjs/v3/sessionStreams/index.js +32 -32
  17. package/dist/commonjs/v3/sessionStreams/index.js.map +1 -1
  18. package/dist/commonjs/v3/sessionStreams/manager.d.ts +16 -16
  19. package/dist/commonjs/v3/sessionStreams/manager.js +48 -47
  20. package/dist/commonjs/v3/sessionStreams/manager.js.map +1 -1
  21. package/dist/commonjs/v3/sessionStreams/types.d.ts +16 -16
  22. package/dist/commonjs/version.js +1 -1
  23. package/dist/esm/v3/apiClient/index.d.ts +8 -2
  24. package/dist/esm/v3/apiClient/index.js +19 -6
  25. package/dist/esm/v3/apiClient/index.js.map +1 -1
  26. package/dist/esm/v3/realtimeStreams/sessionStreamOneshot.d.ts +2 -2
  27. package/dist/esm/v3/realtimeStreams/sessionStreamOneshot.js +6 -6
  28. package/dist/esm/v3/realtimeStreams/sessionStreamOneshot.js.map +1 -1
  29. package/dist/esm/v3/schemas/api.js +1 -1
  30. package/dist/esm/v3/schemas/api.js.map +1 -1
  31. package/dist/esm/v3/session-streams-api.d.ts +1 -0
  32. package/dist/esm/v3/session-streams-api.js +1 -0
  33. package/dist/esm/v3/session-streams-api.js.map +1 -1
  34. package/dist/esm/v3/sessionStreams/channels.d.ts +25 -0
  35. package/dist/esm/v3/sessionStreams/channels.js +2 -0
  36. package/dist/esm/v3/sessionStreams/channels.js.map +1 -0
  37. package/dist/esm/v3/sessionStreams/index.d.ts +16 -16
  38. package/dist/esm/v3/sessionStreams/index.js +32 -32
  39. package/dist/esm/v3/sessionStreams/index.js.map +1 -1
  40. package/dist/esm/v3/sessionStreams/manager.d.ts +16 -16
  41. package/dist/esm/v3/sessionStreams/manager.js +48 -47
  42. package/dist/esm/v3/sessionStreams/manager.js.map +1 -1
  43. package/dist/esm/v3/sessionStreams/types.d.ts +16 -16
  44. package/dist/esm/version.js +1 -1
  45. package/package.json +4 -1
  46. package/dist/commonjs/v3/apiClient/bulkActions.test.d.ts +0 -1
  47. package/dist/commonjs/v3/apiClient/bulkActions.test.js +0 -151
  48. package/dist/commonjs/v3/apiClient/bulkActions.test.js.map +0 -1
  49. package/dist/commonjs/v3/apiClient/refreshAccessToken.test.d.ts +0 -1
  50. package/dist/commonjs/v3/apiClient/refreshAccessToken.test.js +0 -55
  51. package/dist/commonjs/v3/apiClient/refreshAccessToken.test.js.map +0 -1
  52. package/dist/commonjs/v3/apiClient/runStream.test.d.ts +0 -1
  53. package/dist/commonjs/v3/apiClient/runStream.test.js +0 -825
  54. package/dist/commonjs/v3/apiClient/runStream.test.js.map +0 -1
  55. package/dist/commonjs/v3/apiClient/streamBatchItems.test.d.ts +0 -1
  56. package/dist/commonjs/v3/apiClient/streamBatchItems.test.js +0 -408
  57. package/dist/commonjs/v3/apiClient/streamBatchItems.test.js.map +0 -1
  58. package/dist/commonjs/v3/apiKeys.test.d.ts +0 -1
  59. package/dist/commonjs/v3/apiKeys.test.js +0 -19
  60. package/dist/commonjs/v3/apiKeys.test.js.map +0 -1
  61. package/dist/commonjs/v3/apps/exec.test.d.ts +0 -1
  62. package/dist/commonjs/v3/apps/exec.test.js +0 -23
  63. package/dist/commonjs/v3/apps/exec.test.js.map +0 -1
  64. package/dist/commonjs/v3/build/flags.test.d.ts +0 -1
  65. package/dist/commonjs/v3/build/flags.test.js +0 -50
  66. package/dist/commonjs/v3/build/flags.test.js.map +0 -1
  67. package/dist/commonjs/v3/build/runtime.test.d.ts +0 -1
  68. package/dist/commonjs/v3/build/runtime.test.js +0 -44
  69. package/dist/commonjs/v3/build/runtime.test.js.map +0 -1
  70. package/dist/commonjs/v3/errors.test.d.ts +0 -1
  71. package/dist/commonjs/v3/errors.test.js +0 -36
  72. package/dist/commonjs/v3/errors.test.js.map +0 -1
  73. package/dist/commonjs/v3/externalDeploymentId.test.d.ts +0 -1
  74. package/dist/commonjs/v3/externalDeploymentId.test.js +0 -173
  75. package/dist/commonjs/v3/externalDeploymentId.test.js.map +0 -1
  76. package/dist/commonjs/v3/idempotency-key-catalog/inMemoryIdempotencyKeyCatalog.test.d.ts +0 -1
  77. package/dist/commonjs/v3/idempotency-key-catalog/inMemoryIdempotencyKeyCatalog.test.js +0 -44
  78. package/dist/commonjs/v3/idempotency-key-catalog/inMemoryIdempotencyKeyCatalog.test.js.map +0 -1
  79. package/dist/commonjs/v3/idempotencyKeys.test.d.ts +0 -1
  80. package/dist/commonjs/v3/idempotencyKeys.test.js +0 -192
  81. package/dist/commonjs/v3/idempotencyKeys.test.js.map +0 -1
  82. package/dist/commonjs/v3/isomorphic/friendlyId.test.d.ts +0 -1
  83. package/dist/commonjs/v3/isomorphic/friendlyId.test.js +0 -497
  84. package/dist/commonjs/v3/isomorphic/friendlyId.test.js.map +0 -1
  85. package/dist/commonjs/v3/isomorphic/runOpsResidency.test.d.ts +0 -1
  86. package/dist/commonjs/v3/isomorphic/runOpsResidency.test.js +0 -141
  87. package/dist/commonjs/v3/isomorphic/runOpsResidency.test.js.map +0 -1
  88. package/dist/commonjs/v3/isomorphic/waitpointMint.test.d.ts +0 -1
  89. package/dist/commonjs/v3/isomorphic/waitpointMint.test.js +0 -97
  90. package/dist/commonjs/v3/isomorphic/waitpointMint.test.js.map +0 -1
  91. package/dist/commonjs/v3/machines/max-old-space.test.d.ts +0 -1
  92. package/dist/commonjs/v3/machines/max-old-space.test.js +0 -44
  93. package/dist/commonjs/v3/machines/max-old-space.test.js.map +0 -1
  94. package/dist/commonjs/v3/otel/tracingSDK.test.d.ts +0 -1
  95. package/dist/commonjs/v3/otel/tracingSDK.test.js +0 -174
  96. package/dist/commonjs/v3/otel/tracingSDK.test.js.map +0 -1
  97. package/dist/commonjs/v3/otel/tracingSDKShutdown.test.d.ts +0 -1
  98. package/dist/commonjs/v3/otel/tracingSDKShutdown.test.js +0 -18
  99. package/dist/commonjs/v3/otel/tracingSDKShutdown.test.js.map +0 -1
  100. package/dist/commonjs/v3/realtimeStreams/manager.test.d.ts +0 -1
  101. package/dist/commonjs/v3/realtimeStreams/manager.test.js +0 -89
  102. package/dist/commonjs/v3/realtimeStreams/manager.test.js.map +0 -1
  103. package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.test.d.ts +0 -1
  104. package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.test.js +0 -68
  105. package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.test.js.map +0 -1
  106. package/dist/commonjs/v3/runEngineWorker/supervisor/consumerPool.test.d.ts +0 -1
  107. package/dist/commonjs/v3/runEngineWorker/supervisor/consumerPool.test.js +0 -674
  108. package/dist/commonjs/v3/runEngineWorker/supervisor/consumerPool.test.js.map +0 -1
  109. package/dist/commonjs/v3/runEngineWorker/supervisor/queueConsumer.test.d.ts +0 -1
  110. package/dist/commonjs/v3/runEngineWorker/supervisor/queueConsumer.test.js +0 -77
  111. package/dist/commonjs/v3/runEngineWorker/supervisor/queueConsumer.test.js.map +0 -1
  112. package/dist/commonjs/v3/runEngineWorker/supervisor/queueMetricsProcessor.test.d.ts +0 -1
  113. package/dist/commonjs/v3/runEngineWorker/supervisor/queueMetricsProcessor.test.js +0 -293
  114. package/dist/commonjs/v3/runEngineWorker/supervisor/queueMetricsProcessor.test.js.map +0 -1
  115. package/dist/commonjs/v3/runEngineWorker/supervisor/scalingStrategies.test.d.ts +0 -1
  116. package/dist/commonjs/v3/runEngineWorker/supervisor/scalingStrategies.test.js +0 -235
  117. package/dist/commonjs/v3/runEngineWorker/supervisor/scalingStrategies.test.js.map +0 -1
  118. package/dist/commonjs/v3/schemas/api-type.test.d.ts +0 -1
  119. package/dist/commonjs/v3/schemas/api-type.test.js +0 -358
  120. package/dist/commonjs/v3/schemas/api-type.test.js.map +0 -1
  121. package/dist/commonjs/v3/schemas/batchItemNDJSON.test.d.ts +0 -1
  122. package/dist/commonjs/v3/schemas/batchItemNDJSON.test.js +0 -79
  123. package/dist/commonjs/v3/schemas/batchItemNDJSON.test.js.map +0 -1
  124. package/dist/commonjs/v3/schemas/idempotencyKey.test.d.ts +0 -1
  125. package/dist/commonjs/v3/schemas/idempotencyKey.test.js +0 -157
  126. package/dist/commonjs/v3/schemas/idempotencyKey.test.js.map +0 -1
  127. package/dist/commonjs/v3/schemas/scheduleWindow.test.d.ts +0 -1
  128. package/dist/commonjs/v3/schemas/scheduleWindow.test.js +0 -52
  129. package/dist/commonjs/v3/schemas/scheduleWindow.test.js.map +0 -1
  130. package/dist/commonjs/v3/schemas/triggerExternalDeploymentId.test.d.ts +0 -1
  131. package/dist/commonjs/v3/schemas/triggerExternalDeploymentId.test.js +0 -104
  132. package/dist/commonjs/v3/schemas/triggerExternalDeploymentId.test.js.map +0 -1
  133. package/dist/commonjs/v3/serverOnly/shutdownManager.test.d.ts +0 -1
  134. package/dist/commonjs/v3/serverOnly/shutdownManager.test.js +0 -139
  135. package/dist/commonjs/v3/serverOnly/shutdownManager.test.js.map +0 -1
  136. package/dist/commonjs/v3/sessionStreams/manager.test.d.ts +0 -1
  137. package/dist/commonjs/v3/sessionStreams/manager.test.js +0 -375
  138. package/dist/commonjs/v3/sessionStreams/manager.test.js.map +0 -1
  139. package/dist/commonjs/v3/sessionStreams/router.test.d.ts +0 -1
  140. package/dist/commonjs/v3/sessionStreams/router.test.js +0 -463
  141. package/dist/commonjs/v3/sessionStreams/router.test.js.map +0 -1
  142. package/dist/commonjs/v3/taskContext/index.test.d.ts +0 -1
  143. package/dist/commonjs/v3/taskContext/index.test.js +0 -73
  144. package/dist/commonjs/v3/taskContext/index.test.js.map +0 -1
  145. package/dist/commonjs/v3/taskContext/otelProcessors.test.d.ts +0 -1
  146. package/dist/commonjs/v3/taskContext/otelProcessors.test.js +0 -109
  147. package/dist/commonjs/v3/taskContext/otelProcessors.test.js.map +0 -1
  148. package/dist/commonjs/v3/telnetLogServer.test.d.ts +0 -1
  149. package/dist/commonjs/v3/telnetLogServer.test.js +0 -144
  150. package/dist/commonjs/v3/telnetLogServer.test.js.map +0 -1
  151. package/dist/commonjs/v3/utils/reconnectBackoff.test.d.ts +0 -1
  152. package/dist/commonjs/v3/utils/reconnectBackoff.test.js +0 -76
  153. package/dist/commonjs/v3/utils/reconnectBackoff.test.js.map +0 -1
  154. package/dist/commonjs/v3/workloadDeploymentToken.test.d.ts +0 -1
  155. package/dist/commonjs/v3/workloadDeploymentToken.test.js +0 -110
  156. package/dist/commonjs/v3/workloadDeploymentToken.test.js.map +0 -1
  157. package/dist/esm/v3/apiClient/bulkActions.test.d.ts +0 -1
  158. package/dist/esm/v3/apiClient/bulkActions.test.js +0 -149
  159. package/dist/esm/v3/apiClient/bulkActions.test.js.map +0 -1
  160. package/dist/esm/v3/apiClient/refreshAccessToken.test.d.ts +0 -1
  161. package/dist/esm/v3/apiClient/refreshAccessToken.test.js +0 -53
  162. package/dist/esm/v3/apiClient/refreshAccessToken.test.js.map +0 -1
  163. package/dist/esm/v3/apiClient/runStream.test.d.ts +0 -1
  164. package/dist/esm/v3/apiClient/runStream.test.js +0 -823
  165. package/dist/esm/v3/apiClient/runStream.test.js.map +0 -1
  166. package/dist/esm/v3/apiClient/streamBatchItems.test.d.ts +0 -1
  167. package/dist/esm/v3/apiClient/streamBatchItems.test.js +0 -406
  168. package/dist/esm/v3/apiClient/streamBatchItems.test.js.map +0 -1
  169. package/dist/esm/v3/apiKeys.test.d.ts +0 -1
  170. package/dist/esm/v3/apiKeys.test.js +0 -17
  171. package/dist/esm/v3/apiKeys.test.js.map +0 -1
  172. package/dist/esm/v3/apps/exec.test.d.ts +0 -1
  173. package/dist/esm/v3/apps/exec.test.js +0 -21
  174. package/dist/esm/v3/apps/exec.test.js.map +0 -1
  175. package/dist/esm/v3/build/flags.test.d.ts +0 -1
  176. package/dist/esm/v3/build/flags.test.js +0 -48
  177. package/dist/esm/v3/build/flags.test.js.map +0 -1
  178. package/dist/esm/v3/build/runtime.test.d.ts +0 -1
  179. package/dist/esm/v3/build/runtime.test.js +0 -42
  180. package/dist/esm/v3/build/runtime.test.js.map +0 -1
  181. package/dist/esm/v3/errors.test.d.ts +0 -1
  182. package/dist/esm/v3/errors.test.js +0 -34
  183. package/dist/esm/v3/errors.test.js.map +0 -1
  184. package/dist/esm/v3/externalDeploymentId.test.d.ts +0 -1
  185. package/dist/esm/v3/externalDeploymentId.test.js +0 -171
  186. package/dist/esm/v3/externalDeploymentId.test.js.map +0 -1
  187. package/dist/esm/v3/idempotency-key-catalog/inMemoryIdempotencyKeyCatalog.test.d.ts +0 -1
  188. package/dist/esm/v3/idempotency-key-catalog/inMemoryIdempotencyKeyCatalog.test.js +0 -42
  189. package/dist/esm/v3/idempotency-key-catalog/inMemoryIdempotencyKeyCatalog.test.js.map +0 -1
  190. package/dist/esm/v3/idempotencyKeys.test.d.ts +0 -1
  191. package/dist/esm/v3/idempotencyKeys.test.js +0 -190
  192. package/dist/esm/v3/idempotencyKeys.test.js.map +0 -1
  193. package/dist/esm/v3/isomorphic/friendlyId.test.d.ts +0 -1
  194. package/dist/esm/v3/isomorphic/friendlyId.test.js +0 -495
  195. package/dist/esm/v3/isomorphic/friendlyId.test.js.map +0 -1
  196. package/dist/esm/v3/isomorphic/runOpsResidency.test.d.ts +0 -1
  197. package/dist/esm/v3/isomorphic/runOpsResidency.test.js +0 -139
  198. package/dist/esm/v3/isomorphic/runOpsResidency.test.js.map +0 -1
  199. package/dist/esm/v3/isomorphic/waitpointMint.test.d.ts +0 -1
  200. package/dist/esm/v3/isomorphic/waitpointMint.test.js +0 -95
  201. package/dist/esm/v3/isomorphic/waitpointMint.test.js.map +0 -1
  202. package/dist/esm/v3/machines/max-old-space.test.d.ts +0 -1
  203. package/dist/esm/v3/machines/max-old-space.test.js +0 -42
  204. package/dist/esm/v3/machines/max-old-space.test.js.map +0 -1
  205. package/dist/esm/v3/otel/tracingSDK.test.d.ts +0 -1
  206. package/dist/esm/v3/otel/tracingSDK.test.js +0 -172
  207. package/dist/esm/v3/otel/tracingSDK.test.js.map +0 -1
  208. package/dist/esm/v3/otel/tracingSDKShutdown.test.d.ts +0 -1
  209. package/dist/esm/v3/otel/tracingSDKShutdown.test.js +0 -16
  210. package/dist/esm/v3/otel/tracingSDKShutdown.test.js.map +0 -1
  211. package/dist/esm/v3/realtimeStreams/manager.test.d.ts +0 -1
  212. package/dist/esm/v3/realtimeStreams/manager.test.js +0 -87
  213. package/dist/esm/v3/realtimeStreams/manager.test.js.map +0 -1
  214. package/dist/esm/v3/realtimeStreams/streamsWriterV2.test.d.ts +0 -1
  215. package/dist/esm/v3/realtimeStreams/streamsWriterV2.test.js +0 -66
  216. package/dist/esm/v3/realtimeStreams/streamsWriterV2.test.js.map +0 -1
  217. package/dist/esm/v3/runEngineWorker/supervisor/consumerPool.test.d.ts +0 -1
  218. package/dist/esm/v3/runEngineWorker/supervisor/consumerPool.test.js +0 -672
  219. package/dist/esm/v3/runEngineWorker/supervisor/consumerPool.test.js.map +0 -1
  220. package/dist/esm/v3/runEngineWorker/supervisor/queueConsumer.test.d.ts +0 -1
  221. package/dist/esm/v3/runEngineWorker/supervisor/queueConsumer.test.js +0 -75
  222. package/dist/esm/v3/runEngineWorker/supervisor/queueConsumer.test.js.map +0 -1
  223. package/dist/esm/v3/runEngineWorker/supervisor/queueMetricsProcessor.test.d.ts +0 -1
  224. package/dist/esm/v3/runEngineWorker/supervisor/queueMetricsProcessor.test.js +0 -291
  225. package/dist/esm/v3/runEngineWorker/supervisor/queueMetricsProcessor.test.js.map +0 -1
  226. package/dist/esm/v3/runEngineWorker/supervisor/scalingStrategies.test.d.ts +0 -1
  227. package/dist/esm/v3/runEngineWorker/supervisor/scalingStrategies.test.js +0 -233
  228. package/dist/esm/v3/runEngineWorker/supervisor/scalingStrategies.test.js.map +0 -1
  229. package/dist/esm/v3/schemas/api-type.test.d.ts +0 -1
  230. package/dist/esm/v3/schemas/api-type.test.js +0 -356
  231. package/dist/esm/v3/schemas/api-type.test.js.map +0 -1
  232. package/dist/esm/v3/schemas/batchItemNDJSON.test.d.ts +0 -1
  233. package/dist/esm/v3/schemas/batchItemNDJSON.test.js +0 -77
  234. package/dist/esm/v3/schemas/batchItemNDJSON.test.js.map +0 -1
  235. package/dist/esm/v3/schemas/idempotencyKey.test.d.ts +0 -1
  236. package/dist/esm/v3/schemas/idempotencyKey.test.js +0 -155
  237. package/dist/esm/v3/schemas/idempotencyKey.test.js.map +0 -1
  238. package/dist/esm/v3/schemas/scheduleWindow.test.d.ts +0 -1
  239. package/dist/esm/v3/schemas/scheduleWindow.test.js +0 -50
  240. package/dist/esm/v3/schemas/scheduleWindow.test.js.map +0 -1
  241. package/dist/esm/v3/schemas/triggerExternalDeploymentId.test.d.ts +0 -1
  242. package/dist/esm/v3/schemas/triggerExternalDeploymentId.test.js +0 -102
  243. package/dist/esm/v3/schemas/triggerExternalDeploymentId.test.js.map +0 -1
  244. package/dist/esm/v3/serverOnly/shutdownManager.test.d.ts +0 -1
  245. package/dist/esm/v3/serverOnly/shutdownManager.test.js +0 -137
  246. package/dist/esm/v3/serverOnly/shutdownManager.test.js.map +0 -1
  247. package/dist/esm/v3/sessionStreams/manager.test.d.ts +0 -1
  248. package/dist/esm/v3/sessionStreams/manager.test.js +0 -373
  249. package/dist/esm/v3/sessionStreams/manager.test.js.map +0 -1
  250. package/dist/esm/v3/sessionStreams/router.test.d.ts +0 -1
  251. package/dist/esm/v3/sessionStreams/router.test.js +0 -461
  252. package/dist/esm/v3/sessionStreams/router.test.js.map +0 -1
  253. package/dist/esm/v3/taskContext/index.test.d.ts +0 -1
  254. package/dist/esm/v3/taskContext/index.test.js +0 -71
  255. package/dist/esm/v3/taskContext/index.test.js.map +0 -1
  256. package/dist/esm/v3/taskContext/otelProcessors.test.d.ts +0 -1
  257. package/dist/esm/v3/taskContext/otelProcessors.test.js +0 -107
  258. package/dist/esm/v3/taskContext/otelProcessors.test.js.map +0 -1
  259. package/dist/esm/v3/telnetLogServer.test.d.ts +0 -1
  260. package/dist/esm/v3/telnetLogServer.test.js +0 -139
  261. package/dist/esm/v3/telnetLogServer.test.js.map +0 -1
  262. package/dist/esm/v3/utils/reconnectBackoff.test.d.ts +0 -1
  263. package/dist/esm/v3/utils/reconnectBackoff.test.js +0 -74
  264. package/dist/esm/v3/utils/reconnectBackoff.test.js.map +0 -1
  265. package/dist/esm/v3/workloadDeploymentToken.test.d.ts +0 -1
  266. package/dist/esm/v3/workloadDeploymentToken.test.js +0 -108
  267. package/dist/esm/v3/workloadDeploymentToken.test.js.map +0 -1
@@ -1,672 +0,0 @@
1
- import { describe, it, expect, beforeEach, afterEach, vi } from "vitest";
2
- import { RunQueueConsumerPool, } from "./consumerPool.js";
3
- import { ConsumerPoolMetrics } from "./consumerPoolMetrics.js";
4
- import { Registry } from "prom-client";
5
- // Mock only the logger
6
- vi.mock("../../utils/structuredLogger.js");
7
- // Test implementation of QueueConsumer
8
- class TestQueueConsumer {
9
- started = false;
10
- stopped = false;
11
- onDequeue;
12
- metrics;
13
- constructor(opts) {
14
- this.onDequeue = opts.onDequeue;
15
- this.metrics = opts.metrics;
16
- }
17
- start() {
18
- this.started = true;
19
- this.stopped = false;
20
- }
21
- stop() {
22
- this.stopped = true;
23
- this.started = false;
24
- }
25
- }
26
- describe("RunQueueConsumerPool", () => {
27
- let mockClient;
28
- let mockOnDequeue;
29
- let pool;
30
- let defaultOptions;
31
- let testConsumers;
32
- let testConsumerFactory;
33
- beforeEach(() => {
34
- vi.clearAllMocks();
35
- vi.useFakeTimers();
36
- mockClient = {};
37
- mockOnDequeue = vi.fn();
38
- testConsumers = [];
39
- testConsumerFactory = (opts) => {
40
- const consumer = new TestQueueConsumer(opts);
41
- testConsumers.push(consumer);
42
- return consumer;
43
- };
44
- defaultOptions = {
45
- consumer: {
46
- client: mockClient,
47
- intervalMs: 0,
48
- idleIntervalMs: 1000,
49
- onDequeue: mockOnDequeue,
50
- },
51
- consumerFactory: testConsumerFactory,
52
- };
53
- });
54
- afterEach(() => {
55
- vi.useRealTimers();
56
- if (pool) {
57
- pool.stop();
58
- }
59
- });
60
- function advanceTimeAndProcessMetrics(ms) {
61
- vi.advanceTimersByTime(ms);
62
- // Trigger batch processing if ready (without adding a sample)
63
- if (pool["metricsProcessor"].shouldProcessBatch()) {
64
- pool["processMetricsBatch"]();
65
- }
66
- }
67
- describe("Static mode (strategy='none')", () => {
68
- it("should start with maxConsumerCount in static mode", async () => {
69
- pool = new RunQueueConsumerPool({
70
- ...defaultOptions,
71
- scaling: { strategy: "none", maxConsumerCount: 5 },
72
- });
73
- await pool.start();
74
- expect(pool.size).toBe(5);
75
- expect(testConsumers.length).toBe(5);
76
- });
77
- it("should not scale in static mode even with queue length updates", async () => {
78
- pool = new RunQueueConsumerPool({
79
- ...defaultOptions,
80
- scaling: { strategy: "none", maxConsumerCount: 3 },
81
- });
82
- await pool.start();
83
- const initialCount = pool.size;
84
- pool.updateQueueLength(100);
85
- vi.advanceTimersByTime(2000);
86
- expect(pool.size).toBe(initialCount);
87
- expect(pool.size).toBe(3);
88
- });
89
- });
90
- describe("Smooth scaling strategy", () => {
91
- it("should scale smoothly with damping", async () => {
92
- pool = new RunQueueConsumerPool({
93
- ...defaultOptions,
94
- scaling: {
95
- strategy: "smooth",
96
- minConsumerCount: 1,
97
- maxConsumerCount: 10,
98
- scaleUpCooldownMs: 0,
99
- disableJitter: true,
100
- },
101
- });
102
- await pool.start();
103
- expect(pool.size).toBe(1);
104
- pool.updateQueueLength(5);
105
- advanceTimeAndProcessMetrics(1100);
106
- expect(pool.size).toBe(4); // Damped scaling
107
- pool.updateQueueLength(5);
108
- advanceTimeAndProcessMetrics(1100);
109
- expect(pool.size).toBe(5); // Gradually approaches target
110
- });
111
- it("should respect max consumer count", async () => {
112
- pool = new RunQueueConsumerPool({
113
- ...defaultOptions,
114
- scaling: {
115
- strategy: "smooth",
116
- minConsumerCount: 1,
117
- maxConsumerCount: 5,
118
- scaleUpCooldownMs: 0,
119
- disableJitter: true,
120
- },
121
- });
122
- await pool.start();
123
- expect(pool.size).toBe(1);
124
- pool.updateQueueLength(100);
125
- advanceTimeAndProcessMetrics(1100);
126
- expect(pool.size).toBe(5);
127
- pool.updateQueueLength(100);
128
- advanceTimeAndProcessMetrics(1100);
129
- expect(pool.size).toBe(5);
130
- });
131
- });
132
- describe("Aggressive scaling strategy", () => {
133
- it("should scale up quickly based on queue pressure", async () => {
134
- pool = new RunQueueConsumerPool({
135
- ...defaultOptions,
136
- scaling: {
137
- strategy: "aggressive",
138
- minConsumerCount: 2,
139
- maxConsumerCount: 10,
140
- scaleUpCooldownMs: 0,
141
- disableJitter: true,
142
- },
143
- });
144
- await pool.start();
145
- expect(pool.size).toBe(2);
146
- pool.updateQueueLength(10);
147
- advanceTimeAndProcessMetrics(1100);
148
- expect(pool.size).toBe(3);
149
- pool.updateQueueLength(20);
150
- advanceTimeAndProcessMetrics(1100);
151
- expect(pool.size).toBe(4);
152
- });
153
- it("should scale down cautiously when queue is small", async () => {
154
- pool = new RunQueueConsumerPool({
155
- ...defaultOptions,
156
- scaling: {
157
- strategy: "aggressive",
158
- minConsumerCount: 1,
159
- maxConsumerCount: 10,
160
- scaleUpCooldownMs: 0,
161
- scaleDownCooldownMs: 0,
162
- disableJitter: true,
163
- },
164
- });
165
- await pool.start();
166
- expect(pool.size).toBe(1);
167
- pool.updateQueueLength(10);
168
- advanceTimeAndProcessMetrics(1100);
169
- expect(pool.size).toBe(2);
170
- pool.updateQueueLength(0.5);
171
- advanceTimeAndProcessMetrics(1100);
172
- expect(pool.size).toBe(3); // EWMA smoothing delays scale down
173
- pool.updateQueueLength(0.5);
174
- advanceTimeAndProcessMetrics(1100);
175
- expect(pool.size).toBeGreaterThanOrEqual(3); // Stays in optimal zone
176
- });
177
- it("should maintain current level in optimal zone", async () => {
178
- pool = new RunQueueConsumerPool({
179
- ...defaultOptions,
180
- scaling: {
181
- strategy: "aggressive",
182
- minConsumerCount: 3,
183
- maxConsumerCount: 10,
184
- scaleUpCooldownMs: 0,
185
- disableJitter: true,
186
- },
187
- });
188
- await pool.start();
189
- expect(pool.size).toBe(3);
190
- pool.updateQueueLength(3);
191
- advanceTimeAndProcessMetrics(1100);
192
- expect(pool.size).toBe(3);
193
- pool.updateQueueLength(4);
194
- advanceTimeAndProcessMetrics(1100);
195
- expect(pool.size).toBe(3);
196
- });
197
- });
198
- describe("Smooth scaling with EWMA", () => {
199
- it("should use exponential smoothing for stable scaling", async () => {
200
- pool = new RunQueueConsumerPool({
201
- ...defaultOptions,
202
- scaling: {
203
- strategy: "smooth",
204
- minConsumerCount: 1,
205
- maxConsumerCount: 10,
206
- disableJitter: true,
207
- },
208
- });
209
- await pool.start();
210
- const queueLengths = [10, 2, 8, 3, 9, 1, 7];
211
- for (const length of queueLengths) {
212
- pool.updateQueueLength(length);
213
- vi.advanceTimersByTime(200);
214
- }
215
- vi.advanceTimersByTime(900);
216
- const metrics = pool.getMetrics();
217
- expect(metrics.smoothedQueueLength).toBeGreaterThan(0);
218
- expect(metrics.smoothedQueueLength).toBeLessThan(10);
219
- });
220
- it("should apply damping factor to avoid rapid changes", async () => {
221
- pool = new RunQueueConsumerPool({
222
- ...defaultOptions,
223
- scaling: {
224
- strategy: "smooth",
225
- minConsumerCount: 1,
226
- maxConsumerCount: 10,
227
- disableJitter: true,
228
- },
229
- });
230
- await pool.start();
231
- pool.updateQueueLength(2);
232
- advanceTimeAndProcessMetrics(1100);
233
- const metrics1 = pool.getMetrics();
234
- expect(metrics1.smoothedQueueLength).toBe(2);
235
- pool.updateQueueLength(20);
236
- advanceTimeAndProcessMetrics(1100);
237
- const metrics2 = pool.getMetrics();
238
- expect(metrics2.smoothedQueueLength).toBeGreaterThan(2);
239
- expect(metrics2.smoothedQueueLength).toBeLessThan(20);
240
- });
241
- });
242
- describe("High throughput parallel dequeuing", () => {
243
- it("should handle rapid parallel queue updates", async () => {
244
- pool = new RunQueueConsumerPool({
245
- ...defaultOptions,
246
- scaling: {
247
- strategy: "aggressive",
248
- minConsumerCount: 1,
249
- maxConsumerCount: 20,
250
- disableJitter: true,
251
- },
252
- });
253
- await pool.start();
254
- const updates = [];
255
- for (let i = 0; i < 100; i++) {
256
- updates.push(Math.floor(Math.random() * 50) + 10);
257
- }
258
- updates.forEach((length, index) => {
259
- setTimeout(() => pool.updateQueueLength(length), index * 10);
260
- });
261
- advanceTimeAndProcessMetrics(1100);
262
- const metrics = pool.getMetrics();
263
- expect(metrics.queueLength).toBeDefined();
264
- });
265
- it("should batch metrics updates to avoid excessive scaling", async () => {
266
- pool = new RunQueueConsumerPool({
267
- ...defaultOptions,
268
- scaling: {
269
- strategy: "smooth",
270
- minConsumerCount: 1,
271
- maxConsumerCount: 10,
272
- disableJitter: true,
273
- },
274
- });
275
- await pool.start();
276
- const evaluateScalingSpy = vi.spyOn(pool, "evaluateScaling");
277
- pool.updateQueueLength(10);
278
- for (let i = 1; i < 50; i++) {
279
- pool.updateQueueLength(Math.floor(Math.random() * 20) + 5);
280
- }
281
- expect(evaluateScalingSpy).not.toHaveBeenCalled();
282
- advanceTimeAndProcessMetrics(1000);
283
- expect(evaluateScalingSpy).toHaveBeenCalledTimes(1);
284
- });
285
- it("should use median to filter outliers in high-frequency updates", async () => {
286
- pool = new RunQueueConsumerPool({
287
- ...defaultOptions,
288
- scaling: {
289
- strategy: "aggressive",
290
- minConsumerCount: 1,
291
- maxConsumerCount: 10,
292
- disableJitter: true,
293
- },
294
- });
295
- await pool.start();
296
- const updates = [10, 11, 9, 12, 10, 100, 11, 10, 9, 11, 1];
297
- updates.forEach((length) => pool.updateQueueLength(length));
298
- advanceTimeAndProcessMetrics(1100);
299
- const metrics = pool.getMetrics();
300
- expect(metrics.queueLength).toBeGreaterThanOrEqual(9);
301
- expect(metrics.queueLength).toBeLessThanOrEqual(12);
302
- });
303
- });
304
- describe("Scaling cooldowns and jitter", () => {
305
- it("should respect scale-up cooldown", async () => {
306
- pool = new RunQueueConsumerPool({
307
- ...defaultOptions,
308
- scaling: {
309
- strategy: "smooth",
310
- scaleUpCooldownMs: 5000,
311
- minConsumerCount: 1,
312
- maxConsumerCount: 10,
313
- disableJitter: true,
314
- },
315
- });
316
- await pool.start();
317
- pool["scaleToTarget"](5);
318
- const scaleToTargetSpy = vi.spyOn(pool, "scaleToTarget");
319
- pool.updateQueueLength(10);
320
- advanceTimeAndProcessMetrics(1100);
321
- expect(scaleToTargetSpy).not.toHaveBeenCalled();
322
- vi.advanceTimersByTime(10000);
323
- pool.updateQueueLength(20);
324
- advanceTimeAndProcessMetrics(1100);
325
- });
326
- it("should respect scale-down cooldown (longer than scale-up)", async () => {
327
- pool = new RunQueueConsumerPool({
328
- ...defaultOptions,
329
- scaling: {
330
- strategy: "aggressive",
331
- minConsumerCount: 1,
332
- maxConsumerCount: 10,
333
- disableJitter: true,
334
- },
335
- });
336
- await pool.start();
337
- for (let i = 0; i < 4; i++) {
338
- pool["addConsumers"](1);
339
- }
340
- pool["scaleToTarget"](5);
341
- pool["metrics"].lastScaleTime = new Date(Date.now() - 70000);
342
- pool.updateQueueLength(1);
343
- advanceTimeAndProcessMetrics(1100);
344
- const metrics = pool.getMetrics();
345
- expect(metrics.queueLength).toBe(1);
346
- });
347
- it("should add random jitter to prevent thundering herd", async () => {
348
- const pools = [];
349
- const scaleTimes = [];
350
- for (let i = 0; i < 3; i++) {
351
- const p = new RunQueueConsumerPool({
352
- ...defaultOptions,
353
- scaling: {
354
- strategy: "smooth",
355
- minConsumerCount: 1,
356
- maxConsumerCount: 10,
357
- disableJitter: true,
358
- },
359
- });
360
- const originalScale = p["scaleToTarget"];
361
- p["scaleToTarget"] = vi.fn(async (target) => {
362
- scaleTimes.push(Date.now());
363
- return originalScale.call(p, target);
364
- });
365
- pools.push(p);
366
- await p.start();
367
- }
368
- pools.forEach((p) => p.updateQueueLength(20));
369
- advanceTimeAndProcessMetrics(1100);
370
- vi.advanceTimersByTime(15000);
371
- await Promise.all(pools.map((p) => p.stop()));
372
- });
373
- });
374
- describe("Consumer lifecycle management", () => {
375
- it("should properly start and stop consumers", async () => {
376
- pool = new RunQueueConsumerPool({
377
- ...defaultOptions,
378
- scaling: {
379
- strategy: "none",
380
- maxConsumerCount: 3,
381
- disableJitter: true,
382
- },
383
- });
384
- await pool.start();
385
- expect(pool.size).toBe(3);
386
- expect(testConsumers.length).toBe(3);
387
- testConsumers.forEach((consumer) => {
388
- expect(consumer.started).toBe(true);
389
- });
390
- await pool.stop();
391
- testConsumers.forEach((consumer) => {
392
- expect(consumer.stopped).toBe(true);
393
- });
394
- });
395
- it("should forward dequeue messages with queue length updates", async () => {
396
- pool = new RunQueueConsumerPool({
397
- ...defaultOptions,
398
- scaling: {
399
- strategy: "aggressive",
400
- maxConsumerCount: 2,
401
- disableJitter: true,
402
- },
403
- });
404
- await pool.start();
405
- const messages = [{ workerQueueLength: 15 }];
406
- if (testConsumers[0]?.onDequeue) {
407
- await testConsumers[0].onDequeue(messages);
408
- }
409
- expect(mockOnDequeue).toHaveBeenCalledWith(messages, undefined);
410
- advanceTimeAndProcessMetrics(1100);
411
- const metrics = pool.getMetrics();
412
- expect(metrics.queueLength).toBe(15);
413
- });
414
- });
415
- describe("Memory leak prevention", () => {
416
- it("should collect all samples within batch window without limit", async () => {
417
- pool = new RunQueueConsumerPool({
418
- ...defaultOptions,
419
- scaling: {
420
- strategy: "aggressive",
421
- minConsumerCount: 1,
422
- maxConsumerCount: 10,
423
- disableJitter: true,
424
- },
425
- });
426
- await pool.start();
427
- for (let i = 0; i < 100; i++) {
428
- pool.updateQueueLength(i);
429
- }
430
- const metrics = pool.getMetrics();
431
- expect(metrics.queueLength).toBeUndefined();
432
- });
433
- it("should clear consumer map on stop", async () => {
434
- pool = new RunQueueConsumerPool({
435
- ...defaultOptions,
436
- scaling: {
437
- strategy: "none",
438
- maxConsumerCount: 5,
439
- disableJitter: true,
440
- },
441
- });
442
- await pool.start();
443
- expect(pool.size).toBe(5);
444
- await pool.stop();
445
- expect(pool.size).toBe(0);
446
- });
447
- it("should clear recentQueueLengths after processing batch", async () => {
448
- pool = new RunQueueConsumerPool({
449
- ...defaultOptions,
450
- scaling: { strategy: "smooth" },
451
- });
452
- await pool.start();
453
- for (let i = 0; i < 5; i++) {
454
- pool.updateQueueLength(10 + i);
455
- }
456
- advanceTimeAndProcessMetrics(1100);
457
- const metrics = pool.getMetrics();
458
- expect(metrics.queueLength).toBeDefined();
459
- });
460
- it("should not accumulate scaling operations in memory", async () => {
461
- pool = new RunQueueConsumerPool({
462
- ...defaultOptions,
463
- scaling: {
464
- strategy: "aggressive",
465
- scaleUpCooldownMs: 100,
466
- scaleDownCooldownMs: 100,
467
- minConsumerCount: 1,
468
- maxConsumerCount: 10,
469
- disableJitter: true,
470
- },
471
- });
472
- await pool.start();
473
- for (let i = 0; i < 5; i++) {
474
- pool["metrics"].lastScaleTime = new Date(0);
475
- pool.updateQueueLength(i % 2 === 0 ? 50 : 1);
476
- vi.advanceTimersByTime(1100);
477
- }
478
- expect(pool.size).toBeGreaterThanOrEqual(1);
479
- expect(pool.size).toBeLessThanOrEqual(10);
480
- });
481
- });
482
- describe("Edge cases", () => {
483
- it("should handle empty recent queue lengths", async () => {
484
- pool = new RunQueueConsumerPool({
485
- ...defaultOptions,
486
- scaling: { strategy: "aggressive" },
487
- });
488
- await pool.start();
489
- const metrics = pool.getMetrics();
490
- expect(metrics.queueLength).toBeUndefined();
491
- });
492
- it("should clamp consumer count to min/max bounds", async () => {
493
- pool = new RunQueueConsumerPool({
494
- ...defaultOptions,
495
- scaling: {
496
- strategy: "smooth",
497
- minConsumerCount: 2,
498
- maxConsumerCount: 5,
499
- disableJitter: true,
500
- },
501
- });
502
- await pool.start();
503
- expect(pool.size).toBe(2);
504
- pool.updateQueueLength(100);
505
- advanceTimeAndProcessMetrics(1100);
506
- expect(pool.size).toBeLessThanOrEqual(5);
507
- });
508
- it("should respect custom targetRatio with smooth strategy", async () => {
509
- pool = new RunQueueConsumerPool({
510
- ...defaultOptions,
511
- scaling: {
512
- strategy: "smooth",
513
- targetRatio: 5,
514
- scaleUpCooldownMs: 0,
515
- minConsumerCount: 1,
516
- maxConsumerCount: 10,
517
- disableJitter: true,
518
- },
519
- });
520
- await pool.start();
521
- expect(pool.size).toBe(1);
522
- pool.updateQueueLength(10);
523
- advanceTimeAndProcessMetrics(1100);
524
- const firstSize = pool.size;
525
- expect(firstSize).toBeGreaterThanOrEqual(1);
526
- expect(firstSize).toBeLessThanOrEqual(2);
527
- pool.updateQueueLength(10);
528
- advanceTimeAndProcessMetrics(1100);
529
- expect(pool.size).toBeLessThanOrEqual(2);
530
- });
531
- it("should respect custom targetRatio with aggressive strategy", async () => {
532
- pool = new RunQueueConsumerPool({
533
- ...defaultOptions,
534
- scaling: {
535
- strategy: "aggressive",
536
- targetRatio: 5,
537
- scaleUpCooldownMs: 0,
538
- minConsumerCount: 1,
539
- maxConsumerCount: 10,
540
- disableJitter: true,
541
- },
542
- });
543
- await pool.start();
544
- expect(pool.size).toBe(1);
545
- pool.updateQueueLength(20);
546
- advanceTimeAndProcessMetrics(1100);
547
- const sizeAfterFirstScale = pool.size;
548
- expect(sizeAfterFirstScale).toBeGreaterThanOrEqual(1);
549
- pool.updateQueueLength(20);
550
- advanceTimeAndProcessMetrics(1100);
551
- expect(pool.size).toBeLessThanOrEqual(6);
552
- });
553
- it("should scale down when no items are dequeued (zero queue length)", async () => {
554
- pool = new RunQueueConsumerPool({
555
- ...defaultOptions,
556
- scaling: {
557
- strategy: "smooth",
558
- minConsumerCount: 1,
559
- maxConsumerCount: 10,
560
- scaleUpCooldownMs: 0,
561
- scaleDownCooldownMs: 0,
562
- disableJitter: true,
563
- },
564
- });
565
- await pool.start();
566
- expect(pool.size).toBe(1);
567
- // Scale up first
568
- pool.updateQueueLength(20);
569
- advanceTimeAndProcessMetrics(1100);
570
- expect(pool.size).toBeGreaterThan(1);
571
- const sizeAfterScaleUp = pool.size;
572
- // Now send multiple zero queue lengths to converge EWMA to 0
573
- // The EWMA needs time to converge due to exponential smoothing
574
- for (let i = 0; i < 5; i++) {
575
- pool.updateQueueLength(0);
576
- advanceTimeAndProcessMetrics(1100);
577
- }
578
- // After multiple iterations with zero queue, should scale down but not to minimum yet
579
- expect(pool.size).toBeLessThan(sizeAfterScaleUp);
580
- expect(pool.size).toBeGreaterThan(1);
581
- // Continue until we reach minimum
582
- for (let i = 0; i < 5; i++) {
583
- pool.updateQueueLength(0);
584
- advanceTimeAndProcessMetrics(1100);
585
- }
586
- // Should eventually reach minimum
587
- expect(pool.size).toBe(1);
588
- });
589
- });
590
- describe("Metrics wiring", () => {
591
- it("injects the pool's shared ConsumerPoolMetrics into every consumer when a registry is provided", async () => {
592
- pool = new RunQueueConsumerPool({
593
- ...defaultOptions,
594
- metricsRegistry: new Registry(),
595
- scaling: { strategy: "none", maxConsumerCount: 3 },
596
- });
597
- await pool.start();
598
- expect(testConsumers.length).toBe(3);
599
- const poolMetrics = pool["promMetrics"];
600
- expect(poolMetrics).toBeInstanceOf(ConsumerPoolMetrics);
601
- testConsumers.forEach((consumer) => {
602
- expect(consumer.metrics).toBe(poolMetrics);
603
- });
604
- });
605
- it("preserves a caller-supplied consumer metrics instance when no registry is provided", async () => {
606
- const callerMetrics = new ConsumerPoolMetrics({ register: new Registry() });
607
- pool = new RunQueueConsumerPool({
608
- ...defaultOptions,
609
- consumer: { ...defaultOptions.consumer, metrics: callerMetrics },
610
- scaling: { strategy: "none", maxConsumerCount: 1 },
611
- });
612
- await pool.start();
613
- expect(testConsumers[0]?.metrics).toBe(callerMetrics);
614
- });
615
- });
616
- describe("Backpressure scale-up freeze", () => {
617
- it("freezes scale-up while shouldPauseScaling returns true, then resumes", async () => {
618
- let paused = true;
619
- pool = new RunQueueConsumerPool({
620
- ...defaultOptions,
621
- scaling: {
622
- strategy: "smooth",
623
- minConsumerCount: 1,
624
- maxConsumerCount: 10,
625
- scaleUpCooldownMs: 0,
626
- disableJitter: true,
627
- shouldPauseScaling: () => paused,
628
- },
629
- });
630
- await pool.start();
631
- expect(pool.size).toBe(1);
632
- // A high queue would normally scale up, but backpressure freezes it.
633
- pool.updateQueueLength(10);
634
- advanceTimeAndProcessMetrics(1100);
635
- expect(pool.size).toBe(1);
636
- // Once backpressure releases, scaling resumes.
637
- paused = false;
638
- pool.updateQueueLength(10);
639
- advanceTimeAndProcessMetrics(1100);
640
- expect(pool.size).toBeGreaterThan(1);
641
- });
642
- it("still allows scale-down while paused", async () => {
643
- let paused = false;
644
- pool = new RunQueueConsumerPool({
645
- ...defaultOptions,
646
- scaling: {
647
- strategy: "smooth",
648
- minConsumerCount: 1,
649
- maxConsumerCount: 10,
650
- scaleUpCooldownMs: 0,
651
- scaleDownCooldownMs: 0,
652
- disableJitter: true,
653
- shouldPauseScaling: () => paused,
654
- },
655
- });
656
- await pool.start();
657
- pool.updateQueueLength(10);
658
- advanceTimeAndProcessMetrics(1100);
659
- const scaledUp = pool.size;
660
- expect(scaledUp).toBeGreaterThan(1);
661
- // Pausing must not block shrinking - we want to drain down, just not grow.
662
- // Loop to let the EWMA-smoothed queue length fall (one batch isn't enough).
663
- paused = true;
664
- for (let i = 0; i < 5; i++) {
665
- pool.updateQueueLength(0);
666
- advanceTimeAndProcessMetrics(1100);
667
- }
668
- expect(pool.size).toBeLessThan(scaledUp);
669
- });
670
- });
671
- });
672
- //# sourceMappingURL=consumerPool.test.js.map