@volontariapp/post-processors 1.0.0-snap-856af13 → 1.0.0-snap-fb20f49

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 (194) hide show
  1. package/dist/constants/config.default.d.ts +27 -0
  2. package/dist/constants/config.default.d.ts.map +1 -0
  3. package/dist/constants/config.default.js +29 -0
  4. package/dist/constants/config.default.js.map +1 -0
  5. package/dist/constants/index.d.ts +2 -0
  6. package/dist/constants/index.d.ts.map +1 -0
  7. package/dist/constants/index.js +2 -0
  8. package/dist/constants/index.js.map +1 -0
  9. package/dist/core/helpers/index.d.ts +3 -0
  10. package/dist/core/helpers/index.d.ts.map +1 -0
  11. package/dist/core/helpers/index.js +3 -0
  12. package/dist/core/helpers/index.js.map +1 -0
  13. package/dist/core/{redis-stream.helper.d.ts → helpers/redis-stream.helper.d.ts} +2 -2
  14. package/dist/core/helpers/redis-stream.helper.d.ts.map +1 -0
  15. package/dist/core/helpers/redis-stream.helper.js.map +1 -0
  16. package/dist/core/helpers/retry.helper.d.ts +24 -0
  17. package/dist/core/helpers/retry.helper.d.ts.map +1 -0
  18. package/dist/core/helpers/retry.helper.js +104 -0
  19. package/dist/core/helpers/retry.helper.js.map +1 -0
  20. package/dist/core/index.d.ts +7 -4
  21. package/dist/core/index.d.ts.map +1 -1
  22. package/dist/core/index.js +7 -4
  23. package/dist/core/index.js.map +1 -1
  24. package/dist/core/processors/base.post-processor.d.ts +46 -0
  25. package/dist/core/processors/base.post-processor.d.ts.map +1 -0
  26. package/dist/core/processors/base.post-processor.js +422 -0
  27. package/dist/core/processors/base.post-processor.js.map +1 -0
  28. package/dist/core/{batch.post-processor.d.ts → processors/batch.post-processor.d.ts} +3 -2
  29. package/dist/core/processors/batch.post-processor.d.ts.map +1 -0
  30. package/dist/core/{batch.post-processor.js → processors/batch.post-processor.js} +56 -5
  31. package/dist/core/processors/batch.post-processor.js.map +1 -0
  32. package/dist/core/processors/index.d.ts +4 -0
  33. package/dist/core/processors/index.d.ts.map +1 -0
  34. package/dist/core/processors/index.js +4 -0
  35. package/dist/core/processors/index.js.map +1 -0
  36. package/dist/core/{single.post-processor.d.ts → processors/single.post-processor.d.ts} +3 -1
  37. package/dist/core/processors/single.post-processor.d.ts.map +1 -0
  38. package/dist/core/processors/single.post-processor.js +120 -0
  39. package/dist/core/processors/single.post-processor.js.map +1 -0
  40. package/dist/core/validators/circuit-breaker.d.ts +27 -0
  41. package/dist/core/validators/circuit-breaker.d.ts.map +1 -0
  42. package/dist/core/validators/circuit-breaker.js +83 -0
  43. package/dist/core/validators/circuit-breaker.js.map +1 -0
  44. package/dist/core/validators/index.d.ts +2 -0
  45. package/dist/core/validators/index.d.ts.map +1 -0
  46. package/dist/core/validators/index.js +2 -0
  47. package/dist/core/validators/index.js.map +1 -0
  48. package/dist/core/validators/options-validator.d.ts +5 -0
  49. package/dist/core/validators/options-validator.d.ts.map +1 -0
  50. package/dist/core/validators/options-validator.js +90 -0
  51. package/dist/core/validators/options-validator.js.map +1 -0
  52. package/dist/enums/circuit-breaker-state.enum.d.ts +6 -0
  53. package/dist/enums/circuit-breaker-state.enum.d.ts.map +1 -0
  54. package/dist/enums/circuit-breaker-state.enum.js +7 -0
  55. package/dist/enums/circuit-breaker-state.enum.js.map +1 -0
  56. package/dist/enums/index.d.ts +2 -0
  57. package/dist/enums/index.d.ts.map +1 -0
  58. package/dist/enums/index.js +2 -0
  59. package/dist/enums/index.js.map +1 -0
  60. package/dist/index.d.ts +2 -0
  61. package/dist/index.d.ts.map +1 -1
  62. package/dist/index.js +2 -0
  63. package/dist/index.js.map +1 -1
  64. package/dist/interfaces/index.d.ts +7 -3
  65. package/dist/interfaces/index.d.ts.map +1 -1
  66. package/dist/interfaces/{batch-event-item.interface.d.ts → processors/batch-event-item.interface.d.ts} +1 -1
  67. package/dist/interfaces/processors/batch-event-item.interface.d.ts.map +1 -0
  68. package/dist/interfaces/processors/batch-event-item.interface.js.map +1 -0
  69. package/dist/interfaces/processors/normalized-post-processor-options.interface.d.ts +6 -0
  70. package/dist/interfaces/processors/normalized-post-processor-options.interface.d.ts.map +1 -0
  71. package/dist/interfaces/processors/normalized-post-processor-options.interface.js +2 -0
  72. package/dist/interfaces/processors/normalized-post-processor-options.interface.js.map +1 -0
  73. package/dist/interfaces/processors/pending-message-info.interface.d.ts.map +1 -0
  74. package/dist/interfaces/processors/pending-message-info.interface.js.map +1 -0
  75. package/dist/interfaces/processors/post-processor-options.interface.d.ts +21 -0
  76. package/dist/interfaces/processors/post-processor-options.interface.d.ts.map +1 -0
  77. package/dist/interfaces/processors/post-processor-options.interface.js.map +1 -0
  78. package/dist/interfaces/retry/retry-metadata.interface.d.ts +6 -0
  79. package/dist/interfaces/retry/retry-metadata.interface.d.ts.map +1 -0
  80. package/dist/interfaces/retry/retry-metadata.interface.js +2 -0
  81. package/dist/interfaces/retry/retry-metadata.interface.js.map +1 -0
  82. package/dist/interfaces/retry/retry-options.interface.d.ts +8 -0
  83. package/dist/interfaces/retry/retry-options.interface.d.ts.map +1 -0
  84. package/dist/interfaces/retry/retry-options.interface.js +2 -0
  85. package/dist/interfaces/retry/retry-options.interface.js.map +1 -0
  86. package/dist/interfaces/validators/circuit-breaker-config.interface.d.ts +6 -0
  87. package/dist/interfaces/validators/circuit-breaker-config.interface.d.ts.map +1 -0
  88. package/dist/interfaces/validators/circuit-breaker-config.interface.js +2 -0
  89. package/dist/interfaces/validators/circuit-breaker-config.interface.js.map +1 -0
  90. package/dist/test/data-source.d.ts.map +1 -0
  91. package/dist/test/data-source.js.map +1 -0
  92. package/dist/test/migrations/1776783577425-CreateJobsOutbox.d.ts.map +1 -0
  93. package/dist/test/migrations/1776783577425-CreateJobsOutbox.js.map +1 -0
  94. package/dist/test/migrations/1778328780881-InitialSchemaJobAudit.d.ts.map +1 -0
  95. package/dist/test/migrations/1778328780881-InitialSchemaJobAudit.js.map +1 -0
  96. package/dist/test/specs/batch-post-processor/batch-post-processor.int.spec.js +92 -4
  97. package/dist/test/specs/batch-post-processor/batch-post-processor.int.spec.js.map +1 -1
  98. package/dist/test/specs/batch-post-processor/batch-post-processor.unit.spec.js +174 -7
  99. package/dist/test/specs/batch-post-processor/batch-post-processor.unit.spec.js.map +1 -1
  100. package/dist/test/specs/helpers/redis-stream-helper.int.spec.d.ts +2 -0
  101. package/dist/test/specs/helpers/redis-stream-helper.int.spec.d.ts.map +1 -0
  102. package/dist/test/specs/helpers/redis-stream-helper.int.spec.js +56 -0
  103. package/dist/test/specs/helpers/redis-stream-helper.int.spec.js.map +1 -0
  104. package/dist/test/specs/helpers/redis-stream-helper.unit.spec.d.ts +2 -0
  105. package/dist/test/specs/helpers/redis-stream-helper.unit.spec.d.ts.map +1 -0
  106. package/dist/test/specs/helpers/redis-stream-helper.unit.spec.js +102 -0
  107. package/dist/test/specs/helpers/redis-stream-helper.unit.spec.js.map +1 -0
  108. package/dist/test/specs/helpers/retry-helper.int.spec.d.ts +2 -0
  109. package/dist/test/specs/helpers/retry-helper.int.spec.d.ts.map +1 -0
  110. package/dist/test/specs/helpers/retry-helper.int.spec.js +101 -0
  111. package/dist/test/specs/helpers/retry-helper.int.spec.js.map +1 -0
  112. package/dist/test/specs/helpers/retry-helper.unit.spec.d.ts +2 -0
  113. package/dist/test/specs/helpers/retry-helper.unit.spec.d.ts.map +1 -0
  114. package/dist/test/specs/helpers/retry-helper.unit.spec.js +202 -0
  115. package/dist/test/specs/helpers/retry-helper.unit.spec.js.map +1 -0
  116. package/dist/test/specs/integration/circuit-breaker.integration.spec.d.ts +2 -0
  117. package/dist/test/specs/integration/circuit-breaker.integration.spec.d.ts.map +1 -0
  118. package/dist/test/specs/integration/circuit-breaker.integration.spec.js +112 -0
  119. package/dist/test/specs/integration/circuit-breaker.integration.spec.js.map +1 -0
  120. package/dist/test/specs/single-post-processor/single-post-processor-retry.int.spec.d.ts +2 -0
  121. package/dist/test/specs/single-post-processor/single-post-processor-retry.int.spec.d.ts.map +1 -0
  122. package/dist/test/specs/single-post-processor/single-post-processor-retry.int.spec.js +142 -0
  123. package/dist/test/specs/single-post-processor/single-post-processor-retry.int.spec.js.map +1 -0
  124. package/dist/test/specs/single-post-processor/single-post-processor.int.spec.js +49 -7
  125. package/dist/test/specs/single-post-processor/single-post-processor.int.spec.js.map +1 -1
  126. package/dist/test/specs/single-post-processor/single-post-processor.unit.spec.js +110 -22
  127. package/dist/test/specs/single-post-processor/single-post-processor.unit.spec.js.map +1 -1
  128. package/dist/test/specs/validators/options-validator.unit.spec.d.ts +2 -0
  129. package/dist/test/specs/validators/options-validator.unit.spec.d.ts.map +1 -0
  130. package/dist/test/specs/validators/options-validator.unit.spec.js +290 -0
  131. package/dist/test/specs/validators/options-validator.unit.spec.js.map +1 -0
  132. package/dist/test/utils/classes/test-batch-post-processor.class.d.ts +2 -1
  133. package/dist/test/utils/classes/test-batch-post-processor.class.d.ts.map +1 -1
  134. package/dist/test/utils/classes/test-batch-post-processor.class.js +4 -1
  135. package/dist/test/utils/classes/test-batch-post-processor.class.js.map +1 -1
  136. package/dist/test/utils/classes/test-post-processor.class.d.ts +2 -1
  137. package/dist/test/utils/classes/test-post-processor.class.d.ts.map +1 -1
  138. package/dist/test/utils/classes/test-post-processor.class.js +4 -1
  139. package/dist/test/utils/classes/test-post-processor.class.js.map +1 -1
  140. package/dist/test/utils/helpers/wait.helper.d.ts +2 -0
  141. package/dist/test/utils/helpers/wait.helper.d.ts.map +1 -0
  142. package/dist/test/utils/helpers/wait.helper.js +11 -0
  143. package/dist/test/utils/helpers/wait.helper.js.map +1 -0
  144. package/dist/test/utils/index.d.ts +1 -0
  145. package/dist/test/utils/index.d.ts.map +1 -1
  146. package/dist/test/utils/index.js +1 -0
  147. package/dist/test/utils/index.js.map +1 -1
  148. package/dist/test/utils/mocks/redis-call.mock.d.ts.map +1 -1
  149. package/dist/test/utils/mocks/redis-call.mock.js +9 -0
  150. package/dist/test/utils/mocks/redis-call.mock.js.map +1 -1
  151. package/dist/types/index.d.ts +1 -0
  152. package/dist/types/index.d.ts.map +1 -1
  153. package/dist/types/index.js +1 -1
  154. package/dist/types/index.js.map +1 -1
  155. package/dist/types/parse-event.types.d.ts +13 -0
  156. package/dist/types/parse-event.types.d.ts.map +1 -0
  157. package/dist/types/parse-event.types.js +2 -0
  158. package/dist/types/parse-event.types.js.map +1 -0
  159. package/package.json +1 -1
  160. package/dist/core/base.post-processor.d.ts +0 -27
  161. package/dist/core/base.post-processor.d.ts.map +0 -1
  162. package/dist/core/base.post-processor.js +0 -206
  163. package/dist/core/base.post-processor.js.map +0 -1
  164. package/dist/core/batch.post-processor.d.ts.map +0 -1
  165. package/dist/core/batch.post-processor.js.map +0 -1
  166. package/dist/core/redis-stream.helper.d.ts.map +0 -1
  167. package/dist/core/redis-stream.helper.js.map +0 -1
  168. package/dist/core/single.post-processor.d.ts.map +0 -1
  169. package/dist/core/single.post-processor.js +0 -58
  170. package/dist/core/single.post-processor.js.map +0 -1
  171. package/dist/data-source.d.ts.map +0 -1
  172. package/dist/data-source.js.map +0 -1
  173. package/dist/interfaces/batch-event-item.interface.d.ts.map +0 -1
  174. package/dist/interfaces/batch-event-item.interface.js.map +0 -1
  175. package/dist/interfaces/pending-message-info.interface.d.ts.map +0 -1
  176. package/dist/interfaces/pending-message-info.interface.js.map +0 -1
  177. package/dist/interfaces/post-processor-options.interface.d.ts +0 -11
  178. package/dist/interfaces/post-processor-options.interface.d.ts.map +0 -1
  179. package/dist/interfaces/post-processor-options.interface.js.map +0 -1
  180. package/dist/migrations/1776783577425-CreateJobsOutbox.d.ts.map +0 -1
  181. package/dist/migrations/1776783577425-CreateJobsOutbox.js.map +0 -1
  182. package/dist/migrations/1778328780881-InitialSchemaJobAudit.d.ts.map +0 -1
  183. package/dist/migrations/1778328780881-InitialSchemaJobAudit.js.map +0 -1
  184. /package/dist/core/{redis-stream.helper.js → helpers/redis-stream.helper.js} +0 -0
  185. /package/dist/interfaces/{batch-event-item.interface.js → processors/batch-event-item.interface.js} +0 -0
  186. /package/dist/interfaces/{pending-message-info.interface.d.ts → processors/pending-message-info.interface.d.ts} +0 -0
  187. /package/dist/interfaces/{pending-message-info.interface.js → processors/pending-message-info.interface.js} +0 -0
  188. /package/dist/interfaces/{post-processor-options.interface.js → processors/post-processor-options.interface.js} +0 -0
  189. /package/dist/{data-source.d.ts → test/data-source.d.ts} +0 -0
  190. /package/dist/{data-source.js → test/data-source.js} +0 -0
  191. /package/dist/{migrations → test/migrations}/1776783577425-CreateJobsOutbox.d.ts +0 -0
  192. /package/dist/{migrations → test/migrations}/1776783577425-CreateJobsOutbox.js +0 -0
  193. /package/dist/{migrations → test/migrations}/1778328780881-InitialSchemaJobAudit.d.ts +0 -0
  194. /package/dist/{migrations → test/migrations}/1778328780881-InitialSchemaJobAudit.js +0 -0
