mongodash 2.4.6 → 2.5.0

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 (35) hide show
  1. package/dist/lib/ConcurrentRunner.js +23 -0
  2. package/dist/lib/ConcurrentRunner.js.map +1 -1
  3. package/dist/lib/index.js +15 -0
  4. package/dist/lib/index.js.map +1 -1
  5. package/dist/lib/reactiveTasks/ReactiveTaskOps.js +12 -4
  6. package/dist/lib/reactiveTasks/ReactiveTaskOps.js.map +1 -1
  7. package/dist/lib/reactiveTasks/ReactiveTaskPlanner.js +7 -0
  8. package/dist/lib/reactiveTasks/ReactiveTaskPlanner.js.map +1 -1
  9. package/dist/lib/reactiveTasks/index.js +57 -0
  10. package/dist/lib/reactiveTasks/index.js.map +1 -1
  11. package/dist/lib/testing/assertNoReactiveTaskErrors.js +79 -0
  12. package/dist/lib/testing/assertNoReactiveTaskErrors.js.map +1 -0
  13. package/dist/lib/testing/configureForTesting.js +25 -0
  14. package/dist/lib/testing/configureForTesting.js.map +1 -0
  15. package/dist/lib/testing/index.js +20 -0
  16. package/dist/lib/testing/index.js.map +1 -0
  17. package/dist/lib/testing/waitUntil.js +62 -0
  18. package/dist/lib/testing/waitUntil.js.map +1 -0
  19. package/dist/lib/testing/waitUntilReactiveTasksIdle.js +65 -0
  20. package/dist/lib/testing/waitUntilReactiveTasksIdle.js.map +1 -0
  21. package/dist/types/ConcurrentRunner.d.ts +3 -0
  22. package/dist/types/index.d.ts +1 -0
  23. package/dist/types/reactiveTasks/ReactiveTaskOps.d.ts +3 -0
  24. package/dist/types/reactiveTasks/ReactiveTaskPlanner.d.ts +2 -0
  25. package/dist/types/reactiveTasks/index.d.ts +17 -0
  26. package/dist/types/testing/assertNoReactiveTaskErrors.d.ts +30 -0
  27. package/dist/types/testing/configureForTesting.d.ts +26 -0
  28. package/dist/types/testing/index.d.ts +3 -0
  29. package/dist/types/testing/waitUntil.d.ts +25 -0
  30. package/dist/types/testing/waitUntilReactiveTasksIdle.d.ts +11 -0
  31. package/docs/index.md +3 -0
  32. package/docs/reactive-tasks/guides.md +8 -0
  33. package/docs/reactive-tasks/index.md +1 -0
  34. package/docs/testing.md +123 -0
  35. package/package.json +1 -1
@@ -12,6 +12,7 @@ class ConcurrentRunner {
12
12
  this.workers = [];
13
13
  this.wakeUpSignals = [];
14
14
  this.tryRunATask = null;
15
+ this._activeWorkerCount = 0;
15
16
  this.options = options;
16
17
  }
17
18
  registerSource(name, options) {
@@ -58,6 +59,21 @@ class ConcurrentRunner {
58
59
  debug(`SpeedUp called for ${sourceName}`);
59
60
  }
60
61
  }
62
+ updateAllSources(options) {
63
+ for (const state of this.sources.values()) {
64
+ state.options = Object.assign(Object.assign({}, state.options), options);
65
+ // If we are lowering the minPollMs, we should probably also lower the current backoff
66
+ // to respect the new settings immediately.
67
+ if (options.minPollMs !== undefined && state.currentBackoff > options.minPollMs) {
68
+ state.currentBackoff = options.minPollMs;
69
+ }
70
+ if (options.maxPollMs !== undefined && state.currentBackoff > options.maxPollMs) {
71
+ state.currentBackoff = options.maxPollMs;
72
+ }
73
+ }
74
+ // Wake up everyone to pick up new schedule/backoff
75
+ this.wakeUpAllWorkers();
76
+ }
61
77
  async runWorker() {
62
78
  while (this.isRunning) {
63
79
  const now = Date.now();
@@ -78,11 +94,15 @@ class ConcurrentRunner {
78
94
  // which will reset the backoff
79
95
  this.prolongNextRun(state.name);
80
96
  try {
97
+ this._activeWorkerCount++;
81
98
  await this.tryRunATask(state.name);
82
99
  }
83
100
  catch (e) {
84
101
  this.onError(e);
85
102
  }
103
+ finally {
104
+ this._activeWorkerCount--;
105
+ }
86
106
  }
87
107
  else {
88
108
  // No source is ready to run. Sleep until the nearest scheduled time.
@@ -136,6 +156,9 @@ class ConcurrentRunner {
136
156
  }
137
157
  }
138
158
  }
159
+ get activeWorkers() {
160
+ return this._activeWorkerCount;
161
+ }
139
162
  }
140
163
  exports.ConcurrentRunner = ConcurrentRunner;
141
164
  //# sourceMappingURL=ConcurrentRunner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConcurrentRunner.js","sourceRoot":"","sources":["../../src/ConcurrentRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConcurrentRunner.js","sourceRoot":"","sources":["../../src/ConcurrentRunner.ts"],"names":[],"mappings":"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"}
package/dist/lib/index.js CHANGED
@@ -1,4 +1,18 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  Object.defineProperty(exports, "__esModule", { value: true });
3
17
  exports.withTransaction = exports.registerPostCommitHook = exports.withLock = exports.LockAlreadyAcquiredError = exports.isLockAlreadyAcquiredError = exports.serveDashboard = exports.OperationalTaskController = exports._scheduler = exports.TaskConditionFailedError = exports.stopReactiveTasks = exports.startReactiveTasks = exports.retryReactiveTasks = exports.reactiveTask = exports.getReactiveTasks = exports.getPrometheusMetrics = exports.countReactiveTasks = exports.CODE_REACTIVE_TASK_STARTED = exports.CODE_REACTIVE_TASK_PLANNER_STREAM_ERROR = exports.CODE_REACTIVE_TASK_PLANNER_STOPPED = exports.CODE_REACTIVE_TASK_PLANNER_STARTED = exports.CODE_REACTIVE_TASK_PLANNER_RECONCILIATION_STARTED = exports.CODE_REACTIVE_TASK_PLANNER_RECONCILIATION_FINISHED = exports.CODE_REACTIVE_TASK_LEADER_LOCK_LOST = exports.CODE_REACTIVE_TASK_FINISHED = exports.CODE_REACTIVE_TASK_FAILED = exports.processInBatches = exports.getMongoClient = exports.getCollection = exports.triggerCronTask = exports.stopCronTasks = exports.startCronTasks = exports.scheduleCronTaskImmediately = exports.runCronTask = exports.getCronTasksList = exports.cronTask = exports.CODE_CRON_TASK_STARTED = exports.CODE_CRON_TASK_SCHEDULED = exports.CODE_CRON_TASK_FINISHED = exports.CODE_CRON_TASK_FAILED = void 0;
4
18
  exports.init = init;
