pp-command-bus 1.5.0 → 2.0.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 (193) hide show
  1. package/README.md +400 -1219
  2. package/dist/command-bus/command-bus.spec.js +138 -359
  3. package/dist/command-bus/command-bus.spec.js.map +1 -1
  4. package/dist/command-bus/command.d.ts +3 -4
  5. package/dist/command-bus/command.js +3 -32
  6. package/dist/command-bus/command.js.map +1 -1
  7. package/dist/command-bus/config/command-bus-config.d.ts +75 -21
  8. package/dist/command-bus/config/command-bus-config.js +99 -58
  9. package/dist/command-bus/config/command-bus-config.js.map +1 -1
  10. package/dist/command-bus/config/command-bus-config.spec.js +174 -100
  11. package/dist/command-bus/config/command-bus-config.spec.js.map +1 -1
  12. package/dist/command-bus/index.d.ts +39 -52
  13. package/dist/command-bus/index.js +133 -126
  14. package/dist/command-bus/index.js.map +1 -1
  15. package/dist/command-bus/logging/command-logger.d.ts +2 -0
  16. package/dist/command-bus/logging/command-logger.js +7 -0
  17. package/dist/command-bus/logging/command-logger.js.map +1 -1
  18. package/dist/command-bus/logging/command-logger.spec.js +36 -0
  19. package/dist/command-bus/logging/command-logger.spec.js.map +1 -1
  20. package/dist/command-bus/serialization/index.d.ts +6 -0
  21. package/dist/command-bus/serialization/index.js +9 -0
  22. package/dist/command-bus/serialization/index.js.map +1 -0
  23. package/dist/command-bus/serialization/msgpack-serializer.d.ts +26 -0
  24. package/dist/command-bus/serialization/msgpack-serializer.js +70 -0
  25. package/dist/command-bus/serialization/msgpack-serializer.js.map +1 -0
  26. package/dist/command-bus/serialization/msgpack-serializer.spec.js +223 -0
  27. package/dist/command-bus/serialization/msgpack-serializer.spec.js.map +1 -0
  28. package/dist/command-bus/serialization/serializer.interface.d.ts +21 -0
  29. package/dist/command-bus/serialization/serializer.interface.js +3 -0
  30. package/dist/command-bus/serialization/serializer.interface.js.map +1 -0
  31. package/dist/command-bus/transport/consumer-loop.d.ts +45 -0
  32. package/dist/command-bus/transport/consumer-loop.js +90 -0
  33. package/dist/command-bus/transport/consumer-loop.js.map +1 -0
  34. package/dist/command-bus/transport/consumer-loop.spec.js +216 -0
  35. package/dist/command-bus/transport/consumer-loop.spec.js.map +1 -0
  36. package/dist/command-bus/transport/index.d.ts +21 -0
  37. package/dist/command-bus/transport/index.js +23 -0
  38. package/dist/command-bus/transport/index.js.map +1 -0
  39. package/dist/command-bus/transport/message-processor.d.ts +59 -0
  40. package/dist/command-bus/transport/message-processor.js +111 -0
  41. package/dist/command-bus/transport/message-processor.js.map +1 -0
  42. package/dist/command-bus/transport/message-processor.spec.js +185 -0
  43. package/dist/command-bus/transport/message-processor.spec.js.map +1 -0
  44. package/dist/command-bus/transport/pending-recovery.d.ts +54 -0
  45. package/dist/command-bus/transport/pending-recovery.js +139 -0
  46. package/dist/command-bus/transport/pending-recovery.js.map +1 -0
  47. package/dist/command-bus/transport/pending-recovery.spec.js +176 -0
  48. package/dist/command-bus/transport/pending-recovery.spec.js.map +1 -0
  49. package/dist/command-bus/transport/redis-codec.d.ts +24 -0
  50. package/dist/command-bus/transport/redis-codec.js +33 -0
  51. package/dist/command-bus/transport/redis-codec.js.map +1 -0
  52. package/dist/command-bus/transport/redis-codec.spec.js +53 -0
  53. package/dist/command-bus/transport/redis-codec.spec.js.map +1 -0
  54. package/dist/command-bus/transport/redis-streams-transport.d.ts +91 -0
  55. package/dist/command-bus/transport/redis-streams-transport.js +134 -0
  56. package/dist/command-bus/transport/redis-streams-transport.js.map +1 -0
  57. package/dist/command-bus/transport/redis-streams-transport.spec.js +420 -0
  58. package/dist/command-bus/transport/redis-streams-transport.spec.js.map +1 -0
  59. package/dist/command-bus/transport/rpc-handler.d.ts +39 -0
  60. package/dist/command-bus/transport/rpc-handler.js +87 -0
  61. package/dist/command-bus/transport/rpc-handler.js.map +1 -0
  62. package/dist/command-bus/transport/rpc-handler.spec.js +157 -0
  63. package/dist/command-bus/transport/rpc-handler.spec.js.map +1 -0
  64. package/dist/command-bus/transport/stream-consumer.d.ts +89 -0
  65. package/dist/command-bus/transport/stream-consumer.js +181 -0
  66. package/dist/command-bus/transport/stream-consumer.js.map +1 -0
  67. package/dist/command-bus/transport/stream-consumer.spec.js +284 -0
  68. package/dist/command-bus/transport/stream-consumer.spec.js.map +1 -0
  69. package/dist/command-bus/transport/stream-producer.d.ts +23 -0
  70. package/dist/command-bus/transport/stream-producer.js +70 -0
  71. package/dist/command-bus/transport/stream-producer.js.map +1 -0
  72. package/dist/command-bus/transport/stream-producer.spec.js +125 -0
  73. package/dist/command-bus/transport/stream-producer.spec.js.map +1 -0
  74. package/dist/command-bus/transport/transport.interface.d.ts +87 -0
  75. package/dist/command-bus/transport/transport.interface.js +3 -0
  76. package/dist/command-bus/transport/transport.interface.js.map +1 -0
  77. package/dist/command-bus/types/index.d.ts +0 -84
  78. package/dist/examples/rpc.demo.js +1 -1
  79. package/dist/examples/rpc.demo.js.map +1 -1
  80. package/dist/index.d.ts +8 -5
  81. package/dist/index.js +6 -4
  82. package/dist/index.js.map +1 -1
  83. package/dist/pp-command-bus-2.0.0.tgz +0 -0
  84. package/dist/shared/redis/connection-pool.d.ts +54 -0
  85. package/dist/shared/redis/connection-pool.js +117 -0
  86. package/dist/shared/redis/connection-pool.js.map +1 -0
  87. package/dist/shared/redis/connection-pool.spec.js +114 -0
  88. package/dist/shared/redis/connection-pool.spec.js.map +1 -0
  89. package/dist/shared/redis/index.d.ts +5 -3
  90. package/dist/shared/redis/index.js +6 -4
  91. package/dist/shared/redis/index.js.map +1 -1
  92. package/dist/shared/redis/rpc-connection-pool.d.ts +61 -0
  93. package/dist/shared/redis/rpc-connection-pool.js +154 -0
  94. package/dist/shared/redis/rpc-connection-pool.js.map +1 -0
  95. package/dist/shared/redis/rpc-connection-pool.spec.d.ts +1 -0
  96. package/dist/shared/redis/rpc-connection-pool.spec.js +173 -0
  97. package/dist/shared/redis/rpc-connection-pool.spec.js.map +1 -0
  98. package/dist/shared/types.d.ts +0 -4
  99. package/dist/shared/utils/error-utils.d.ts +8 -0
  100. package/dist/shared/utils/error-utils.js +14 -0
  101. package/dist/shared/utils/error-utils.js.map +1 -0
  102. package/package.json +12 -12
  103. package/dist/command-bus/config/auto-config-optimizer.d.ts +0 -35
  104. package/dist/command-bus/config/auto-config-optimizer.js +0 -52
  105. package/dist/command-bus/config/auto-config-optimizer.js.map +0 -1
  106. package/dist/command-bus/config/auto-config-optimizer.spec.js +0 -42
  107. package/dist/command-bus/config/auto-config-optimizer.spec.js.map +0 -1
  108. package/dist/command-bus/job/index.d.ts +0 -6
  109. package/dist/command-bus/job/index.js +0 -15
  110. package/dist/command-bus/job/index.js.map +0 -1
  111. package/dist/command-bus/job/job-options-builder.d.ts +0 -21
  112. package/dist/command-bus/job/job-options-builder.js +0 -58
  113. package/dist/command-bus/job/job-options-builder.js.map +0 -1
  114. package/dist/command-bus/job/job-options-builder.spec.js +0 -156
  115. package/dist/command-bus/job/job-options-builder.spec.js.map +0 -1
  116. package/dist/command-bus/job/job-processor.d.ts +0 -39
  117. package/dist/command-bus/job/job-processor.js +0 -203
  118. package/dist/command-bus/job/job-processor.js.map +0 -1
  119. package/dist/command-bus/job/job-processor.spec.js +0 -436
  120. package/dist/command-bus/job/job-processor.spec.js.map +0 -1
  121. package/dist/command-bus/queue/index.d.ts +0 -5
  122. package/dist/command-bus/queue/index.js +0 -13
  123. package/dist/command-bus/queue/index.js.map +0 -1
  124. package/dist/command-bus/queue/queue-manager.d.ts +0 -56
  125. package/dist/command-bus/queue/queue-manager.js +0 -163
  126. package/dist/command-bus/queue/queue-manager.js.map +0 -1
  127. package/dist/command-bus/queue/queue-manager.spec.js +0 -371
  128. package/dist/command-bus/queue/queue-manager.spec.js.map +0 -1
  129. package/dist/command-bus/rpc/index.d.ts +0 -11
  130. package/dist/command-bus/rpc/index.js +0 -19
  131. package/dist/command-bus/rpc/index.js.map +0 -1
  132. package/dist/command-bus/rpc/payload-compression.service.d.ts +0 -50
  133. package/dist/command-bus/rpc/payload-compression.service.js +0 -215
  134. package/dist/command-bus/rpc/payload-compression.service.js.map +0 -1
  135. package/dist/command-bus/rpc/payload-compression.service.spec.js +0 -376
  136. package/dist/command-bus/rpc/payload-compression.service.spec.js.map +0 -1
  137. package/dist/command-bus/rpc/rpc-coordinator.d.ts +0 -96
  138. package/dist/command-bus/rpc/rpc-coordinator.js +0 -500
  139. package/dist/command-bus/rpc/rpc-coordinator.js.map +0 -1
  140. package/dist/command-bus/rpc/rpc-coordinator.spec.js +0 -621
  141. package/dist/command-bus/rpc/rpc-coordinator.spec.js.map +0 -1
  142. package/dist/command-bus/rpc/rpc-job-cancellation.service.d.ts +0 -82
  143. package/dist/command-bus/rpc/rpc-job-cancellation.service.js +0 -180
  144. package/dist/command-bus/rpc/rpc-job-cancellation.service.js.map +0 -1
  145. package/dist/command-bus/rpc/rpc-job-cancellation.service.spec.js +0 -286
  146. package/dist/command-bus/rpc/rpc-job-cancellation.service.spec.js.map +0 -1
  147. package/dist/command-bus/worker/index.d.ts +0 -10
  148. package/dist/command-bus/worker/index.js +0 -19
  149. package/dist/command-bus/worker/index.js.map +0 -1
  150. package/dist/command-bus/worker/worker-benchmark.d.ts +0 -71
  151. package/dist/command-bus/worker/worker-benchmark.js +0 -202
  152. package/dist/command-bus/worker/worker-benchmark.js.map +0 -1
  153. package/dist/command-bus/worker/worker-benchmark.spec.js +0 -310
  154. package/dist/command-bus/worker/worker-benchmark.spec.js.map +0 -1
  155. package/dist/command-bus/worker/worker-metrics-collector.d.ts +0 -98
  156. package/dist/command-bus/worker/worker-metrics-collector.js +0 -242
  157. package/dist/command-bus/worker/worker-metrics-collector.js.map +0 -1
  158. package/dist/command-bus/worker/worker-orchestrator.d.ts +0 -70
  159. package/dist/command-bus/worker/worker-orchestrator.js +0 -339
  160. package/dist/command-bus/worker/worker-orchestrator.js.map +0 -1
  161. package/dist/command-bus/worker/worker-orchestrator.spec.js +0 -712
  162. package/dist/command-bus/worker/worker-orchestrator.spec.js.map +0 -1
  163. package/dist/examples/auto-config.demo.d.ts +0 -9
  164. package/dist/examples/auto-config.demo.js +0 -106
  165. package/dist/examples/auto-config.demo.js.map +0 -1
  166. package/dist/examples/rpc-compression.demo.d.ts +0 -5
  167. package/dist/examples/rpc-compression.demo.js +0 -358
  168. package/dist/examples/rpc-compression.demo.js.map +0 -1
  169. package/dist/examples/rpc-resilience.demo.d.ts +0 -15
  170. package/dist/examples/rpc-resilience.demo.js +0 -233
  171. package/dist/examples/rpc-resilience.demo.js.map +0 -1
  172. package/dist/pp-command-bus-1.5.0.tgz +0 -0
  173. package/dist/shared/config/base-config.d.ts +0 -54
  174. package/dist/shared/config/base-config.js +0 -114
  175. package/dist/shared/config/base-config.js.map +0 -1
  176. package/dist/shared/config/base-config.spec.js +0 -204
  177. package/dist/shared/config/base-config.spec.js.map +0 -1
  178. package/dist/shared/config/index.d.ts +0 -1
  179. package/dist/shared/config/index.js +0 -9
  180. package/dist/shared/config/index.js.map +0 -1
  181. package/dist/shared/redis/redis-connection-factory.d.ts +0 -66
  182. package/dist/shared/redis/redis-connection-factory.js +0 -113
  183. package/dist/shared/redis/redis-connection-factory.js.map +0 -1
  184. /package/dist/command-bus/{config/auto-config-optimizer.spec.d.ts → serialization/msgpack-serializer.spec.d.ts} +0 -0
  185. /package/dist/command-bus/{job/job-options-builder.spec.d.ts → transport/consumer-loop.spec.d.ts} +0 -0
  186. /package/dist/command-bus/{job/job-processor.spec.d.ts → transport/message-processor.spec.d.ts} +0 -0
  187. /package/dist/command-bus/{queue/queue-manager.spec.d.ts → transport/pending-recovery.spec.d.ts} +0 -0
  188. /package/dist/command-bus/{rpc/payload-compression.service.spec.d.ts → transport/redis-codec.spec.d.ts} +0 -0
  189. /package/dist/command-bus/{rpc/rpc-coordinator.spec.d.ts → transport/redis-streams-transport.spec.d.ts} +0 -0
  190. /package/dist/command-bus/{rpc/rpc-job-cancellation.service.spec.d.ts → transport/rpc-handler.spec.d.ts} +0 -0
  191. /package/dist/command-bus/{worker/worker-benchmark.spec.d.ts → transport/stream-consumer.spec.d.ts} +0 -0
  192. /package/dist/command-bus/{worker/worker-orchestrator.spec.d.ts → transport/stream-producer.spec.d.ts} +0 -0
  193. /package/dist/shared/{config/base-config.spec.d.ts → redis/connection-pool.spec.d.ts} +0 -0