@@ -1,7 +1,8 @@
1
1
  import { describe, it, expect, beforeEach, afterEach, beforeAll, afterAll } from '@jest/globals';
2
2
  import { Redis } from 'ioredis';
3
3
  import { testRedisOptions } from '../../redis-config.js';
4
- import { TestPostProcessor, makeTestEvent, pushTestEventToStream, TestMessagingStream, TestMessagingGroup, TestMessagingConsumer, } from '../../utils/index.js';
4
+ import { CircuitBreakerState } from '../../../enums/circuit-breaker-state.enum.js';
5
+ import { TestPostProcessor, makeTestEvent, pushTestEventToStream, TestMessagingStream, TestMessagingGroup, TestMessagingConsumer, waitFor, } from '../../utils/index.js';
5
6
  describe('SinglePostProcessor — Integration', () => {
6
7
  let redis;
7
8
  let processor;
@@ -17,9 +18,21 @@ describe('SinglePostProcessor — Integration', () => {
17
18
  streamName: TestMessagingStream.TEST_STREAM,
18
19
  groupName: TestMessagingGroup.TEST_GROUP,
19
20
  consumerName: TestMessagingConsumer.TEST_CONSUMER,
20
- claimIntervalMs: 500,
21
- claimMinIdleTimeMs: 100,
21
+ claimIntervalMs: 200,
22
+ claimMinIdleTimeMs: 50,
22
23
  blockMs: 50,
24
+ circuitBreaker: {
25
+ failureThreshold: 3,
26
+ resetTimeoutMs: 1000,
27
+ successThreshold: 1,
28
+ },
29
+ retry: {
30
+ maxRetries: 2,
31
+ initialDelayMs: 100,
32
+ maxDelayMs: 500,
33
+ backoffMultiplier: 2,
34
+ enableDlq: true,
35
+ },
23
36
  });
24
37
  });