@@ -50,6 +64,7 @@ Object.defineProperty(exports, "_scheduler", { enumerable: true, get: function (
50
64
  var task_management_1 = require("./task-management");
51
65
  Object.defineProperty(exports, "OperationalTaskController", { enumerable: true, get: function () { return task_management_1.OperationalTaskController; } });
52
66
  Object.defineProperty(exports, "serveDashboard", { enumerable: true, get: function () { return task_management_1.serveDashboard; } });
67
+ __exportStar(require("./testing"), exports);
53
68
  var withLock_2 = require("./withLock");
54
69
  Object.defineProperty(exports, "isLockAlreadyAcquiredError", { enumerable: true, get: function () { return withLock_2.isLockAlreadyAcquiredError; } });
55
70
  Object.defineProperty(exports, "LockAlreadyAcquiredError", { enumerable: true, get: function () { return withLock_2.LockAlreadyAcquiredError; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAgFA,oBA6CC;AA5HD,2CAAyF;AACzF,mDAAiJ;AACjJ,qDAAqG;AAErG,+CAAmD;AACnD,uCAAsE;AACtE,qCAAkE;AAClE,mDAAqG;AACrG,yCAAoD;AACpD,yCAmBqB;AAlBjB,kHAAA,qBAAqB,OAAA;AACrB,oHAAA,uBAAuB,OAAA;AACvB,qHAAA,wBAAwB,OAAA;AACxB,mHAAA,sBAAsB,OAAA;AAEtB,qGAAA,QAAQ,OAAA;AAIR,6GAAA,gBAAgB,OAAA;AAEhB,wGAAA,WAAW,OAAA;AACX,wHAAA,2BAA2B,OAAA;AAC3B,2GAAA,cAAc,OAAA;AACd,0GAAA,aAAa,OAAA;AAGb,4GAAA,eAAe,OAAA;AAEnB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AAEvB,uDAAuG;AAA9F,oHAAA,gBAAgB,OAAA;AACzB,iDAqByB;AApBrB,0HAAA,yBAAyB,OAAA;AACzB,4HAAA,2BAA2B,OAAA;AAC3B,oIAAA,mCAAmC,OAAA;AACnC,mJAAA,kDAAkD,OAAA;AAClD,kJAAA,iDAAiD,OAAA;AACjD,mIAAA,kCAAkC,OAAA;AAClC,mIAAA,kCAAkC,OAAA;AAClC,wIAAA,uCAAuC,OAAA;AACvC,2HAAA,0BAA0B,OAAA;AAC1B,mHAAA,kBAAkB,OAAA;AAClB,qHAAA,oBAAoB,OAAA;AACpB,iHAAA,gBAAgB,OAAA;AAChB,6GAAA,YAAY,OAAA;AAGZ,mHAAA,kBAAkB,OAAA;AAClB,mHAAA,kBAAkB,OAAA;AAClB,kHAAA,iBAAiB,OAAA;AACjB,yHAAA,wBAAwB,OAAA;AACxB,2GAAA,UAAU,OAAA;AAEd,qDAA8E;AAArE,4HAAA,yBAAyB,OAAA;AAAE,iHAAA,cAAc,OAAA;AAClD,uCAA6G;AAApG,sHAAA,0BAA0B,OAAA;AAAE,oHAAA,wBAAwB,OAAA;AAAE,oGAAA,QAAQ,OAAA;AACvE,qDAA4F;AAAnE,yHAAA,sBAAsB,OAAA;AAAE,kHAAA,eAAe,OAAA;AAEhE,IAAI,UAAU,GAAG,KAAK,CAAC;AAoBhB,KAAK,UAAU,IAAI,CAAC,OAAoB;;IAC3C,IAAI,UAAU,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC5D,CAAC;IACD,UAAU,GAAG,IAAI,CAAC;IAElB,gEAAgE;IAChE,kDAAkD;IAClD,IAAA,0BAAgB,EAAC,OAAO,CAAC,OAAO,IAAI,wBAAc,CAAC,CAAC;IACpD,IAAA,wBAAe,EAAC,OAAO,CAAC,MAAM,IAAI,sBAAa,CAAC,CAAC;IAEjD,0EAA0E;IAC1E,qEAAqE;IACrE,gFAAgF;IAChF,kDAAkD;IAElD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IAE5D,MAAM,IAAA,qBAAe,EAAC,OAAO,CAAC,CAAC;IAE/B,IAAA,qBAAkB,GAAE,CAAC,CAAC,qBAAqB;IAC3C,IAAA,oBAAiB,EAAC,EAAE,iBAAiB,EAAE,MAAA,OAAO,CAAC,iBAAiB,mCAAI,IAAI,EAAE,CAAC,CAAC;IAE5E,IAAI,iBAAoC,CAAC;IACzC,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,OAAO,OAAO,CAAC,iBAAiB,KAAK,QAAQ,EAAE,CAAC;QAC9E,iBAAiB,GAAG,IAAA,6BAAa,EAAC,MAAA,OAAO,CAAC,iBAAiB,mCAAI,oBAAoB,CAAiC,CAAC;IACzH,CAAC;SAAM,CAAC;QACJ,iBAAiB,GAAG,OAAO,CAAC,iBAAiD,CAAC;IAClF,CAAC;IAED,IAAA,gBAAa,GAAE,CAAC;IAEhB,IAAA,gBAAa,EAAC;QACV,YAAY,EAAE,MAAA,OAAO,CAAC,YAAY,mCAAI,IAAI;QAC1C,2BAA2B,EAAE,MAAA,OAAO,CAAC,2BAA2B,mCAAI,EAAE;QACtE,cAAc,EAAE,MAAA,OAAO,CAAC,cAAc,mCAAI,UAAU;QACpD,cAAc,EAAE,MAAA,OAAO,CAAC,cAAc,mCAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;KACzD,CAAC,CAAC;IACH,IAAA,oBAAiB,kCACV,OAAO,KACV,iBAAiB,EAAE,iBAAiB,EACpC,kBAAkB,EAAE,MAAA,OAAO,CAAC,kBAAkB,mCAAI,UAAU,IAC9D,CAAC;IAEH,IAAA,gCAAkB,GAAE,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,12 @@ class ReactiveTaskOps {
18
18
  this.registry = registry;
19
19
  this.onTaskPlanned = onTaskPlanned;
20
20
  }
21
+ setForceDebounce(debounceMs) {
22
+ this._forceDebounceMs = debounceMs;
23
+ }
24
+ get forceDebounceMs() {
25
+ return this._forceDebounceMs;
26
+ }
21
27
  async executePlanningPipeline(collectionName, sourceDocIds, allowedTaskNames) {
22
28
  debug(`executePlanningPipeline called for ${collectionName} with ${sourceDocIds.length} ids`);
23
29
  const entry = this.registry.getEntry(collectionName);
@@ -28,7 +34,7 @@ class ReactiveTaskOps {
28
34
  const matchFilter = { _id: { $in: sourceDocIds } };
29
35
  const pipeline = this.generatePlanningPipeline(entry, matchFilter, allowedTaskNames);
30
36
  if (pipeline.length === 0) {
31
- debug(`Pipeline empty for ${collectionName} (allowedTasks: ${allowedTaskNames ? Array.from(allowedTaskNames).join(',') : 'all'})`);
37
+ debug(`Pipeline empty for ${collectionName}(allowedTasks: ${allowedTaskNames ? Array.from(allowedTaskNames).join(',') : 'all'})`);
32
38
  return;
33
39
  }
34
40
  debug(`Executing pipeline for ${collectionName} handling ${sourceDocIds.length} docs`);
@@ -39,11 +45,13 @@ class ReactiveTaskOps {
39
45
  for (const task of entry.tasks.values()) {
40
46
  if (allowedTaskNames && !allowedTaskNames.has(task.task))
41
47
  continue;
42
- this.onTaskPlanned(task.tasksCollection.collectionName, task.debounceMs);
48
+ // Use effective debounce
49
+ const effectiveDebounce = this.forceDebounceMs !== undefined ? this.forceDebounceMs : task.debounceMs;
50
+ this.onTaskPlanned(task.tasksCollection.collectionName, effectiveDebounce);
43
51
  }
44
52
  }
45
53
  catch (error) {
46
- debug(`Error executing pipeline for ${collectionName}:`, error);
54
+ debug(`Error executing pipeline for ${collectionName}: `, error);
47
55
  throw error;
48
56
  }
49
57
  }
@@ -67,7 +75,7 @@ class ReactiveTaskOps {
67
75
  task: task.task,
68
76
  matches: task.filter || true,
69
77
  watchedValues: (0, compileWatchProjection_1.compileWatchProjection)(task.watchProjection),
70
- debounceMs: task.debounceMs,
78
+ debounceMs: this.forceDebounceMs !== undefined ? this.forceDebounceMs : task.debounceMs,
71
79
  resetRetriesOnDataChange: task.retryStrategy.policy.resetRetriesOnDataChange,
72
80
  })),
73
81
  as: 't',
@@ -1 +1 @@
1
- {"version":3,"file":"ReactiveTaskOps.js","sourceRoot":"","sources":["../../../src/reactiveTasks/ReactiveTaskOps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReactiveTaskOps.js","sourceRoot":"","sources":["../../../src/reactiveTasks/ReactiveTaskOps.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,13 @@ class ReactiveTaskPlanner {
43
43
  this.ops = new ReactiveTaskOps_1.ReactiveTaskOps(registry, callbacks.onTaskPlanned);
44
44
  this.reconciler = new ReactiveTaskReconciler_1.ReactiveTaskReconciler(instanceId, globalsCollection, registry, this.ops, onInfo, internalOptions);
45
45
  }
46
+ updateOptions(options) {
47
+ this.internalOptions = Object.assign(Object.assign({}, this.internalOptions), options);
48
+ // If batch interval changes, we might want to reset timers, but it's fine for now (next batch will pick it up)
49
+ }
50
+ setForceDebounce(debounceMs) {
51
+ this.ops.setForceDebounce(debounceMs);
52
+ }
46
53
  async start() {
47
54
  this.onInfo({
48
55
  message: `Reactive task planner started.`,
@@ -1 +1 @@
1
- {"version":3,"file":"ReactiveTaskPlanner.js","sourceRoot":"","sources":["../../../src/reactiveTasks/ReactiveTaskPlanner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReactiveTaskPlanner.js","sourceRoot":"","sources":["../../../src/reactiveTasks/ReactiveTaskPlanner.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,7 @@ exports.countReactiveTasks = countReactiveTasks;
22
22
  exports.retryReactiveTasks = retryReactiveTasks;
23
23
  const _debug = require("debug");
24
24
  const ConcurrentRunner_1 = require("../ConcurrentRunner");
25
+ const getMongoClient_1 = require("../getMongoClient");
25
26
  const initPromise_1 = require("../initPromise");
26
27
  const parseInterval_1 = require("../parseInterval");
27
28
  const LeaderElector_1 = require("./LeaderElector");
@@ -116,6 +117,48 @@ class ReactiveTaskScheduler {
116
117
  this.registry.setCallbacks(OnInfo_1.onInfo, OnError_1.onError);
117
118
  debug(`[Scheduler ${this.instanceId}] Configured.`);
118
119
  }
120
+ /**
121
+ * Updates internal options (for testing purposes).
122
+ */
123
+ updateInternalOptions(options) {
124
+ this.internalOptions = Object.assign(Object.assign({}, this.internalOptions), options);
125
+ // If runner exists, update its config
126
+ if (this.concurrentRunner) {
127
+ this.concurrentRunner.updateAllSources({
128
+ minPollMs: options.minPollMs,
129
+ maxPollMs: options.maxPollMs,
130
+ jitterMs: options.jitterMs,
131
+ });
132
+ }
133
+ // Planner options (batching) are harder to update dynamically without restart,
134
+ // but batch intervals are read from internalOptions reference by Planner if passed by reference?
135
+ // Actually Planner gets a copy or config object in constructor.
136
+ // Checking Planner constructor: it takes ReactiveTaskPlannerOptions.
137
+ if (this.taskPlanner) {
138
+ this.taskPlanner.updateOptions({
139
+ batchSize: options.batchSize,
140
+ batchIntervalMs: options.batchIntervalMs,
141
+ minBatchIntervalMs: options.minBatchIntervalMs,
142
+ getNextCleanupDate: options.getNextCleanupDate,
143
+ });
144
+ }
145
+ }
146
+ /**
147
+ * Overrides default configuration for tasks.
148
+ * Useful for testing to force low debounce on all tasks.
149
+ */
150
+ overrideDefaults(defaults) {
151
+ if (defaults.debounce !== undefined) {
152
+ this._forceDebounce = defaults.debounce;
153
+ // Force update planner to use this debounce for FUTURE planning
154
+ if (this.taskPlanner) {
155
+ this.taskPlanner.setForceDebounce(defaults.debounce);
156
+ }
157
+ }
158
+ }
159
+ get forceDebounce() {
160
+ return this._forceDebounce;
161
+ }
119
162
  async addTask(taskDef) {
120
163
  if (this.isRunning) {
121
164
  throw new Error('Cannot add task after scheduler has started.');
@@ -139,6 +182,10 @@ class ReactiveTaskScheduler {
139
182
  this.isRunning = true;
140
183
  debug(`[Scheduler ${this.instanceId}] Starting...`);
141
184
  await initPromise_1.initPromise; // Ensure init is complete
185
+ const helloResult = await (0, getMongoClient_1.getMongoClient)().db().command({ hello: 1 });
186
+ if (!helloResult.setName) {
187
+ throw new Error('Reactive tasks can only be started when connected to a MongoDB Replica Set.');
188
+ }
142
189
  await Promise.all(this.registry.getAllTasks().map((task) => task.initPromise));
143
190
  for (const { tasksCollection } of this.registry.getAllEntries()) {
144
191
  if (this.concurrentRunner.hasSource(tasksCollection.collectionName)) {
@@ -177,6 +224,9 @@ class ReactiveTaskScheduler {
177
224
  minBatchIntervalMs: this.internalOptions.minBatchIntervalMs,
178
225
  getNextCleanupDate: this.internalOptions.getNextCleanupDate,
179
226
  }, OnInfo_1.onInfo, OnError_1.onError);
227
+ if (typeof this._forceDebounce === 'number') {
228
+ this.taskPlanner.setForceDebounce(this._forceDebounce);
229
+ }
180
230
  this.leaderElector = new LeaderElector_1.LeaderElector(globalsCollection, this.instanceId, {
181
231
  lockTtlMs: this.internalOptions.lockTtlMs,
182
232
  lockHeartbeatMs: this.internalOptions.lockHeartbeatMs,
@@ -243,6 +293,13 @@ class ReactiveTaskScheduler {
243
293
  getRegistry() {
244
294
  return this.registry;
245
295
  }
296
+ // --- INTERNAL GETTERS FOR TESTING ---
297
+ get concurrentRunnerInstance() {
298
+ return this.concurrentRunner;
299
+ }
300
+ get taskPlannerInstance() {
301
+ return this.taskPlanner;
302
+ }
246
303
  }
247
304
  exports.ReactiveTaskScheduler = ReactiveTaskScheduler;
248
305
  // --- SINGLETON INSTANCE ---
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/reactiveTasks/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/reactiveTasks/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertNoReactiveTaskErrors = assertNoReactiveTaskErrors;
4
+ const reactiveTasks_1 = require("../reactiveTasks");
5
+ /**
6
+ * Asserts that no reactive tasks have failed during the test run.
7
+ * Checks the 'executionHistory' and 'lastError' of tasks in all registered collections.
8
+ */
9
+ async function assertNoReactiveTaskErrors(options) {
10
+ let registry;
11
+ // Fallback or override logic
12
+ const schedulerToUse = options.scheduler || reactiveTasks_1._scheduler;
13
+ registry = schedulerToUse.getRegistry();
14
+ const entries = registry.getAllEntries();
15
+ const errorsFound = [];
16
+ for (const entry of entries) {
17
+ // Build independent query for each collection
18
+ const query = {
19
+ // Optimization: Filter at database level for faster lookup
20
+ $or: [
21
+ { 'executionHistory.status': 'failed', 'executionHistory.at': { $gte: options.since } },
22
+ // Also check lastError if it happened recently (though executionHistory covers history)
23
+ // We rely on executionHistory for the time-based check.
24
+ ],
25
+ };
26
+ if (options.sourceDocIds && options.sourceDocIds.length > 0) {
27
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
28
+ query.sourceDocId = { $in: options.sourceDocIds };
29
+ }
30
+ const tasksWithHistory = await entry.tasksCollection.find(query).toArray();
31
+ for (const taskRecord of tasksWithHistory) {
32
+ if (!taskRecord.executionHistory)
33
+ continue;
34
+ for (const item of taskRecord.executionHistory) {
35
+ // 1. Check Date
36
+ if (item.at < options.since)
37
+ continue;
38
+ // 2. Check Status
39
+ if (item.status !== 'failed')
40
+ continue;
41
+ const errorMessage = item.error || 'Unknown error';
42
+ // 3. Check Whitelist
43
+ let isExcluded = false;
44
+ if (options.excludeErrors) {
45
+ for (const pattern of options.excludeErrors) {
46
+ if (typeof pattern === 'string') {
47
+ if (pattern === errorMessage) {
48
+ isExcluded = true;
49
+ break;
50
+ }
51
+ }
52
+ else if (pattern instanceof RegExp) {
53
+ if (pattern.test(errorMessage)) {
54
+ isExcluded = true;
55
+ break;
56
+ }
57
+ }
58
+ }
59
+ }
60
+ if (!isExcluded) {
61
+ errorsFound.push({
62
+ task: taskRecord.task,
63
+ sourceDocId: taskRecord.sourceDocId,
64
+ error: errorMessage,
65
+ at: item.at,
66
+ });
67
+ }
68
+ }
69
+ }
70
+ }
71
+ if (errorsFound.length > 0) {
72
+ const errorDetails = errorsFound
73
+ .sort((a, b) => a.at.getTime() - b.at.getTime())
74
+ .map((e) => `[${e.at.toISOString()}] Task '${e.task}' (Doc: ${e.sourceDocId}): ${e.error}`)
75
+ .join('\n');
76
+ throw new Error(`Found ${errorsFound.length} unexpected reactive task errors:\n${errorDetails}`);
77
+ }
78
+ }
79
+ //# sourceMappingURL=assertNoReactiveTaskErrors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertNoReactiveTaskErrors.js","sourceRoot":"","sources":["../../../src/testing/assertNoReactiveTaskErrors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.configureForTesting = configureForTesting;
4
+ const reactiveTasks_1 = require("../reactiveTasks");
5
+ /**
6
+ * optimized configuration for testing environments.
7
+ * Reduces all intervals to minimal values (10ms) to make tests run fast.
8
+ *
9
+ * Can be called before or after task registration.
10
+ *
11
+ * @param options Overrides for the default test configuration.
12
+ */
13
+ function configureForTesting(options = {}) {
14
+ const config = Object.assign({ debounce: 10, minPollMs: 10, minBatchIntervalMs: 10 }, options);
15
+ // Update internal scheduler options (affecting polling and batching)
16
+ reactiveTasks_1._scheduler.updateInternalOptions({
17
+ minPollMs: config.minPollMs,
18
+ minBatchIntervalMs: config.minBatchIntervalMs,
19
+ });
20
+ // Override task defaults (affecting debounce)
21
+ reactiveTasks_1._scheduler.overrideDefaults({
22
+ debounce: config.debounce,
23
+ });
24
+ }
25
+ //# sourceMappingURL=configureForTesting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configureForTesting.js","sourceRoot":"","sources":["../../../src/testing/configureForTesting.ts"],"names":[],"mappings":";;AA4BA,kDAkBC;AA9CD,oDAA8C;AAoB9C;;;;;;;GAOG;AACH,SAAgB,mBAAmB,CAAC,UAAsC,EAAE;IACxE,MAAM,MAAM,mBACR,QAAQ,EAAE,EAAE,EACZ,SAAS,EAAE,EAAE,EACb,kBAAkB,EAAE,EAAE,IACnB,OAAO,CACb,CAAC;IAEF,qEAAqE;IACrE,0BAAU,CAAC,qBAAqB,CAAC;QAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;KAChD,CAAC,CAAC;IAEH,8CAA8C;IAC9C,0BAAU,CAAC,gBAAgB,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC5B,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./assertNoReactiveTaskErrors"), exports);
18
+ __exportStar(require("./configureForTesting"), exports);
19
+ __exportStar(require("./waitUntilReactiveTasksIdle"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/testing/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA6C;AAC7C,wDAAsC;AACtC,+DAA6C"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.waitUntil = waitUntil;
4
+ /**
5
+ * Waits until the provided condition function returns true.
6
+ *
7
+ * Includes "Time Jump Detection" to handle debugging sessions:
8
+ * If a significant time gap is detected between checks (likely due to a breakpoint),
9
+ * the timeout deadline is extended by that gap to prevent false timeouts.
10
+ */
11
+ async function waitUntil(condition, options = {}) {
12
+ const { timeoutMs = 10000, pollIntervalMs = 50, stabilityDurationMs = 0 } = options;
13
+ const start = Date.now();
14
+ let deadline = start + timeoutMs;
15
+ let stableSince = Date.now();
16
+ let lastTick = Date.now();
17
+ while (true) {
18
+ const now = Date.now();
19
+ // --- Time Jump Detection (Debug Support) ---
20
+ const elapsedSinceLastTick = now - lastTick;
21
+ // If elapsed time is significantly larger than poll interval (e.g. > 1s),
22
+ // we assume the process was paused (e.g. at a breakpoint).
23
+ if (elapsedSinceLastTick > 1000) {
24
+ const jump = elapsedSinceLastTick - pollIntervalMs; // Approximate jump
25
+ if (jump > 0) {
26
+ deadline += jump;
27
+ }
28
+ }
29
+ lastTick = now;
30
+ // -------------------------------------------
31
+ if (now > deadline) {
32
+ throw new Error(`waitUntil timeout after ${timeoutMs}ms (adjusted for pauses)`);
33
+ }
34
+ let result;
35
+ try {
36
+ result = await condition();
37
+ }
38
+ catch (_a) {
39
+ // error is ignored
40
+ result = false; // Condition failing throws implies not met? Or should we propagate?
41
+ // Usually waitUntil swallows errors unless critical. Let's assume false.
42
+ // But if it's a logic error in condition, maybe we should throw.
43
+ // For now, let's treat throw as false for robustness in shaky tests.
44
+ }
45
+ if (result) {
46
+ if (stabilityDurationMs === 0) {
47
+ return;
48
+ }
49
+ if (now - stableSince >= stabilityDurationMs) {
50
+ return;
51
+ }
52
+ // Condition is true but haven't been stable long enough
53
+ // Continue loop
54
+ }
55
+ else {
56
+ // Condition failed, reset stability timer
57
+ stableSince = now;
58
+ }
59
+ await new Promise((r) => setTimeout(r, pollIntervalMs));
60
+ }
61
+ }
62
+ //# sourceMappingURL=waitUntil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waitUntil.js","sourceRoot":"","sources":["../../../src/testing/waitUntil.ts"],"names":[],"mappings":";;AAyBA,8BAuDC;AA9DD;;;;;;GAMG;AACI,KAAK,UAAU,SAAS,CAAC,SAA2C,EAAE,UAA4B,EAAE;IACvG,MAAM,EAAE,SAAS,GAAG,KAAK,EAAE,cAAc,GAAG,EAAE,EAAE,mBAAmB,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC;IAEpF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,IAAI,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;IACjC,IAAI,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE1B,OAAO,IAAI,EAAE,CAAC;QACV,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,8CAA8C;QAC9C,MAAM,oBAAoB,GAAG,GAAG,GAAG,QAAQ,CAAC;QAC5C,0EAA0E;QAC1E,2DAA2D;QAC3D,IAAI,oBAAoB,GAAG,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,oBAAoB,GAAG,cAAc,CAAC,CAAC,mBAAmB;YACvE,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;gBACX,QAAQ,IAAI,IAAI,CAAC;YACrB,CAAC;QACL,CAAC;QACD,QAAQ,GAAG,GAAG,CAAC;QACf,8CAA8C;QAE9C,IAAI,GAAG,GAAG,QAAQ,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,2BAA2B,SAAS,0BAA0B,CAAC,CAAC;QACpF,CAAC;QAED,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACD,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;QAC/B,CAAC;QAAC,WAAM,CAAC;YACL,mBAAmB;YACnB,MAAM,GAAG,KAAK,CAAC,CAAC,oEAAoE;YACpF,yEAAyE;YACzE,iEAAiE;YACjE,qEAAqE;QACzE,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACT,IAAI,mBAAmB,KAAK,CAAC,EAAE,CAAC;gBAC5B,OAAO;YACX,CAAC;YACD,IAAI,GAAG,GAAG,WAAW,IAAI,mBAAmB,EAAE,CAAC;gBAC3C,OAAO;YACX,CAAC;YACD,wDAAwD;YACxD,gBAAgB;QACpB,CAAC;aAAM,CAAC;YACJ,0CAA0C;YAC1C,WAAW,GAAG,GAAG,CAAC;QACtB,CAAC;QAED,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;IAC5D,CAAC;AACL,CAAC"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.waitUntilReactiveTasksIdle = waitUntilReactiveTasksIdle;
4
+ const reactiveTasks_1 = require("../reactiveTasks");
5
+ const waitUntil_1 = require("./waitUntil");
6
+ /**
7
+ * Waits until the reactive task system is idle.
8
+ * "Idle" means:
9
+ * 1. No changes are buffered in the Planner.
10
+ * 2. No workers are currently executing tasks (active count is 0).
11
+ * 3. No tasks in the database are in a pending or processing state.
12
+ *
13
+ * This enables robust E2E testing by ensuring that all side effects and cascading tasks have finished.
14
+ */
15
+ async function waitUntilReactiveTasksIdle(customOptions = {}) {
16
+ const options = Object.assign({ timeoutMs: 10000, pollIntervalMs: 50, stabilityDurationMs: 200 }, customOptions);
17
+ await (0, waitUntil_1.waitUntil)(async () => {
18
+ // 1. Check Internal Buffers (Planner)
19
+ // Accessing private planner via exposed getter for testing
20
+ const planner = reactiveTasks_1._scheduler.taskPlannerInstance;
21
+ if (planner && !planner.isEmpty) {
22
+ return false;
23
+ }
24
+ // 2. Check Active Workers (Runner)
25
+ const runner = reactiveTasks_1._scheduler.concurrentRunnerInstance;
26
+ if (runner && runner.activeWorkers > 0) {
27
+ return false;
28
+ }
29
+ // 3. Check Database
30
+ const registry = reactiveTasks_1._scheduler.getRegistry();
31
+ const entries = registry.getAllEntries();
32
+ // Optimized check: If any collection has pending work, we are not idle.
33
+ for (const entry of entries) {
34
+ // We count documents that are "active"
35
+ // status IN [pending, processing, processing_dirty]
36
+ // AND dueAt <= Now (approx) - actually, for "settled" we might want to wait for EVERYTHING?
37
+ // Usually we want to wait for anything that is currently actionable.
38
+ // If a task is scheduled for tomorrow, we shouldn't wait for it.
39
+ // However, the user requirement is "guarantees that all reactive tasks that are currently planned... have been completed".
40
+ // "Currently planned" usually implies "executable now".
41
+ // But if we ignore future tasks, we are safe.
42
+ const horizon = Date.now() + (options.timeoutMs || 0) + (options.stabilityDurationMs || 0) + 100;
43
+ // We count documents that are "active"
44
+ // ONE OF:
45
+ // 1. status IN [processing, processing_dirty] (always active)
46
+ // 2. status = pending AND (nextRunAt <= horizon OR nextRunAt IS NULL)
47
+ // (NULL nextRunAt usually means "now" or "asap" in some contexts, or "never",
48
+ // but for pending it usually means "ready").
49
+ const count = await entry.tasksCollection.countDocuments({
50
+ $or: [
51
+ { status: { $in: ['processing', 'processing_dirty'] } },
52
+ {
53
+ status: 'pending',
54
+ $or: [{ nextRunAt: { $lte: new Date(horizon) } }, { nextRunAt: null }],
55
+ },
56
+ ],
57
+ });
58
+ if (count > 0) {
59
+ return false;
60
+ }
61
+ }
62
+ return true;
63
+ }, options);
64
+ }
65
+ //# sourceMappingURL=waitUntilReactiveTasksIdle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waitUntilReactiveTasksIdle.js","sourceRoot":"","sources":["../../../src/testing/waitUntilReactiveTasksIdle.ts"],"names":[],"mappings":";;AAYA,gEAgEC;AA5ED,oDAAkE;AAClE,2CAA0D;AAE1D;;;;;;;;GAQG;AACI,KAAK,UAAU,0BAA0B,CAAC,gBAA2C,EAAE;IAC1F,MAAM,OAAO,mBACT,SAAS,EAAE,KAAK,EAChB,cAAc,EAAE,EAAE,EAClB,mBAAmB,EAAE,GAAG,IACrB,aAAa,CACnB,CAAC;IAEF,MAAM,IAAA,qBAAS,EAAC,KAAK,IAAI,EAAE;QACvB,sCAAsC;QACtC,2DAA2D;QAC3D,MAAM,OAAO,GAAG,0BAAU,CAAC,mBAAmB,CAAC;QAC/C,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,mCAAmC;QACnC,MAAM,MAAM,GAAG,0BAAU,CAAC,wBAAwB,CAAC;QACnD,IAAI,MAAM,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;YACrC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,oBAAoB;QACpB,MAAM,QAAQ,GAAG,0BAAU,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;QAEzC,wEAAwE;QACxE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC1B,uCAAuC;YACvC,oDAAoD;YACpD,4FAA4F;YAC5F,qEAAqE;YACrE,iEAAiE;YAEjE,2HAA2H;YAC3H,wDAAwD;YACxD,8CAA8C;YAE9C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,mBAAmB,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;YAEjG,uCAAuC;YACvC,UAAU;YACV,8DAA8D;YAC9D,sEAAsE;YACtE,iFAAiF;YACjF,iDAAiD;YAEjD,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,cAAc,CAAC;gBACrD,GAAG,EAAE;oBACD,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE,kBAAkB,CAAyB,EAAE,EAAE;oBAC/E;wBACI,MAAM,EAAE,SAAS;wBACjB,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;qBACzE;iBACJ;aACJ,CAAC,CAAC;YAEH,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACZ,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC,EAAE,OAAO,CAAC,CAAC;AAChB,CAAC"}
@@ -16,15 +16,18 @@ export declare class ConcurrentRunner {
16
16
  private workers;
17
17
  private wakeUpSignals;
18
18
  private tryRunATask;
19
+ private _activeWorkerCount;
19
20
  constructor(options: ConcurrentRunnerOptions, onError?: OnError);
20
21
  registerSource(name: string, options: SourceOptions): void;
21
22
  hasSource(name: string): boolean;
22
23
  start(tryRunATask: TryRunATaskCallback): void;
23
24
  stop(): Promise<void>;
24
25
  speedUp(sourceName: string): void;
26
+ updateAllSources(options: Partial<SourceOptions>): void;
25
27
  private runWorker;
26
28
  private prolongNextRun;
27
29
  private sleep;
28
30
  private wakeUpOneWorker;
29
31
  private wakeUpAllWorkers;
32
+ get activeWorkers(): number;
30
33
  }
@@ -12,6 +12,7 @@ export { OnError } from './OnError';
12
12
  export { processInBatches, ProcessInBatchesOptions, ProcessInBatchesResult } from './processInBatches';
13
13
  export { CODE_REACTIVE_TASK_FAILED, CODE_REACTIVE_TASK_FINISHED, CODE_REACTIVE_TASK_LEADER_LOCK_LOST, CODE_REACTIVE_TASK_PLANNER_RECONCILIATION_FINISHED, CODE_REACTIVE_TASK_PLANNER_RECONCILIATION_STARTED, CODE_REACTIVE_TASK_PLANNER_STARTED, CODE_REACTIVE_TASK_PLANNER_STOPPED, CODE_REACTIVE_TASK_PLANNER_STREAM_ERROR, CODE_REACTIVE_TASK_STARTED, countReactiveTasks, getPrometheusMetrics, getReactiveTasks, reactiveTask, ReactiveTask, ReactiveTaskHandler, retryReactiveTasks, startReactiveTasks, stopReactiveTasks, TaskConditionFailedError, _scheduler, } from './reactiveTasks';
14
14
  export { OperationalTaskController, serveDashboard } from './task-management';
15
+ export * from './testing';
15
16
  export { isLockAlreadyAcquiredError, LockAlreadyAcquiredError, withLock, WithLockOptions } from './withLock';
16
17
  export { PostCommitHook, registerPostCommitHook, withTransaction } from './withTransaction';
17
18
  type PackageOptions = {
@@ -12,6 +12,9 @@ export declare class ReactiveTaskOps {
12
12
  private registry;
13
13
  private onTaskPlanned;
14
14
  constructor(registry: ReactiveTaskRegistry, onTaskPlanned: (tasksCollectionName: string, debounceMs: number) => void);
15
+ private _forceDebounceMs?;
16
+ setForceDebounce(debounceMs: number | undefined): void;
17
+ get forceDebounceMs(): number | undefined;
15
18
  executePlanningPipeline(collectionName: string, sourceDocIds: unknown[], allowedTaskNames?: Set<string>): Promise<void>;
16
19
  private generatePlanningPipeline;
17
20
  }
@@ -41,6 +41,8 @@ export declare class ReactiveTaskPlanner {
41
41
  minBatchIntervalMs: number;
42
42
  getNextCleanupDate: (date?: Date) => Date;
43
43
  }, onInfo?: OnInfo, onError?: OnError);
44
+ updateOptions(options: Partial<typeof this.internalOptions>): void;
45
+ setForceDebounce(debounceMs: number | undefined): void;
44
46
  start(): Promise<void>;
45
47
  stop(): Promise<void>;
46
48
  private getIsStoppedTester;
@@ -1,7 +1,9 @@
1
1
  import { Document } from 'mongodb';
2
2
  import type { Registry } from 'prom-client';
3
+ import { ConcurrentRunner } from '../ConcurrentRunner';
3
4
  import { GlobalsCollection } from '../globalsCollection';
4
5
  import { ReactiveTaskManager } from './ReactiveTaskManager';
6
+ import { ReactiveTaskPlanner } from './ReactiveTaskPlanner';
5
7
  import { ReactiveTaskRegistry } from './ReactiveTaskRegistry';
6
8
  import { PagedResult, PaginationOptions, ReactiveTask, ReactiveTaskQuery, ReactiveTaskRecord, ReactiveTaskSchedulerOptions } from './ReactiveTaskTypes';
7
9
  export { CODE_REACTIVE_TASK_CLEANUP, CODE_REACTIVE_TASK_FAILED, CODE_REACTIVE_TASK_FINISHED, CODE_REACTIVE_TASK_INITIALIZED, CODE_REACTIVE_TASK_LEADER_LOCK_LOST, CODE_REACTIVE_TASK_PLANNER_RECONCILIATION_FINISHED, CODE_REACTIVE_TASK_PLANNER_RECONCILIATION_STARTED, CODE_REACTIVE_TASK_PLANNER_STARTED, CODE_REACTIVE_TASK_PLANNER_STOPPED, CODE_REACTIVE_TASK_PLANNER_STREAM_ERROR, CODE_REACTIVE_TASK_STARTED, PagedResult, PaginationOptions, ReactiveTask, ReactiveTaskCaller, ReactiveTaskFilter, ReactiveTaskHandler, ReactiveTaskQuery, ReactiveTaskRecord, ReactiveTaskSchedulerOptions, ReactiveTaskStatus, REACTIVE_TASK_META_DOC_ID, TaskConditionFailedError, } from './ReactiveTaskTypes';
@@ -39,6 +41,19 @@ export declare class ReactiveTaskScheduler {
39
41
  */
40
42
  private get instanceId();
41
43
  configure(options: Partial<ReactiveTaskSchedulerOptions>): void;
44
+ /**
45
+ * Updates internal options (for testing purposes).
46
+ */
47
+ updateInternalOptions(options: Partial<typeof this.internalOptions>): void;
48
+ private _forceDebounce?;
49
+ /**
50
+ * Overrides default configuration for tasks.
51
+ * Useful for testing to force low debounce on all tasks.
52
+ */
53
+ overrideDefaults(defaults: {
54
+ debounce?: number;
55
+ }): void;
56
+ get forceDebounce(): number | string | undefined;
42
57
  addTask(taskDef: ReactiveTask<Document>): Promise<void>;
43
58
  /**
44
59
  * Starts the entire system - leader election and workers.
@@ -51,6 +66,8 @@ export declare class ReactiveTaskScheduler {
51
66
  getPrometheusMetrics(): Promise<Registry | null>;
52
67
  getTaskManager(): ReactiveTaskManager;
53
68
  getRegistry(): ReactiveTaskRegistry;
69
+ get concurrentRunnerInstance(): ConcurrentRunner | undefined;
70
+ get taskPlannerInstance(): ReactiveTaskPlanner | undefined;
54
71
  }
55
72
  declare const scheduler: ReactiveTaskScheduler;
56
73
  export declare function init(initOptions: InitOptions): void;
@@ -0,0 +1,30 @@
1
+ import { ReactiveTaskScheduler } from '../reactiveTasks';
2
+ export interface AssertNoReactiveTaskErrorsOptions {
3
+ /**
4
+ * Check for errors occurring after this time.
5
+ * Essential to isolate the current test run.
6
+ */
7
+ since: Date;
8
+ /**
9
+ * Optional: Check only tasks related to these specific source documents.
10
+ * Useful when other tests might be generating noise in the background.
11
+ * Supports generic ID types (ObjectId, string, number).
12
+ */
13
+ sourceDocIds?: unknown[];
14
+ /**
15
+ * Optional: Whitelist specific errors.
16
+ * If a string is provided, exact match is required.
17
+ * If a RegExp is provided, it must test true against the error message.
18
+ */
19
+ excludeErrors?: (string | RegExp)[];
20
+ /**
21
+ * Optional: ReactiveTaskScheduler instance to use.
22
+ * Essential for isolated testing where multiple schedulers might exist.
23
+ */
24
+ scheduler?: ReactiveTaskScheduler;
25
+ }
26
+ /**
27
+ * Asserts that no reactive tasks have failed during the test run.
28
+ * Checks the 'executionHistory' and 'lastError' of tasks in all registered collections.
29
+ */
30
+ export declare function assertNoReactiveTaskErrors(options: AssertNoReactiveTaskErrorsOptions): Promise<void>;
@@ -0,0 +1,26 @@
1
+ export interface ConfigureForTestingOptions {
2
+ /**
3
+ * Sets the debounce time for all tasks (new and existing).
4
+ * Default: 10ms
5
+ */
6
+ debounce?: number;
7
+ /**
8
+ * Sets the minimum polling interval for source collections.
9
+ * Default: 10ms
10
+ */
11
+ minPollMs?: number;
12
+ /**
13
+ * Sets the minimum batch processing interval options.
14
+ * Default: 10ms
15
+ */
16
+ minBatchIntervalMs?: number;
17
+ }
18
+ /**
19
+ * optimized configuration for testing environments.
20
+ * Reduces all intervals to minimal values (10ms) to make tests run fast.
21
+ *
22
+ * Can be called before or after task registration.
23
+ *
24
+ * @param options Overrides for the default test configuration.
25
+ */
26
+ export declare function configureForTesting(options?: ConfigureForTestingOptions): void;
@@ -0,0 +1,3 @@
1
+ export * from './assertNoReactiveTaskErrors';
2
+ export * from './configureForTesting';
3
+ export * from './waitUntilReactiveTasksIdle';
@@ -0,0 +1,25 @@
1
+ export interface WaitUntilOptions {
2
+ /**
3
+ * Maximum time to wait for the condition to become true.
4
+ * Default: 10000ms
5
+ */
6
+ timeoutMs?: number;
7
+ /**
8
+ * Interval between checks.
9
+ * Default: 50ms
10
+ */
11
+ pollIntervalMs?: number;
12
+ /**
13
+ * How long the condition must remain true to be considered stable.
14
+ * Default: 0 (no stability check)
15
+ */
16
+ stabilityDurationMs?: number;
17
+ }
18
+ /**
19
+ * Waits until the provided condition function returns true.
20
+ *
21
+ * Includes "Time Jump Detection" to handle debugging sessions:
22
+ * If a significant time gap is detected between checks (likely due to a breakpoint),
23
+ * the timeout deadline is extended by that gap to prevent false timeouts.
24
+ */
25
+ export declare function waitUntil(condition: () => boolean | Promise<boolean>, options?: WaitUntilOptions): Promise<void>;
@@ -0,0 +1,11 @@
1
+ import { WaitUntilOptions } from './waitUntil';
2
+ /**
3
+ * Waits until the reactive task system is idle.
4
+ * "Idle" means:
5
+ * 1. No changes are buffered in the Planner.
6
+ * 2. No workers are currently executing tasks (active count is 0).
7
+ * 3. No tasks in the database are in a pending or processing state.
8
+ *
9
+ * This enables robust E2E testing by ensuring that all side effects and cascading tasks have finished.
10
+ */
11
+ export declare function waitUntilReactiveTasksIdle(customOptions?: Partial<WaitUntilOptions>): Promise<void>;
package/docs/index.md CHANGED
@@ -29,4 +29,7 @@ features:
29
29
  - title: Transactions
30
30
  details: Simplified transaction management with automatic session handling.
31
31
  link: /with-transaction
32
+ - title: Testing Utilities
33
+ details: Helpers for robust E2E testing of asynchronous and reactive flows.
34
+ link: /testing
32
35
  ---
@@ -294,3 +294,11 @@ process.on('SIGINT', () => gracefulShutdown('SIGINT')); // Ctrl+C
294
294
 
295
295
  > [!NOTE]
296
296
  > **Self-Healing Design**: While graceful shutdown is recommended best practice, the system is designed to be resilient. If your application crashes or is forcefully terminated, task locks will automatically expire after a timeout (default: 1 minute), allowing other instances to pick up and process the unfinished tasks. Similarly, leadership locks expire, ensuring another instance takes over. This guarantees eventual task processing even in failure scenarios.
297
+
298
+ ## Testing
299
+
300
+ Testing asynchronous, event-driven workflows can be challenging. Mongodash provides dedicated test utilities to make this easier.
301
+
302
+ Use \`waitUntilReactiveTasksIdle\` to robustly wait for all side-effects (including retries and cascading tasks) to finish before making assertions.
303
+
304
+ See **[Testing Utilities](../testing.md)** for detailed usage and examples.
@@ -15,6 +15,7 @@ Reactive Tasks allow you to define background jobs that trigger automatically wh
15
15
  - **[Concurrency Control](./configuration.md)**: Limit parallel execution to protect downstream resources.
16
16
  - **[Deduplication](./guides.md#idempotency--re-execution)**: Automatic debouncing ("wait for data to settle") and task merging.
17
17
  - **[Observability](./monitoring.md)**: First-class Prometheus metrics support.
18
+ - **[Testing Support](../testing.md)**: Built-in utilities (`waitUntilReactiveTasksIdle`) to ensure your reactive flows are robust and error-free.
18
19
  - **[Dashboard](../dashboard.md)**: A visual Dashboard to monitor, retry, and debug tasks.
19
20
  - **Developer Friendly**: Zero-config local development, fully typed with TypeScript.
20
21
 
@@ -0,0 +1,123 @@
1
+ # Testing Utilities
2
+
3
+ Mongodash provides a set of utilities to help you write robust End-to-End (E2E) tests for your asynchronous applications.
4
+
5
+ ## `waitUntilReactiveTasksIdle`
6
+
7
+ A specialized helper for testing **Reactive Tasks**. It blocks execution until the reactive task system is completely quiesced.
8
+
9
+ This is essential for testing "side effects" and "cascading tasks" where you want to assert the final state of the system after a chain of events has completed.
10
+
11
+ ### What it waits for
12
+
13
+ It resolves only when **ALL** of the following validation checks pass simultaneously (or for the `stabilityDurationMs`):
14
+
15
+ 1. **Planner Empty**: The internal `ReactiveTaskPlanner` has no buffered Change Stream events waiting to be flushed.
16
+ 2. **Workers Idle**: No `ResponsiveTaskWorker` is currently processing a task (active count is 0).
17
+ 3. **Database Settled**: No tasks in any registered task collection are in `pending`, `processing`, or `processing_dirty` state.
18
+ * **Exception**: Pending tasks scheduled for the **distant future** (beyond the current timeout + stability window) are ignored. This ensures that long-term retries (e.g., "retry in 1 hour") do not cause your tests to timeout.
19
+
20
+ ### Usage
21
+
22
+ ```typescript
23
+ import { waitUntilReactiveTasksIdle } from 'mongodash/testing';
24
+
25
+ it('should process user registration workflow', async () => {
26
+ // 1. Trigger the workflow
27
+ await users.insertOne({ email: 'test@example.com', status: 'new' });
28
+
29
+ // 2. Wait for the reactive task to process ONLY the insert
30
+ // AND any subsequent tasks that might be triggered (e.g. sending email)
31
+ await waitUntilReactiveTasksIdle();
32
+
33
+ // 3. Assert the final state
34
+ const emailTask = await emailTasks.findOne({ email: 'test@example.com' });
35
+ expect(emailTask).toBeDefined();
36
+ expect(emailTask.status).toBe('sent');
37
+ });
38
+ ```
39
+
40
+ ### Configuration
41
+
42
+ You can override the default options if needed, though the defaults are tuned for general use.
43
+
44
+ ```typescript
45
+ await waitUntilReactiveTasksIdle({
46
+ timeoutMs: 30000,
47
+ stabilityDurationMs: 200, // Wait for 200ms of "silence" to catch in-flight cascading tasks
48
+ });
49
+ ```
50
+
51
+ ## `assertNoReactiveTaskErrors`
52
+
53
+ Ensures that no reactive tasks have failed during your test execution. This is critical for catching "silent failures" where a task failed but didn't crash the application or the test.
54
+
55
+ ### Features
56
+
57
+ - **Time filtering**: Only checks for errors that occurred after a specific time (e.g., the start of your test).
58
+ - **Scope**: Can check globally or for specific source documents.
59
+ - **Filtering**: Allows ignoring "expected" errors (e.g., negative tests).
60
+
61
+ ### Usage
62
+
63
+ ```typescript
64
+ import { assertNoReactiveTaskErrors } from 'mongodash/testing';
65
+
66
+ it('should process successfully', async () => {
67
+ const startTime = new Date();
68
+
69
+ // ... run test steps ...
70
+ await waitUntilReactiveTasksIdle();
71
+
72
+ // Verify no tasks failed
73
+ await assertNoReactiveTaskErrors({ since: startTime });
74
+ });
75
+ ```
76
+
77
+ ### Options
78
+
79
+ ```typescript
80
+ await assertNoReactiveTaskErrors({
81
+ since: startTime, // Required: Check for errors after this time
82
+ sourceDocIds: [docId], // Optional: Limit check to specific source documents
83
+ excludeErrors: [ // Optional: Allow known errors (strings or RegEx)
84
+ 'Expected Failure',
85
+ /Authorization Error/
86
+ ]
87
+ });
88
+ ```
89
+
90
+ ## `configureForTesting`
91
+
92
+ A helper to configure the library for fast, deterministic testing execution.
93
+
94
+ By default, the library is optimized for production scenarios (e.g. `debounce: 1000ms`, `minPollMs: 200ms`). In tests, these delays cause unnecessary slowness.
95
+
96
+ `configureForTesting` overrides these defaults globally to minimal values (e.g. `10ms`).
97
+
98
+ ### Usage
99
+
100
+ Call this **once** in your global test setup (e.g. `jest.setup.js` or `beforeAll`).
101
+
102
+ It works regardless of whether you call it before or after registering your tasks.
103
+
104
+ ```typescript
105
+ import { configureForTesting } from 'mongodash/testing';
106
+
107
+ beforeAll(() => {
108
+ // Sets debounce, polling, and batching to 10ms
109
+ configureForTesting();
110
+ });
111
+ ```
112
+
113
+ ### Options
114
+
115
+ You can customize specific values if needed:
116
+
117
+ ```typescript
118
+ configureForTesting({
119
+ debounce: 0, // Force 0ms debounce (immediate execution)
120
+ minPollMs: 50, // Poll every 50ms
121
+ minBatchIntervalMs: 50
122
+ });
123
+ ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mongodash",
3
- "version": "2.4.6",
3
+ "version": "2.5.0",
4
4
  "type": "commonjs",
5
5
  "description": "An utility library delivering super-useful and super-simple tools using MongoDB",
6
6
  "main": "./dist/lib/index.js",