@@ -1,436 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- const job_processor_1 = __importDefault(require("./job-processor"));
16
- const command_1 = __importDefault(require("../command"));
17
- // Przykładowa komenda testowa
18
- class TestCommand extends command_1.default {
19
- constructor(payload) {
20
- super(payload);
21
- }
22
- }
23
- describe('JobProcessor', () => {
24
- let jobProcessor;
25
- let mockCommandHandlers;
26
- let mockRedisConnection;
27
- let mockLogger;
28
- let mockJobOptionsBuilder;
29
- let mockCompressionService;
30
- let mockCommandLogger;
31
- let mockCancellationService;
32
- beforeEach(() => {
33
- jest.clearAllMocks();
34
- mockLogger = {
35
- log: jest.fn(),
36
- error: jest.fn(),
37
- warn: jest.fn(),
38
- debug: jest.fn(),
39
- };
40
- mockRedisConnection = {
41
- publish: jest.fn().mockResolvedValue(1), // Redis publish zwraca liczbę subscribers
42
- };
43
- mockJobOptionsBuilder = {
44
- buildRpcReplyOptions: jest.fn().mockReturnValue({}),
45
- };
46
- mockCompressionService = {
47
- compress: jest.fn().mockImplementation((payload) => Promise.resolve({
48
- data: JSON.stringify(payload),
49
- compressed: false,
50
- })),
51
- decompress: jest.fn().mockResolvedValue({}),
52
- };
53
- mockCommandLogger = {
54
- logCommand: jest.fn().mockResolvedValue(undefined),
55
- };
56
- mockCancellationService = {
57
- markAsCancelled: jest.fn().mockResolvedValue(undefined),
58
- isCancelled: jest.fn().mockResolvedValue(false),
59
- clearCancellation: jest.fn().mockResolvedValue(undefined),
60
- tryRemoveJob: jest.fn().mockResolvedValue(false),
61
- };
62
- mockCommandHandlers = {};
63
- jobProcessor = new job_processor_1.default(mockCommandHandlers, mockRedisConnection, mockLogger, mockJobOptionsBuilder, mockCompressionService, mockCommandLogger, mockCancellationService);
64
- });
65
- describe('process - standardowy job', () => {
66
- it('powinno przetworzyć komendę i wywołać handler', () => __awaiter(void 0, void 0, void 0, function* () {
67
- // Given
68
- const command = new TestCommand({ data: 'test data' });
69
- const commandName = 'TestCommand';
70
- const mockHandler = jest.fn().mockResolvedValue({ success: true });
71
- mockCommandHandlers[commandName] = mockHandler;
72
- const job = {
73
- id: 'job-123',
74
- data: command,
75
- attemptsMade: 0,
76
- opts: { attempts: 1 },
77
- };
78
- // When
79
- const result = yield jobProcessor.process(job, commandName);
80
- // Then
81
- expect(result).toEqual({ success: true });
82
- expect(mockHandler).toHaveBeenCalledWith(command);
83
- expect(mockLogger.debug).toHaveBeenCalledWith('Rozpoczynam przetwarzanie komendy', expect.objectContaining({
84
- commandName,
85
- commandId: command.__id,
86
- jobId: 'job-123',
87
- }));
88
- expect(mockLogger.log).toHaveBeenCalledWith('Handler komendy wykonany pomyślnie', expect.objectContaining({
89
- commandName,
90
- commandId: command.__id,
91
- jobId: 'job-123',
92
- }));
93
- }));
94
- it('powinno zalogować komendę gdy commandLogger jest dostępny', () => __awaiter(void 0, void 0, void 0, function* () {
95
- // Given
96
- const command = new TestCommand({ data: 'test data' });
97
- const commandName = 'TestCommand';
98
- const mockHandler = jest.fn().mockResolvedValue(undefined);
99
- mockCommandHandlers[commandName] = mockHandler;
100
- const job = {
101
- id: 'job-123',
102
- data: command,
103
- attemptsMade: 0,
104
- };
105
- // When
106
- yield jobProcessor.process(job, commandName);
107
- // Then
108
- expect(mockCommandLogger.logCommand).toHaveBeenCalledWith(command);
109
- }));
110
- it('powinno rzucić błąd gdy brak handlera dla komendy', () => __awaiter(void 0, void 0, void 0, function* () {
111
- // Given
112
- const command = new TestCommand({ data: 'test data' });
113
- const commandName = 'TestCommand';
114
- const job = {
115
- id: 'job-123',
116
- data: command,
117
- attemptsMade: 0,
118
- };
119
- // When & Then
120
- yield expect(jobProcessor.process(job, commandName)).rejects.toThrow(`Brak handlera dla komendy ${commandName}`);
121
- expect(mockLogger.error).toHaveBeenCalledWith('Brak handlera dla komendy', expect.objectContaining({
122
- commandName,
123
- commandId: command.__id,
124
- }));
125
- }));
126
- it('powinno obsłużyć błąd z handlera', () => __awaiter(void 0, void 0, void 0, function* () {
127
- // Given
128
- const command = new TestCommand({ data: 'test data' });
129
- const commandName = 'TestCommand';
130
- const handlerError = new Error('Handler error');
131
- const mockHandler = jest.fn().mockRejectedValue(handlerError);
132
- mockCommandHandlers[commandName] = mockHandler;
133
- const job = {
134
- id: 'job-123',
135
- data: command,
136
- attemptsMade: 1,
137
- opts: { attempts: 1 },
138
- };
139
- // When & Then
140
- yield expect(jobProcessor.process(job, commandName)).rejects.toThrow('Handler error');
141
- expect(mockLogger.error).toHaveBeenCalledWith('Błąd podczas wykonywania handlera komendy', expect.objectContaining({
142
- commandName,
143
- commandId: command.__id,
144
- error: 'Handler error',
145
- attempt: 2,
146
- }));
147
- }));
148
- });
149
- describe('process - RPC job', () => {
150
- it('powinno wysłać odpowiedź RPC po pomyślnym wykonaniu', () => __awaiter(void 0, void 0, void 0, function* () {
151
- // Given
152
- const command = new TestCommand({ data: 'test data' });
153
- const commandName = 'TestCommand';
154
- const result = { success: true, data: 42 };
155
- const mockHandler = jest.fn().mockResolvedValue(result);
156
- mockCommandHandlers[commandName] = mockHandler;
157
- const testProcessInstanceId = '00000000-0000-0000-0000-000000000000'; // UUID dla testów
158
- const rpcMetadata = {
159
- correlationId: 'correlation-123',
160
- responseChannel: `rpc:response:${testProcessInstanceId}:correlation-123`,
161
- timestamp: Date.now(),
162
- compressed: true,
163
- };
164
- const job = {
165
- id: 'job-123',
166
- data: Object.assign(Object.assign({}, command), { __rpcMetadata: rpcMetadata }),
167
- attemptsMade: 0,
168
- };
169
- // When
170
- const actualResult = yield jobProcessor.process(job, commandName);
171
- // Then
172
- expect(actualResult).toEqual(result);
173
- expect(mockRedisConnection.publish).toHaveBeenCalledWith(`rpc:response:${testProcessInstanceId}:correlation-123`, JSON.stringify({
174
- data: JSON.stringify({
175
- correlationId: 'correlation-123',
176
- result,
177
- error: null,
178
- }),
179
- compressed: false,
180
- }));
181
- expect(mockLogger.debug).toHaveBeenCalledWith('Odpowiedź RPC opublikowana przez Pub/Sub', expect.objectContaining({
182
- commandName,
183
- correlationId: 'correlation-123',
184
- responseChannel: `rpc:response:${testProcessInstanceId}:correlation-123`,
185
- compressed: false,
186
- }));
187
- }));
188
- it('powinno wysłać błąd RPC gdy handler rzuci błąd', () => __awaiter(void 0, void 0, void 0, function* () {
189
- // Given
190
- const command = new TestCommand({ data: 'test data' });
191
- const commandName = 'TestCommand';
192
- const handlerError = new Error('Handler failed');
193
- const mockHandler = jest.fn().mockRejectedValue(handlerError);
194
- mockCommandHandlers[commandName] = mockHandler;
195
- const testProcessInstanceId = '00000000-0000-0000-0000-000000000000'; // UUID dla testów
196
- const rpcMetadata = {
197
- correlationId: 'correlation-123',
198
- responseChannel: `rpc:response:${testProcessInstanceId}:correlation-123`,
199
- timestamp: Date.now(),
200
- compressed: true,
201
- };
202
- const job = {
203
- id: 'job-123',
204
- data: Object.assign(Object.assign({}, command), { __rpcMetadata: rpcMetadata }),
205
- attemptsMade: 0,
206
- };
207
- // When & Then
208
- yield expect(jobProcessor.process(job, commandName)).rejects.toThrow('Handler failed');
209
- expect(mockRedisConnection.publish).toHaveBeenCalledWith(`rpc:response:${testProcessInstanceId}:correlation-123`, JSON.stringify({
210
- data: JSON.stringify({
211
- correlationId: 'correlation-123',
212
- result: null,
213
- error: 'Handler failed',
214
- }),
215
- compressed: false,
216
- }));
217
- }));
218
- it('powinno zalogować błąd gdy nie udało się wysłać odpowiedzi RPC', () => __awaiter(void 0, void 0, void 0, function* () {
219
- // Given
220
- const command = new TestCommand({ data: 'test data' });
221
- const commandName = 'TestCommand';
222
- const result = { success: true };
223
- const mockHandler = jest.fn().mockResolvedValue(result);
224
- mockCommandHandlers[commandName] = mockHandler;
225
- const publishError = new Error('Redis publish error');
226
- mockRedisConnection.publish.mockRejectedValueOnce(publishError);
227
- const testProcessInstanceId = '00000000-0000-0000-0000-000000000000'; // UUID dla testów
228
- const rpcMetadata = {
229
- correlationId: 'correlation-123',
230
- responseChannel: `rpc:response:${testProcessInstanceId}:correlation-123`,
231
- timestamp: Date.now(),
232
- compressed: true,
233
- };
234
- const job = {
235
- id: 'job-123',
236
- data: Object.assign(Object.assign({}, command), { __rpcMetadata: rpcMetadata }),
237
- attemptsMade: 0,
238
- };
239
- // When
240
- yield jobProcessor.process(job, commandName);
241
- // Then
242
- expect(mockLogger.error).toHaveBeenCalledWith('Nie udało się opublikować odpowiedzi RPC', expect.objectContaining({
243
- commandName,
244
- correlationId: 'correlation-123',
245
- error: 'Redis publish error',
246
- }));
247
- }));
248
- // Testy dla queueExists zostały usunięte - Pub/Sub nie wymaga sprawdzania istnienia kolejki
249
- });
250
- describe('rekonstrukcja dat', () => {
251
- it('powinno zrekonstruować daty w komendzie', () => __awaiter(void 0, void 0, void 0, function* () {
252
- // Given
253
- const commandName = 'TestCommand';
254
- const serializedDate = new Date('2025-01-01').toISOString();
255
- const mockHandler = jest.fn().mockResolvedValue(undefined);
256
- mockCommandHandlers[commandName] = mockHandler;
257
- // Spy na Command.reconstructDates
258
- const reconstructDatesSpy = jest.spyOn(command_1.default, 'reconstructDates');
259
- const job = {
260
- id: 'job-123',
261
- data: {
262
- __name: 'TestCommand',
263
- __id: 'cmd-123',
264
- __time: Date.now(),
265
- data: 'test',
266
- someDate: serializedDate,
267
- },
268
- attemptsMade: 0,
269
- };
270
- // When
271
- yield jobProcessor.process(job, commandName);
272
- // Then
273
- expect(reconstructDatesSpy).toHaveBeenCalledWith(job.data);
274
- // Sprawdź że handler został wywołany z przekonwertowanymi datami
275
- expect(mockHandler).toHaveBeenCalled();
276
- const calledCommand = mockHandler.mock.calls[0][0];
277
- expect(calledCommand.someDate).toBeInstanceOf(Date);
278
- reconstructDatesSpy.mockRestore();
279
- }));
280
- });
281
- describe('process bez commandLogger', () => {
282
- it('powinno działać gdy commandLogger nie jest dostępny', () => __awaiter(void 0, void 0, void 0, function* () {
283
- // Given
284
- const jobProcessorWithoutLogger = new job_processor_1.default(mockCommandHandlers, mockRedisConnection, mockLogger, mockJobOptionsBuilder, mockCompressionService);
285
- const command = new TestCommand({ data: 'test data' });
286
- const commandName = 'TestCommand';
287
- const mockHandler = jest.fn().mockResolvedValue({ success: true });
288
- mockCommandHandlers[commandName] = mockHandler;
289
- const job = {
290
- id: 'job-123',
291
- data: command,
292
- attemptsMade: 0,
293
- };
294
- // When
295
- const result = yield jobProcessorWithoutLogger.process(job, commandName);
296
- // Then
297
- expect(result).toEqual({ success: true });
298
- expect(mockHandler).toHaveBeenCalled();
299
- }));
300
- });
301
- describe('process - RPC cancellation', () => {
302
- it('powinno pominąć przetwarzanie gdy RPC zostało anulowane (timeout)', () => __awaiter(void 0, void 0, void 0, function* () {
303
- // Given
304
- const command = new TestCommand({ data: 'test data' });
305
- const commandName = 'TestCommand';
306
- const mockHandler = jest.fn().mockResolvedValue({ success: true });
307
- mockCommandHandlers[commandName] = mockHandler;
308
- const rpcMetadata = {
309
- correlationId: 'cancelled-correlation-123',
310
- responseChannel: 'rpc:response:test:cancelled-correlation-123',
311
- timestamp: Date.now(),
312
- compressed: false,
313
- };
314
- const job = {
315
- id: 'job-cancelled',
316
- data: Object.assign(Object.assign({}, command), { __rpcMetadata: rpcMetadata }),
317
- attemptsMade: 0,
318
- };
319
- // Symuluj że RPC zostało anulowane
320
- mockCancellationService.isCancelled.mockResolvedValue(true);
321
- // When
322
- const result = yield jobProcessor.process(job, commandName);
323
- // Then
324
- expect(result).toBeUndefined(); // Brak wyniku - przetwarzanie pominięte
325
- expect(mockHandler).not.toHaveBeenCalled(); // Handler NIE wywołany
326
- expect(mockRedisConnection.publish).not.toHaveBeenCalled(); // Odpowiedź NIE wysłana
327
- expect(mockCancellationService.isCancelled).toHaveBeenCalledWith('cancelled-correlation-123');
328
- expect(mockCancellationService.clearCancellation).toHaveBeenCalledWith('cancelled-correlation-123');
329
- expect(mockLogger.warn).toHaveBeenCalledWith(expect.stringContaining('Pomijam przetwarzanie - RPC zostało anulowane'), expect.objectContaining({
330
- commandName,
331
- correlationId: 'cancelled-correlation-123',
332
- jobId: 'job-cancelled',
333
- }));
334
- }));
335
- it('powinno przetworzyć normalnie gdy RPC nie jest anulowane', () => __awaiter(void 0, void 0, void 0, function* () {
336
- // Given
337
- const command = new TestCommand({ data: 'test data' });
338
- const commandName = 'TestCommand';
339
- const result = { success: true };
340
- const mockHandler = jest.fn().mockResolvedValue(result);
341
- mockCommandHandlers[commandName] = mockHandler;
342
- const rpcMetadata = {
343
- correlationId: 'active-correlation-456',
344
- responseChannel: 'rpc:response:test:active-correlation-456',
345
- timestamp: Date.now(),
346
- compressed: false,
347
- };
348
- const job = {
349
- id: 'job-active',
350
- data: Object.assign(Object.assign({}, command), { __rpcMetadata: rpcMetadata }),
351
- attemptsMade: 0,
352
- };
353
- // Symuluj że RPC NIE zostało anulowane
354
- mockCancellationService.isCancelled.mockResolvedValue(false);
355
- // When
356
- const actualResult = yield jobProcessor.process(job, commandName);
357
- // Then
358
- expect(actualResult).toEqual(result);
359
- expect(mockHandler).toHaveBeenCalled(); // Handler wywołany
360
- expect(mockRedisConnection.publish).toHaveBeenCalled(); // Odpowiedź wysłana
361
- expect(mockCancellationService.isCancelled).toHaveBeenCalledWith('active-correlation-456');
362
- expect(mockCancellationService.clearCancellation).not.toHaveBeenCalled(); // NIE wywołane dla aktywnych
363
- }));
364
- it('powinno NIE sprawdzać cancellation dla jobów bez RPC metadata', () => __awaiter(void 0, void 0, void 0, function* () {
365
- // Given
366
- const command = new TestCommand({ data: 'test data' });
367
- const commandName = 'TestCommand';
368
- const mockHandler = jest.fn().mockResolvedValue({ success: true });
369
- mockCommandHandlers[commandName] = mockHandler;
370
- const job = {
371
- id: 'job-no-rpc',
372
- data: command, // Brak __rpcMetadata
373
- attemptsMade: 0,
374
- };
375
- // When
376
- yield jobProcessor.process(job, commandName);
377
- // Then
378
- expect(mockCancellationService.isCancelled).not.toHaveBeenCalled(); // NIE sprawdzano
379
- expect(mockHandler).toHaveBeenCalled(); // Handler wywołany normalnie
380
- }));
381
- it('powinno kontynuować przetwarzanie gdy cancellation service zwraca błąd (graceful degradation)', () => __awaiter(void 0, void 0, void 0, function* () {
382
- // Given
383
- const command = new TestCommand({ data: 'test data' });
384
- const commandName = 'TestCommand';
385
- const result = { success: true };
386
- const mockHandler = jest.fn().mockResolvedValue(result);
387
- mockCommandHandlers[commandName] = mockHandler;
388
- const rpcMetadata = {
389
- correlationId: 'error-correlation-789',
390
- responseChannel: 'rpc:response:test:error-correlation-789',
391
- timestamp: Date.now(),
392
- compressed: false,
393
- };
394
- const job = {
395
- id: 'job-error',
396
- data: Object.assign(Object.assign({}, command), { __rpcMetadata: rpcMetadata }),
397
- attemptsMade: 0,
398
- };
399
- // Symuluj błąd Redis w cancellation service
400
- // (serwis zwraca false przy błędzie - graceful degradation)
401
- mockCancellationService.isCancelled.mockResolvedValue(false);
402
- // When
403
- const actualResult = yield jobProcessor.process(job, commandName);
404
- // Then - przetworzono normalnie (graceful degradation)
405
- expect(actualResult).toEqual(result);
406
- expect(mockHandler).toHaveBeenCalled();
407
- }));
408
- it('powinno działać bez cancellation service (backwards compatibility)', () => __awaiter(void 0, void 0, void 0, function* () {
409
- // Given
410
- const jobProcessorWithoutCancellation = new job_processor_1.default(mockCommandHandlers, mockRedisConnection, mockLogger, mockJobOptionsBuilder, mockCompressionService, mockCommandLogger);
411
- const command = new TestCommand({ data: 'test data' });
412
- const commandName = 'TestCommand';
413
- const result = { success: true };
414
- const mockHandler = jest.fn().mockResolvedValue(result);
415
- mockCommandHandlers[commandName] = mockHandler;
416
- const rpcMetadata = {
417
- correlationId: 'no-service-correlation',
418
- responseChannel: 'rpc:response:test:no-service-correlation',
419
- timestamp: Date.now(),
420
- compressed: false,
421
- };
422
- const job = {
423
- id: 'job-no-service',
424
- data: Object.assign(Object.assign({}, command), { __rpcMetadata: rpcMetadata }),
425
- attemptsMade: 0,
426
- };
427
- // When
428
- const actualResult = yield jobProcessorWithoutCancellation.process(job, commandName);
429
- // Then - przetworzono normalnie
430
- expect(actualResult).toEqual(result);
431
- expect(mockHandler).toHaveBeenCalled();
432
- expect(mockRedisConnection.publish).toHaveBeenCalled();
433
- }));
434
- });
435
- });
436
- //# sourceMappingURL=job-processor.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"job-processor.spec.js","sourceRoot":"","sources":["../../../src/command-bus/job/job-processor.spec.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Moduł zarządzania kolejkami BullMQ
3
- * Eksportuje QueueManager odpowiedzialny za lifecycle kolejek
4
- */
5
- export { default as QueueManager } from './queue-manager';
@@ -1,13 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.QueueManager = void 0;
7
- /**
8
- * Moduł zarządzania kolejkami BullMQ
9
- * Eksportuje QueueManager odpowiedzialny za lifecycle kolejek
10
- */
11
- var queue_manager_1 = require("./queue-manager");
12
- Object.defineProperty(exports, "QueueManager", { enumerable: true, get: function () { return __importDefault(queue_manager_1).default; } });
13
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/command-bus/queue/index.ts"],"names":[],"mappings":";;;;;;AAAA;;;GAGG;AACH,iDAA0D;AAAjD,8HAAA,OAAO,OAAgB"}
@@ -1,56 +0,0 @@
1
- import { Queue } from 'bullmq';
2
- import type { Redis } from 'ioredis';
3
- import type { ILogger } from '../../shared/types';
4
- /**
5
- * Zarządza cyklem życia kolejek BullMQ i cache'em kolejek
6
- * Cache zapobiega tworzeniu wielu instancji Queue dla tej samej komendy
7
- */
8
- export default class QueueManager {
9
- private readonly redisConnection;
10
- private readonly logger;
11
- /**
12
- * Cache kolejek - Map<queueName, Queue>
13
- * Pozwala na reużycie tej samej instancji Queue dla danej komendy
14
- */
15
- private queueCache;
16
- constructor(redisConnection: Redis, logger: ILogger);
17
- /**
18
- * Pobiera lub tworzy kolejkę dla danego typu komendy
19
- * Używa cache dla optymalizacji pamięci - reużywa instancje Queue
20
- * @param commandName - Nazwa komendy
21
- * @param connection - Połączenie Redis (opcjonalne)
22
- * @returns Instancja Queue (z cache lub nowo utworzona)
23
- */
24
- getOrCreateQueue(commandName: string, connection?: Redis): Queue;
25
- /**
26
- * Tworzy kolejkę dla danego typu komendy (bez cache)
27
- * Używane dla tymczasowych kolejek (np. RPC reply queues)
28
- * @param commandName - Nazwa komendy
29
- * @param connection - Połączenie Redis (opcjonalne)
30
- */
31
- createQueue(commandName: string, connection?: Redis): Queue;
32
- /**
33
- * Sprawdza czy kolejka BullMQ istnieje w Redis
34
- * @param queueName - Nazwa kolejki do sprawdzenia
35
- * @returns true jeśli kolejka istnieje, false w przeciwnym razie
36
- */
37
- queueExists(queueName: string): Promise<boolean>;
38
- /**
39
- * Zamyka kolejkę i usuwa ją z cache
40
- * Używane do explicite zamykania kolejek dla optymalizacji pamięci
41
- * @param commandName - Nazwa komendy
42
- */
43
- closeQueue(commandName: string): Promise<void>;
44
- /**
45
- * Zamyka wszystkie kolejki w cache
46
- * Używane podczas shutdown CommandBus
47
- */
48
- closeAllQueues(): Promise<void>;
49
- /**
50
- * Zwraca statystyki cache kolejek (dla diagnostyki)
51
- */
52
- getCacheStats(): {
53
- cachedQueuesCount: number;
54
- queueNames: string[];
55
- };
56
- }