25
38
  afterEach(async () => {
@@ -29,7 +42,7 @@ describe('SinglePostProcessor — Integration', () => {
29
42
  const eventPayload = makeTestEvent('evt-int-1');
30
43
  await pushTestEventToStream(redis, TestMessagingStream.TEST_STREAM, 'evt-int-1', eventPayload);
31
44
  await processor.start();
32
- await new Promise((resolve) => setTimeout(resolve, 200));
45
+ await new Promise((resolve) => setTimeout(resolve, 300));
33
46
  expect(processor.processedEvents).toHaveLength(1);
34
47
  expect(processor.processedEvents[0]?.id).toBe('evt-int-1');
35
48
  const pendingInfo = (await redis.call('XPENDING', TestMessagingStream.TEST_STREAM, TestMessagingGroup.TEST_GROUP));
@@ -41,7 +54,7 @@ describe('SinglePostProcessor — Integration', () => {
41
54
  await pushTestEventToStream(redis, TestMessagingStream.TEST_STREAM, 'evt-int-fail', eventPayload);
42
55
  processor.processError = new Error('Integration processing error');
43
56
  await processor.start();
44
- await new Promise((resolve) => setTimeout(resolve, 200));
57
+ await new Promise((resolve) => setTimeout(resolve, 300));
45
58
  expect(processor.processedEvents).toHaveLength(0);
46
59
  const pendingInfo = (await redis.call('XPENDING', TestMessagingStream.TEST_STREAM, TestMessagingGroup.TEST_GROUP));
47
60
  const pendingCount = Number(pendingInfo[0]);
@@ -68,7 +81,7 @@ describe('SinglePostProcessor — Integration', () => {
68
81
  const idempotencyKey = `idempotency:post-processor:${TestMessagingGroup.TEST_GROUP}:${messageId}`;
69
82
  await redis.set(idempotencyKey, 'processing');
70
83
  await processor.start();
71
- await new Promise((resolve) => setTimeout(resolve, 200));
84
+ await new Promise((resolve) => setTimeout(resolve, 300));
72
85
  expect(processor.processedEvents).toHaveLength(0);
73
86
  const pendingInfo = (await redis.call('XPENDING', TestMessagingStream.TEST_STREAM, TestMessagingGroup.TEST_GROUP));
74
87
  const pendingCount = Number(pendingInfo[0]);
@@ -79,11 +92,40 @@ describe('SinglePostProcessor — Integration', () => {
79
92
  const messageId = await pushTestEventToStream(redis, TestMessagingStream.TEST_STREAM, 'evt-int-idempotence-fail', eventPayload);
80
93
  processor.processError = new Error('Integration processing error');
81
94
  await processor.start();
82
- await new Promise((resolve) => setTimeout(resolve, 200));
95
+ await new Promise((resolve) => setTimeout(resolve, 300));
83
96
  expect(processor.processedEvents).toHaveLength(0);
84
97
  const idempotencyKey = `idempotency:post-processor:${TestMessagingGroup.TEST_GROUP}:${messageId}`;
85
98
  const lockVal = await redis.get(idempotencyKey);
86
99
  expect(lockVal).toBeNull();
87
100
  });
101
+ it('should transition Circuit Breaker to OPEN on consecutive failures', async () => {
102
+ const eventPayload1 = makeTestEvent('evt-cb-1');
103
+ const eventPayload2 = makeTestEvent('evt-cb-2');
104
+ const eventPayload3 = makeTestEvent('evt-cb-3');
105
+ await pushTestEventToStream(redis, TestMessagingStream.TEST_STREAM, 'evt-cb-1', eventPayload1);
106
+ await pushTestEventToStream(redis, TestMessagingStream.TEST_STREAM, 'evt-cb-2', eventPayload2);
107
+ await pushTestEventToStream(redis, TestMessagingStream.TEST_STREAM, 'evt-cb-3', eventPayload3);
108
+ processor.processError = new Error('Database connection failed');
109
+ await processor.start();
110
+ await new Promise((resolve) => setTimeout(resolve, 400));
111
+ const diag = processor.getCircuitBreaker().getDiagnostics();
112
+ expect(diag.state).toBe(CircuitBreakerState.OPEN);
113
+ expect(diag.failureCount).toBeGreaterThanOrEqual(3);
114
+ });
115
+ it('should successfully retry and recover after a transient error', async () => {
116
+ const eventPayload = makeTestEvent('evt-retry-recover');
117
+ const messageId = await pushTestEventToStream(redis, TestMessagingStream.TEST_STREAM, 'evt-retry-recover', eventPayload);
118
+ processor.processError = new Error('Simulated transient error');
119
+ await processor.start();
120
+ const retryKey = `retry:post-processor:${TestMessagingGroup.TEST_GROUP}:${messageId}:attempt`;
121
+ await waitFor(async () => {
122
+ const attempt = await redis.get(retryKey);
123
+ return Number(attempt) === 1;
124
+ });
125
+ expect(processor.processedEvents).toHaveLength(0);
126
+ processor.processError = null;
127
+ await waitFor(() => processor.processedEvents.length === 1, 3000);
128
+ expect(processor.processedEvents[0]?.id).toBe('evt-retry-recover');
129
+ });
88
130
  });
89
131
  //# sourceMappingURL=single-post-processor.int.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"single-post-processor.int.spec.js","sourceRoot":"","sources":["../../../../src/test/specs/single-post-processor/single-post-processor.int.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"single-post-processor.int.spec.js","sourceRoot":"","sources":["../../../../src/test/specs/single-post-processor/single-post-processor.int.spec.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  import { describe, it, expect, beforeEach, afterEach, jest } from '@jest/globals';
2
2
  import { EventMessagingType } from '@volontariapp/messaging';
3
3
  import { createMock } from '@volontariapp/testing';
4
- import { TestPostProcessor, makeTestEvent, TestMessagingStream, TestMessagingGroup, TestMessagingConsumer, TestEventId, mockRedisCall, mockRedisXreadgroup, } from '../../utils/index.js';
5
- describe('SinglePostProcessor', () => {
4
+ import { CircuitBreakerState } from '../../../enums/circuit-breaker-state.enum.js';
5
+ import { TestPostProcessor, makeTestEvent, TestMessagingStream, TestMessagingGroup, TestMessagingConsumer, TestEventId, mockRedisCall, mockRedisXreadgroup, formatEventsToXreadgroupResponse, } from '../../utils/index.js';
6
+ describe('SinglePostProcessor — Unit', () => {
6
7
  let redisMock;
7
8
  let processor;
8
9
  let callMock;
@@ -16,6 +17,11 @@ describe('SinglePostProcessor', () => {
16
17
  consumerName: TestMessagingConsumer.TEST_CONSUMER,
17
18
  claimIntervalMs: 50,
18
19
  claimMinIdleTimeMs: 100,
20
+ circuitBreaker: {
21
+ failureThreshold: 3,
22
+ resetTimeoutMs: 1000,
23
+ successThreshold: 1,
24
+ },
19
25
  });
20
26
  });
21
27
  afterEach(async () => {
@@ -24,7 +30,16 @@ describe('SinglePostProcessor', () => {
24
30
  describe('start/stop', () => {
25
31
  it('should ensure consumer group on start', async () => {
26
32
  await processor.start();
27
- expect(callMock).toHaveBeenCalledWith('XGROUP', 'CREATE', TestMessagingStream.TEST_STREAM, TestMessagingGroup.TEST_GROUP, '0', 'MKSTREAM');
33
+ const xgroupCalls = callMock.mock.calls.filter((c) => c[0] === 'XGROUP');
34
+ expect(xgroupCalls).toHaveLength(1);
35
+ expect(xgroupCalls[0]).toEqual([
36
+ 'XGROUP',
37
+ 'CREATE',
38
+ TestMessagingStream.TEST_STREAM,
39
+ TestMessagingGroup.TEST_GROUP,
40
+ '0',
41
+ 'MKSTREAM',
42
+ ]);
28
43
  });
29
44
  it('should ignore BUSYGROUP error', async () => {
30
45
  callMock.mockImplementation(async (command, ..._args) => {
@@ -54,7 +69,7 @@ describe('SinglePostProcessor', () => {
54
69
  await expect(processor.start()).rejects.toThrow(error);
55
70
  });
56
71
  });
57
- describe('runLoop', () => {
72
+ describe('runLoop & processing', () => {
58
73
  it('should read pending messages and then new messages', async () => {
59
74
  const mockEvent = makeTestEvent(TestEventId.DEFAULT);
60
75
  mockRedisXreadgroup(callMock, TestMessagingStream.TEST_STREAM, [
@@ -64,12 +79,23 @@ describe('SinglePostProcessor', () => {
64
79
  const shouldProcessSpy = jest.spyOn(processor, 'shouldProcess');
65
80
  const acknowledgeSpy = jest.spyOn(processor, 'acknowledge');
66
81
  await processor.start();
67
- await new Promise((resolve) => setTimeout(resolve, 50));
82
+ await new Promise((resolve) => setTimeout(resolve, 60));
68
83
  expect(processSpy).toHaveBeenCalledTimes(1);
69
- expect(processSpy).toHaveBeenCalledWith(expect.objectContaining({ id: TestEventId.DEFAULT }), TestEventId.MSG_PENDING);
70
84
  expect(shouldProcessSpy).toHaveBeenCalledWith(EventMessagingType.EVENT_CHANGED);
71
85
  expect(acknowledgeSpy).toHaveBeenCalledWith(TestEventId.MSG_PENDING);
72
- expect(callMock).toHaveBeenCalledWith('XREADGROUP', 'GROUP', TestMessagingGroup.TEST_GROUP, TestMessagingConsumer.TEST_CONSUMER, 'COUNT', 10, 'STREAMS', TestMessagingStream.TEST_STREAM, '0');
86
+ const xreadgroupCalls = callMock.mock.calls.filter((c) => c[0] === 'XREADGROUP');
87
+ expect(xreadgroupCalls.length).toBeGreaterThanOrEqual(1);
88
+ expect(xreadgroupCalls[0]).toEqual([
89
+ 'XREADGROUP',
90
+ 'GROUP',
91
+ TestMessagingGroup.TEST_GROUP,
92
+ TestMessagingConsumer.TEST_CONSUMER,
93
+ 'COUNT',
94
+ 10,
95
+ 'STREAMS',
96
+ TestMessagingStream.TEST_STREAM,
97
+ '0',
98
+ ]);
73
99
  });
74
100
  it('should not acknowledge if processEvent throws', async () => {
75
101
  const mockEvent = makeTestEvent(TestEventId.DEFAULT);
@@ -77,13 +103,11 @@ describe('SinglePostProcessor', () => {
77
103
  { messageId: TestEventId.MSG_PENDING, event: mockEvent },
78
104
  ]);
79
105
  const processSpy = jest.spyOn(processor, 'processEvent');
80
- const shouldProcessSpy = jest.spyOn(processor, 'shouldProcess');
81
106
  const acknowledgeSpy = jest.spyOn(processor, 'acknowledge');
82
107
  processor.processError = new Error('Process failed');
83
108
  await processor.start();
84
- await new Promise((resolve) => setTimeout(resolve, 50));
109
+ await new Promise((resolve) => setTimeout(resolve, 60));
85
110
  expect(processSpy).toHaveBeenCalledTimes(1);
86
- expect(shouldProcessSpy).toHaveBeenCalledWith(EventMessagingType.EVENT_CHANGED);
87
111
  expect(acknowledgeSpy).not.toHaveBeenCalled();
88
112
  });
89
113
  it('should skip messages with unregistered types', async () => {
@@ -100,31 +124,95 @@ describe('SinglePostProcessor', () => {
100
124
  const acknowledgeSpy = jest.spyOn(processor, 'acknowledge');
101
125
  processor.shouldProcessVal = false;
102
126
  await processor.start();
103
- await new Promise((resolve) => setTimeout(resolve, 50));
127
+ await new Promise((resolve) => setTimeout(resolve, 60));
104
128
  expect(processSpy).not.toHaveBeenCalled();
105
129
  expect(shouldProcessSpy).toHaveBeenCalledWith('unregistered.type');
106
130
  expect(acknowledgeSpy).toHaveBeenCalledWith(TestEventId.MSG_PENDING);
107
131
  });
108
132
  });
109
- describe('claim loop', () => {
110
- it('should scan and claim long-idle pending messages from other consumers', async () => {
133
+ describe('Idempotence Locks', () => {
134
+ it('should acquire lock and skip if already processing (concurrent safety)', async () => {
135
+ const mockEvent = makeTestEvent(TestEventId.DEFAULT);
136
+ let xreadCount = 0;
111
137
  callMock.mockImplementation(async (command, ..._args) => {
112
- if (command === 'XPENDING') {
113
- return [
114
- [TestEventId.MSG_CLAIMABLE, 'other-consumer', 150, 2],
115
- [TestEventId.MSG_OWN_PENDING, TestMessagingConsumer.TEST_CONSUMER, 200, 1],
116
- ];
138
+ if (command === 'XGROUP')
139
+ return 'OK';
140
+ if (command === 'XREADGROUP') {
141
+ xreadCount++;
142
+ if (xreadCount === 1) {
143
+ return formatEventsToXreadgroupResponse(TestMessagingStream.TEST_STREAM, [
144
+ { messageId: TestEventId.MSG_PENDING, event: mockEvent },
145
+ ]);
146
+ }
147
+ await new Promise((resolve) => setTimeout(resolve, 50));
148
+ return [];
117
149
  }
150
+ if (command === 'SET') {
151
+ return null;
152
+ }
153
+ if (command === 'XACK') {
154
+ return 1;
155
+ }
156
+ return [];
157
+ });
158
+ const processSpy = jest.spyOn(processor, 'processEvent');
159
+ const acknowledgeSpy = jest.spyOn(processor, 'acknowledge');
160
+ await processor.start();
161
+ await new Promise((resolve) => setTimeout(resolve, 60));
162
+ expect(processSpy).not.toHaveBeenCalled();
163
+ expect(acknowledgeSpy).toHaveBeenCalledWith(TestEventId.MSG_PENDING);
164
+ });
165
+ });
166
+ describe('Circuit Breaker Integration', () => {
167
+ it('should transition to OPEN state on consecutive failures and halt message processing', async () => {
168
+ const mockEvent = makeTestEvent(TestEventId.DEFAULT);
169
+ let xreadgroupCount = 0;
170
+ callMock.mockImplementation(async (command, ..._args) => {
171
+ if (command === 'XGROUP')
172
+ return 'OK';
118
173
  if (command === 'XREADGROUP') {
174
+ xreadgroupCount++;
175
+ if (xreadgroupCount <= 3) {
176
+ return formatEventsToXreadgroupResponse(TestMessagingStream.TEST_STREAM, [
177
+ { messageId: TestEventId.MSG_PENDING, event: mockEvent },
178
+ ]);
179
+ }
119
180
  await new Promise((resolve) => setTimeout(resolve, 50));
181
+ return [];
120
182
  }
183
+ if (command === 'SET')
184
+ return 'OK';
121
185
  return [];
122
186
  });
187
+ processor.processError = new Error('Database down');
188
+ const processSpy = jest.spyOn(processor, 'processEvent');
189
+ await processor.start();
190
+ await new Promise((resolve) => setTimeout(resolve, 300));
191
+ const diag = processor.getCircuitBreaker().getDiagnostics();
192
+ expect(diag.state).toBe(CircuitBreakerState.OPEN);
193
+ expect(diag.failureCount).toBeGreaterThanOrEqual(3);
194
+ const callsBefore = processSpy.mock.calls.length;
195
+ await new Promise((resolve) => setTimeout(resolve, 100));
196
+ const callsAfter = processSpy.mock.calls.length;
197
+ expect(callsAfter).toBe(callsBefore);
198
+ });
199
+ });
200
+ describe('Retry and DLQ Fallback', () => {
201
+ it('should schedule for retry when processEvent throws a transient error', async () => {
202
+ const mockEvent = makeTestEvent(TestEventId.DEFAULT);
203
+ mockRedisXreadgroup(callMock, TestMessagingStream.TEST_STREAM, [
204
+ { messageId: TestEventId.MSG_PENDING, event: mockEvent },
205
+ ]);
206
+ const zaddSpy = jest.spyOn(redisMock, 'zadd');
207
+ const incrSpy = jest.spyOn(redisMock, 'incr');
208
+ processor.processError = new Error('Transient error');
123
209
  await processor.start();
124
- await new Promise((resolve) => setTimeout(resolve, 80));
125
- expect(callMock).toHaveBeenCalledWith('XPENDING', TestMessagingStream.TEST_STREAM, TestMessagingGroup.TEST_GROUP, '-', '+', 10);
126
- expect(callMock).toHaveBeenCalledWith('XCLAIM', TestMessagingStream.TEST_STREAM, TestMessagingGroup.TEST_GROUP, TestMessagingConsumer.TEST_CONSUMER, '100', TestEventId.MSG_CLAIMABLE, 'JUSTID');
127
- expect(callMock).not.toHaveBeenCalledWith('XCLAIM', TestMessagingStream.TEST_STREAM, TestMessagingGroup.TEST_GROUP, TestMessagingConsumer.TEST_CONSUMER, '100', TestEventId.MSG_OWN_PENDING, 'JUSTID');
210
+ await new Promise((resolve) => setTimeout(resolve, 60));
211
+ expect(incrSpy.mock.calls.length).toBeGreaterThanOrEqual(1);
212
+ expect(incrSpy.mock.calls[0]?.[0]).toBe(`retry:post-processor:${TestMessagingGroup.TEST_GROUP}:${TestEventId.MSG_PENDING}:attempt`);
213
+ expect(zaddSpy.mock.calls.length).toBeGreaterThanOrEqual(1);
214
+ expect(zaddSpy.mock.calls[0]?.[0]).toBe(`retry-queue:post-processor:${TestMessagingGroup.TEST_GROUP}`);
215
+ expect(zaddSpy.mock.calls[0]?.[2]).toBe(TestEventId.MSG_PENDING);
128
216
  });
129
217
  });
130
218
  });
@@ -1 +1 @@
1
- {"version":3,"file":"single-post-processor.unit.spec.js","sourceRoot":"","sources":["../../../../src/test/specs/single-post-processor/single-post-processor.unit.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"single-post-processor.unit.spec.js","sourceRoot":"","sources":["../../../../src/test/specs/single-post-processor/single-post-processor.unit.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=options-validator.unit.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options-validator.unit.spec.d.ts","sourceRoot":"","sources":["../../../../src/test/specs/validators/options-validator.unit.spec.ts"],"names":[],"mappings":""}