@forgehive/task 0.2.2 → 0.2.3
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.
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +28 -4
- package/dist/index.js.map +1 -1
- package/dist/test/listen-execution-records.test.d.ts +2 -0
- package/dist/test/listen-execution-records.test.d.ts.map +1 -0
- package/dist/test/listen-execution-records.test.js +223 -0
- package/dist/test/listen-execution-records.test.js.map +1 -0
- package/package.json +1 -1
- package/src/index.ts +34 -6
- package/src/test/listen-execution-records.test.ts +295 -0
package/dist/index.d.ts
CHANGED
|
@@ -160,6 +160,9 @@ export declare const Task: {
|
|
|
160
160
|
}>;
|
|
161
161
|
_sendToHive(log: ExecutionRecord<Parameters<Func>[0], ReturnType<Func>, B>): Promise<void>;
|
|
162
162
|
};
|
|
163
|
+
globalListener?: (record: ExecutionRecord<any, any, any>) => Promise<void>;
|
|
164
|
+
listenExecutionRecords(listener: (record: ExecutionRecord<any, any, any>) => Promise<void>): void;
|
|
165
|
+
emitExecutionRecord(record: ExecutionRecord<any, any, any>): void;
|
|
163
166
|
};
|
|
164
167
|
/**
|
|
165
168
|
* Configuration object for creating a task
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrG,OAAO,EAEL,KAAK,IAAI,EACT,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACtB,MAAM,kBAAkB,CAAA;AAEzB,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;CACpB;AAGD,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;AAGlD,YAAY,EACV,gBAAgB,EAChB,uBAAuB,EACvB,UAAU,EACV,iBAAiB,EACjB,IAAI,EACJ,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EACjB,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EAAE,MAAM,EAAE,CAAA;AAEjB,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAA;IAC3C,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,UAAU,CAAC,EAAE,CAAC,CAAA;IACd,cAAc,CAAC,EAAE,gBAAgB,CAAA;CAClC;AAGD,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU;IAC7D,UAAU,EAAE;SACT,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI;KACtB,CAAA;CACF;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -19,6 +19,28 @@ function getExecutionRecordType(record) {
|
|
|
19
19
|
return 'pending';
|
|
20
20
|
}
|
|
21
21
|
const Task = class Task {
|
|
22
|
+
// Static method to set global listener
|
|
23
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
24
|
+
static listenExecutionRecords(listener) {
|
|
25
|
+
this.globalListener = listener;
|
|
26
|
+
}
|
|
27
|
+
// Static method to emit to global listener with error handling
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
29
|
+
static emitExecutionRecord(record) {
|
|
30
|
+
if (this.globalListener) {
|
|
31
|
+
// Call listener on next tick to avoid blocking task execution
|
|
32
|
+
process.nextTick(async () => {
|
|
33
|
+
try {
|
|
34
|
+
await this.globalListener(record);
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
// Log error but don't affect task execution
|
|
38
|
+
// eslint-disable-next-line no-console
|
|
39
|
+
console.error('ExecutionRecord listener error:', error);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
22
44
|
constructor(fn, conf = {
|
|
23
45
|
name: undefined,
|
|
24
46
|
description: undefined,
|
|
@@ -28,7 +50,7 @@ const Task = class Task {
|
|
|
28
50
|
boundariesData: undefined
|
|
29
51
|
}) {
|
|
30
52
|
var _a, _b, _c;
|
|
31
|
-
this.version = '0.1.
|
|
53
|
+
this.version = '0.1.8';
|
|
32
54
|
this._accumulatedBoundariesData = {};
|
|
33
55
|
// For storing mocks
|
|
34
56
|
this._boundaryMocks = {};
|
|
@@ -171,10 +193,12 @@ const Task = class Task {
|
|
|
171
193
|
Plus all the boundary data
|
|
172
194
|
*/
|
|
173
195
|
emit(data) {
|
|
174
|
-
|
|
175
|
-
|
|
196
|
+
// Emit to instance listener
|
|
197
|
+
if (typeof this._listener !== 'undefined') {
|
|
198
|
+
this._listener(data);
|
|
176
199
|
}
|
|
177
|
-
|
|
200
|
+
// Emit to global listener (non-blocking)
|
|
201
|
+
Task.emitExecutionRecord(data);
|
|
178
202
|
}
|
|
179
203
|
getBoundaries() {
|
|
180
204
|
// Create fresh boundaries when requested
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listen-execution-records.test.d.ts","sourceRoot":"","sources":["../../src/test/listen-execution-records.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const index_1 = require("../index");
|
|
4
|
+
describe('Task.listenExecutionRecords', () => {
|
|
5
|
+
let mockListener;
|
|
6
|
+
let consoleErrorSpy;
|
|
7
|
+
beforeEach(() => {
|
|
8
|
+
mockListener = jest.fn();
|
|
9
|
+
consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(() => { });
|
|
10
|
+
// Clear any existing global listener
|
|
11
|
+
index_1.Task.globalListener = undefined;
|
|
12
|
+
});
|
|
13
|
+
afterEach(() => {
|
|
14
|
+
// Clean up global listener after each test
|
|
15
|
+
index_1.Task.globalListener = undefined;
|
|
16
|
+
consoleErrorSpy.mockRestore();
|
|
17
|
+
});
|
|
18
|
+
describe('static listenExecutionRecords method', () => {
|
|
19
|
+
it('should set global listener', () => {
|
|
20
|
+
index_1.Task.listenExecutionRecords(mockListener);
|
|
21
|
+
expect(index_1.Task.globalListener).toBe(mockListener);
|
|
22
|
+
});
|
|
23
|
+
it('should replace existing global listener', () => {
|
|
24
|
+
const firstListener = jest.fn();
|
|
25
|
+
const secondListener = jest.fn();
|
|
26
|
+
index_1.Task.listenExecutionRecords(firstListener);
|
|
27
|
+
expect(index_1.Task.globalListener).toBe(firstListener);
|
|
28
|
+
index_1.Task.listenExecutionRecords(secondListener);
|
|
29
|
+
expect(index_1.Task.globalListener).toBe(secondListener);
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
describe('global listener execution', () => {
|
|
33
|
+
it('should call global listener when task is executed via safeRun', async () => {
|
|
34
|
+
index_1.Task.listenExecutionRecords(mockListener);
|
|
35
|
+
const schema = new index_1.Schema({
|
|
36
|
+
value: index_1.Schema.number()
|
|
37
|
+
});
|
|
38
|
+
const testTask = (0, index_1.createTask)({
|
|
39
|
+
schema,
|
|
40
|
+
boundaries: {},
|
|
41
|
+
fn: async (input) => ({ result: input.value * 2 })
|
|
42
|
+
});
|
|
43
|
+
await testTask.safeRun({ value: 5 });
|
|
44
|
+
await new Promise(resolve => process.nextTick(resolve));
|
|
45
|
+
expect(mockListener).toHaveBeenCalledTimes(1);
|
|
46
|
+
expect(mockListener).toHaveBeenCalledWith(expect.objectContaining({
|
|
47
|
+
input: { value: 5 },
|
|
48
|
+
output: { result: 10 },
|
|
49
|
+
type: 'success'
|
|
50
|
+
}));
|
|
51
|
+
});
|
|
52
|
+
it('should call global listener when task is executed via run', async () => {
|
|
53
|
+
index_1.Task.listenExecutionRecords(mockListener);
|
|
54
|
+
const schema = new index_1.Schema({
|
|
55
|
+
value: index_1.Schema.number()
|
|
56
|
+
});
|
|
57
|
+
const testTask = (0, index_1.createTask)({
|
|
58
|
+
schema,
|
|
59
|
+
boundaries: {},
|
|
60
|
+
fn: async (input) => ({ result: input.value * 2 })
|
|
61
|
+
});
|
|
62
|
+
await testTask.run({ value: 3 });
|
|
63
|
+
await new Promise(resolve => process.nextTick(resolve));
|
|
64
|
+
expect(mockListener).toHaveBeenCalledTimes(1);
|
|
65
|
+
expect(mockListener).toHaveBeenCalledWith(expect.objectContaining({
|
|
66
|
+
input: { value: 3 },
|
|
67
|
+
output: { result: 6 },
|
|
68
|
+
type: 'success'
|
|
69
|
+
}));
|
|
70
|
+
});
|
|
71
|
+
it('should call global listener when task fails', async () => {
|
|
72
|
+
index_1.Task.listenExecutionRecords(mockListener);
|
|
73
|
+
const schema = new index_1.Schema({});
|
|
74
|
+
const errorTask = (0, index_1.createTask)({
|
|
75
|
+
schema,
|
|
76
|
+
boundaries: {},
|
|
77
|
+
fn: async () => {
|
|
78
|
+
throw new Error('Test error');
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
await errorTask.safeRun({});
|
|
82
|
+
await new Promise(resolve => process.nextTick(resolve));
|
|
83
|
+
expect(mockListener).toHaveBeenCalledTimes(1);
|
|
84
|
+
expect(mockListener).toHaveBeenCalledWith(expect.objectContaining({
|
|
85
|
+
input: {},
|
|
86
|
+
error: 'Test error',
|
|
87
|
+
type: 'error'
|
|
88
|
+
}));
|
|
89
|
+
});
|
|
90
|
+
it('should call both instance and global listeners', async () => {
|
|
91
|
+
const instanceListener = jest.fn();
|
|
92
|
+
index_1.Task.listenExecutionRecords(mockListener);
|
|
93
|
+
const schema = new index_1.Schema({
|
|
94
|
+
value: index_1.Schema.number()
|
|
95
|
+
});
|
|
96
|
+
const testTask = (0, index_1.createTask)({
|
|
97
|
+
schema,
|
|
98
|
+
boundaries: {},
|
|
99
|
+
fn: async (input) => ({ result: input.value * 2 })
|
|
100
|
+
});
|
|
101
|
+
testTask.addListener(instanceListener);
|
|
102
|
+
await testTask.safeRun({ value: 7 });
|
|
103
|
+
await new Promise(resolve => process.nextTick(resolve));
|
|
104
|
+
expect(instanceListener).toHaveBeenCalledTimes(1);
|
|
105
|
+
expect(mockListener).toHaveBeenCalledTimes(1);
|
|
106
|
+
const expectedRecord = expect.objectContaining({
|
|
107
|
+
input: { value: 7 },
|
|
108
|
+
output: { result: 14 },
|
|
109
|
+
type: 'success'
|
|
110
|
+
});
|
|
111
|
+
expect(instanceListener).toHaveBeenCalledWith(expectedRecord);
|
|
112
|
+
expect(mockListener).toHaveBeenCalledWith(expectedRecord);
|
|
113
|
+
});
|
|
114
|
+
it('should work when no global listener is set', async () => {
|
|
115
|
+
// No global listener set
|
|
116
|
+
const schema = new index_1.Schema({
|
|
117
|
+
value: index_1.Schema.number()
|
|
118
|
+
});
|
|
119
|
+
const testTask = (0, index_1.createTask)({
|
|
120
|
+
schema,
|
|
121
|
+
boundaries: {},
|
|
122
|
+
fn: async (input) => ({ result: input.value * 2 })
|
|
123
|
+
});
|
|
124
|
+
// Should not throw error
|
|
125
|
+
await expect(testTask.safeRun({ value: 1 })).resolves.toBeDefined();
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
describe('async listener support', () => {
|
|
129
|
+
it('should support async global listeners', async () => {
|
|
130
|
+
const asyncListener = jest.fn().mockImplementation(async (_record) => {
|
|
131
|
+
await new Promise(resolve => setTimeout(resolve, 10));
|
|
132
|
+
return Promise.resolve();
|
|
133
|
+
});
|
|
134
|
+
index_1.Task.listenExecutionRecords(asyncListener);
|
|
135
|
+
const schema = new index_1.Schema({
|
|
136
|
+
value: index_1.Schema.number()
|
|
137
|
+
});
|
|
138
|
+
const testTask = (0, index_1.createTask)({
|
|
139
|
+
schema,
|
|
140
|
+
boundaries: {},
|
|
141
|
+
fn: async (input) => ({ result: input.value * 2 })
|
|
142
|
+
});
|
|
143
|
+
await testTask.safeRun({ value: 4 });
|
|
144
|
+
await new Promise(resolve => process.nextTick(resolve));
|
|
145
|
+
expect(asyncListener).toHaveBeenCalledTimes(1);
|
|
146
|
+
expect(asyncListener).toHaveBeenCalledWith(expect.objectContaining({
|
|
147
|
+
input: { value: 4 },
|
|
148
|
+
output: { result: 8 },
|
|
149
|
+
type: 'success'
|
|
150
|
+
}));
|
|
151
|
+
});
|
|
152
|
+
it('should handle long-running async listeners without blocking task execution', async () => {
|
|
153
|
+
const slowListener = jest.fn().mockImplementation(async () => {
|
|
154
|
+
await new Promise(resolve => setTimeout(resolve, 100)); // 100ms
|
|
155
|
+
});
|
|
156
|
+
index_1.Task.listenExecutionRecords(slowListener);
|
|
157
|
+
const schema = new index_1.Schema({
|
|
158
|
+
value: index_1.Schema.number()
|
|
159
|
+
});
|
|
160
|
+
const testTask = (0, index_1.createTask)({
|
|
161
|
+
schema,
|
|
162
|
+
boundaries: {},
|
|
163
|
+
fn: async (input) => ({ result: input.value * 2 })
|
|
164
|
+
});
|
|
165
|
+
const startTime = Date.now();
|
|
166
|
+
await testTask.safeRun({ value: 1 });
|
|
167
|
+
const endTime = Date.now();
|
|
168
|
+
// Task should complete quickly without waiting for listener
|
|
169
|
+
expect(endTime - startTime).toBeLessThan(50); // Should complete in under 50ms
|
|
170
|
+
// Wait for next tick to ensure listener was called
|
|
171
|
+
await new Promise(resolve => process.nextTick(resolve));
|
|
172
|
+
expect(slowListener).toHaveBeenCalledTimes(1);
|
|
173
|
+
});
|
|
174
|
+
});
|
|
175
|
+
describe('error handling', () => {
|
|
176
|
+
it('should catch and log listener errors without affecting task execution', async () => {
|
|
177
|
+
const errorListener = jest.fn().mockImplementation(() => {
|
|
178
|
+
throw new Error('Listener error');
|
|
179
|
+
});
|
|
180
|
+
index_1.Task.listenExecutionRecords(errorListener);
|
|
181
|
+
const schema = new index_1.Schema({
|
|
182
|
+
value: index_1.Schema.number()
|
|
183
|
+
});
|
|
184
|
+
const testTask = (0, index_1.createTask)({
|
|
185
|
+
schema,
|
|
186
|
+
boundaries: {},
|
|
187
|
+
fn: async (input) => ({ result: input.value * 2 })
|
|
188
|
+
});
|
|
189
|
+
const [result, error] = await testTask.safeRun({ value: 5 });
|
|
190
|
+
await new Promise(resolve => process.nextTick(resolve));
|
|
191
|
+
// Task should complete successfully despite listener error
|
|
192
|
+
expect(result).toEqual({ result: 10 });
|
|
193
|
+
expect(error).toBeNull();
|
|
194
|
+
// Listener should have been called
|
|
195
|
+
expect(errorListener).toHaveBeenCalledTimes(1);
|
|
196
|
+
// Error should have been logged
|
|
197
|
+
expect(consoleErrorSpy).toHaveBeenCalledWith('ExecutionRecord listener error:', expect.any(Error));
|
|
198
|
+
});
|
|
199
|
+
it('should catch and log async listener errors', async () => {
|
|
200
|
+
const asyncErrorListener = jest.fn().mockImplementation(async () => {
|
|
201
|
+
throw new Error('Async listener error');
|
|
202
|
+
});
|
|
203
|
+
index_1.Task.listenExecutionRecords(asyncErrorListener);
|
|
204
|
+
const schema = new index_1.Schema({
|
|
205
|
+
value: index_1.Schema.number()
|
|
206
|
+
});
|
|
207
|
+
const testTask = (0, index_1.createTask)({
|
|
208
|
+
schema,
|
|
209
|
+
boundaries: {},
|
|
210
|
+
fn: async (input) => ({ result: input.value * 2 })
|
|
211
|
+
});
|
|
212
|
+
const [result, error] = await testTask.safeRun({ value: 3 });
|
|
213
|
+
// Wait a bit for the async error to be logged
|
|
214
|
+
await new Promise(resolve => setTimeout(resolve, 50));
|
|
215
|
+
// Task should complete successfully
|
|
216
|
+
expect(result).toEqual({ result: 6 });
|
|
217
|
+
expect(error).toBeNull();
|
|
218
|
+
// Error should have been logged
|
|
219
|
+
expect(consoleErrorSpy).toHaveBeenCalledWith('ExecutionRecord listener error:', expect.any(Error));
|
|
220
|
+
});
|
|
221
|
+
});
|
|
222
|
+
});
|
|
223
|
+
//# sourceMappingURL=listen-execution-records.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listen-execution-records.test.js","sourceRoot":"","sources":["../../src/test/listen-execution-records.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -50,9 +50,6 @@ export interface ReplayConfig<B extends Boundaries = Boundaries> {
|
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
// ToDo: Add a type for the boundaries data
|
|
54
|
-
|
|
55
|
-
|
|
56
53
|
// Make BoundaryLog generic
|
|
57
54
|
export type BoundaryLog<I extends unknown[] = unknown[], O = unknown> = BoundaryRecord<I, O>;
|
|
58
55
|
|
|
@@ -172,7 +169,11 @@ export const Task = class Task<
|
|
|
172
169
|
B extends Boundaries = Boundaries,
|
|
173
170
|
Func extends BaseFunction = BaseFunction
|
|
174
171
|
> implements TaskInstanceType<Func, B> {
|
|
175
|
-
public version: string = '0.1.
|
|
172
|
+
public version: string = '0.1.8'
|
|
173
|
+
|
|
174
|
+
// Static property for global listener
|
|
175
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
176
|
+
static globalListener?: (record: ExecutionRecord<any, any, any>) => Promise<void>
|
|
176
177
|
|
|
177
178
|
_fn: Func
|
|
178
179
|
_mode: Mode
|
|
@@ -190,6 +191,29 @@ export const Task = class Task<
|
|
|
190
191
|
_schema: Schema<Record<string, SchemaType>> | undefined
|
|
191
192
|
_listener?: ((record: ExecutionRecord<Parameters<Func>[0], ReturnType<Func>, B>) => void) | undefined
|
|
192
193
|
|
|
194
|
+
// Static method to set global listener
|
|
195
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
196
|
+
static listenExecutionRecords(listener: (record: ExecutionRecord<any, any, any>) => Promise<void>): void {
|
|
197
|
+
this.globalListener = listener
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
// Static method to emit to global listener with error handling
|
|
201
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
202
|
+
static emitExecutionRecord(record: ExecutionRecord<any, any, any>): void {
|
|
203
|
+
if (this.globalListener) {
|
|
204
|
+
// Call listener on next tick to avoid blocking task execution
|
|
205
|
+
process.nextTick(async () => {
|
|
206
|
+
try {
|
|
207
|
+
await this.globalListener!(record)
|
|
208
|
+
} catch (error) {
|
|
209
|
+
// Log error but don't affect task execution
|
|
210
|
+
// eslint-disable-next-line no-console
|
|
211
|
+
console.error('ExecutionRecord listener error:', error)
|
|
212
|
+
}
|
|
213
|
+
})
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
|
|
193
217
|
constructor (fn: Func, conf: TaskConfig<B> = {
|
|
194
218
|
name: undefined,
|
|
195
219
|
description: undefined,
|
|
@@ -306,9 +330,13 @@ export const Task = class Task<
|
|
|
306
330
|
Plus all the boundary data
|
|
307
331
|
*/
|
|
308
332
|
emit (data: ExecutionRecord<Parameters<Func>[0], ReturnType<Func>, B>): void {
|
|
309
|
-
|
|
333
|
+
// Emit to instance listener
|
|
334
|
+
if (typeof this._listener !== 'undefined') {
|
|
335
|
+
this._listener(data)
|
|
336
|
+
}
|
|
310
337
|
|
|
311
|
-
|
|
338
|
+
// Emit to global listener (non-blocking)
|
|
339
|
+
Task.emitExecutionRecord(data)
|
|
312
340
|
}
|
|
313
341
|
|
|
314
342
|
getBoundaries (): WrappedBoundaries<B> {
|
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
import { Task, createTask, Schema } from '../index'
|
|
2
|
+
|
|
3
|
+
describe('Task.listenExecutionRecords', () => {
|
|
4
|
+
let mockListener: jest.Mock
|
|
5
|
+
let consoleErrorSpy: jest.SpyInstance
|
|
6
|
+
|
|
7
|
+
beforeEach(() => {
|
|
8
|
+
mockListener = jest.fn()
|
|
9
|
+
consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(() => {})
|
|
10
|
+
// Clear any existing global listener
|
|
11
|
+
Task.globalListener = undefined
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
afterEach(() => {
|
|
15
|
+
// Clean up global listener after each test
|
|
16
|
+
Task.globalListener = undefined
|
|
17
|
+
consoleErrorSpy.mockRestore()
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
describe('static listenExecutionRecords method', () => {
|
|
21
|
+
it('should set global listener', () => {
|
|
22
|
+
Task.listenExecutionRecords(mockListener)
|
|
23
|
+
expect(Task.globalListener).toBe(mockListener)
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
it('should replace existing global listener', () => {
|
|
27
|
+
const firstListener = jest.fn()
|
|
28
|
+
const secondListener = jest.fn()
|
|
29
|
+
|
|
30
|
+
Task.listenExecutionRecords(firstListener)
|
|
31
|
+
expect(Task.globalListener).toBe(firstListener)
|
|
32
|
+
|
|
33
|
+
Task.listenExecutionRecords(secondListener)
|
|
34
|
+
expect(Task.globalListener).toBe(secondListener)
|
|
35
|
+
})
|
|
36
|
+
})
|
|
37
|
+
|
|
38
|
+
describe('global listener execution', () => {
|
|
39
|
+
it('should call global listener when task is executed via safeRun', async () => {
|
|
40
|
+
Task.listenExecutionRecords(mockListener)
|
|
41
|
+
|
|
42
|
+
const schema = new Schema({
|
|
43
|
+
value: Schema.number()
|
|
44
|
+
})
|
|
45
|
+
|
|
46
|
+
const testTask = createTask({
|
|
47
|
+
schema,
|
|
48
|
+
boundaries: {},
|
|
49
|
+
fn: async (input: { value: number }) => ({ result: input.value * 2 })
|
|
50
|
+
})
|
|
51
|
+
|
|
52
|
+
await testTask.safeRun({ value: 5 })
|
|
53
|
+
await new Promise(resolve => process.nextTick(resolve))
|
|
54
|
+
|
|
55
|
+
expect(mockListener).toHaveBeenCalledTimes(1)
|
|
56
|
+
expect(mockListener).toHaveBeenCalledWith(
|
|
57
|
+
expect.objectContaining({
|
|
58
|
+
input: { value: 5 },
|
|
59
|
+
output: { result: 10 },
|
|
60
|
+
type: 'success'
|
|
61
|
+
})
|
|
62
|
+
)
|
|
63
|
+
})
|
|
64
|
+
|
|
65
|
+
it('should call global listener when task is executed via run', async () => {
|
|
66
|
+
Task.listenExecutionRecords(mockListener)
|
|
67
|
+
|
|
68
|
+
const schema = new Schema({
|
|
69
|
+
value: Schema.number()
|
|
70
|
+
})
|
|
71
|
+
|
|
72
|
+
const testTask = createTask({
|
|
73
|
+
schema,
|
|
74
|
+
boundaries: {},
|
|
75
|
+
fn: async (input: { value: number }) => ({ result: input.value * 2 })
|
|
76
|
+
})
|
|
77
|
+
|
|
78
|
+
await testTask.run({ value: 3 })
|
|
79
|
+
await new Promise(resolve => process.nextTick(resolve))
|
|
80
|
+
|
|
81
|
+
expect(mockListener).toHaveBeenCalledTimes(1)
|
|
82
|
+
expect(mockListener).toHaveBeenCalledWith(
|
|
83
|
+
expect.objectContaining({
|
|
84
|
+
input: { value: 3 },
|
|
85
|
+
output: { result: 6 },
|
|
86
|
+
type: 'success'
|
|
87
|
+
})
|
|
88
|
+
)
|
|
89
|
+
})
|
|
90
|
+
|
|
91
|
+
it('should call global listener when task fails', async () => {
|
|
92
|
+
Task.listenExecutionRecords(mockListener)
|
|
93
|
+
|
|
94
|
+
const schema = new Schema({})
|
|
95
|
+
|
|
96
|
+
const errorTask = createTask({
|
|
97
|
+
schema,
|
|
98
|
+
boundaries: {},
|
|
99
|
+
fn: async () => {
|
|
100
|
+
throw new Error('Test error')
|
|
101
|
+
}
|
|
102
|
+
})
|
|
103
|
+
|
|
104
|
+
await errorTask.safeRun({})
|
|
105
|
+
await new Promise(resolve => process.nextTick(resolve))
|
|
106
|
+
|
|
107
|
+
expect(mockListener).toHaveBeenCalledTimes(1)
|
|
108
|
+
expect(mockListener).toHaveBeenCalledWith(
|
|
109
|
+
expect.objectContaining({
|
|
110
|
+
input: {},
|
|
111
|
+
error: 'Test error',
|
|
112
|
+
type: 'error'
|
|
113
|
+
})
|
|
114
|
+
)
|
|
115
|
+
})
|
|
116
|
+
|
|
117
|
+
it('should call both instance and global listeners', async () => {
|
|
118
|
+
const instanceListener = jest.fn()
|
|
119
|
+
Task.listenExecutionRecords(mockListener)
|
|
120
|
+
|
|
121
|
+
const schema = new Schema({
|
|
122
|
+
value: Schema.number()
|
|
123
|
+
})
|
|
124
|
+
|
|
125
|
+
const testTask = createTask({
|
|
126
|
+
schema,
|
|
127
|
+
boundaries: {},
|
|
128
|
+
fn: async (input: { value: number }) => ({ result: input.value * 2 })
|
|
129
|
+
})
|
|
130
|
+
|
|
131
|
+
testTask.addListener(instanceListener)
|
|
132
|
+
await testTask.safeRun({ value: 7 })
|
|
133
|
+
await new Promise(resolve => process.nextTick(resolve))
|
|
134
|
+
|
|
135
|
+
expect(instanceListener).toHaveBeenCalledTimes(1)
|
|
136
|
+
expect(mockListener).toHaveBeenCalledTimes(1)
|
|
137
|
+
|
|
138
|
+
const expectedRecord = expect.objectContaining({
|
|
139
|
+
input: { value: 7 },
|
|
140
|
+
output: { result: 14 },
|
|
141
|
+
type: 'success'
|
|
142
|
+
})
|
|
143
|
+
|
|
144
|
+
expect(instanceListener).toHaveBeenCalledWith(expectedRecord)
|
|
145
|
+
expect(mockListener).toHaveBeenCalledWith(expectedRecord)
|
|
146
|
+
})
|
|
147
|
+
|
|
148
|
+
it('should work when no global listener is set', async () => {
|
|
149
|
+
// No global listener set
|
|
150
|
+
const schema = new Schema({
|
|
151
|
+
value: Schema.number()
|
|
152
|
+
})
|
|
153
|
+
|
|
154
|
+
const testTask = createTask({
|
|
155
|
+
schema,
|
|
156
|
+
boundaries: {},
|
|
157
|
+
fn: async (input: { value: number }) => ({ result: input.value * 2 })
|
|
158
|
+
})
|
|
159
|
+
|
|
160
|
+
// Should not throw error
|
|
161
|
+
await expect(testTask.safeRun({ value: 1 })).resolves.toBeDefined()
|
|
162
|
+
})
|
|
163
|
+
})
|
|
164
|
+
|
|
165
|
+
describe('async listener support', () => {
|
|
166
|
+
it('should support async global listeners', async () => {
|
|
167
|
+
const asyncListener = jest.fn().mockImplementation(async (_record) => {
|
|
168
|
+
await new Promise(resolve => setTimeout(resolve, 10))
|
|
169
|
+
return Promise.resolve()
|
|
170
|
+
})
|
|
171
|
+
|
|
172
|
+
Task.listenExecutionRecords(asyncListener)
|
|
173
|
+
|
|
174
|
+
const schema = new Schema({
|
|
175
|
+
value: Schema.number()
|
|
176
|
+
})
|
|
177
|
+
|
|
178
|
+
const testTask = createTask({
|
|
179
|
+
schema,
|
|
180
|
+
boundaries: {},
|
|
181
|
+
fn: async (input: { value: number }) => ({ result: input.value * 2 })
|
|
182
|
+
})
|
|
183
|
+
|
|
184
|
+
await testTask.safeRun({ value: 4 })
|
|
185
|
+
await new Promise(resolve => process.nextTick(resolve))
|
|
186
|
+
|
|
187
|
+
expect(asyncListener).toHaveBeenCalledTimes(1)
|
|
188
|
+
expect(asyncListener).toHaveBeenCalledWith(
|
|
189
|
+
expect.objectContaining({
|
|
190
|
+
input: { value: 4 },
|
|
191
|
+
output: { result: 8 },
|
|
192
|
+
type: 'success'
|
|
193
|
+
})
|
|
194
|
+
)
|
|
195
|
+
})
|
|
196
|
+
|
|
197
|
+
it('should handle long-running async listeners without blocking task execution', async () => {
|
|
198
|
+
const slowListener = jest.fn().mockImplementation(async () => {
|
|
199
|
+
await new Promise(resolve => setTimeout(resolve, 100)) // 100ms
|
|
200
|
+
})
|
|
201
|
+
|
|
202
|
+
Task.listenExecutionRecords(slowListener)
|
|
203
|
+
|
|
204
|
+
const schema = new Schema({
|
|
205
|
+
value: Schema.number()
|
|
206
|
+
})
|
|
207
|
+
|
|
208
|
+
const testTask = createTask({
|
|
209
|
+
schema,
|
|
210
|
+
boundaries: {},
|
|
211
|
+
fn: async (input: { value: number }) => ({ result: input.value * 2 })
|
|
212
|
+
})
|
|
213
|
+
|
|
214
|
+
const startTime = Date.now()
|
|
215
|
+
await testTask.safeRun({ value: 1 })
|
|
216
|
+
const endTime = Date.now()
|
|
217
|
+
|
|
218
|
+
// Task should complete quickly without waiting for listener
|
|
219
|
+
expect(endTime - startTime).toBeLessThan(50) // Should complete in under 50ms
|
|
220
|
+
|
|
221
|
+
// Wait for next tick to ensure listener was called
|
|
222
|
+
await new Promise(resolve => process.nextTick(resolve))
|
|
223
|
+
expect(slowListener).toHaveBeenCalledTimes(1)
|
|
224
|
+
})
|
|
225
|
+
})
|
|
226
|
+
|
|
227
|
+
describe('error handling', () => {
|
|
228
|
+
it('should catch and log listener errors without affecting task execution', async () => {
|
|
229
|
+
const errorListener = jest.fn().mockImplementation(() => {
|
|
230
|
+
throw new Error('Listener error')
|
|
231
|
+
})
|
|
232
|
+
|
|
233
|
+
Task.listenExecutionRecords(errorListener)
|
|
234
|
+
|
|
235
|
+
const schema = new Schema({
|
|
236
|
+
value: Schema.number()
|
|
237
|
+
})
|
|
238
|
+
|
|
239
|
+
const testTask = createTask({
|
|
240
|
+
schema,
|
|
241
|
+
boundaries: {},
|
|
242
|
+
fn: async (input: { value: number }) => ({ result: input.value * 2 })
|
|
243
|
+
})
|
|
244
|
+
|
|
245
|
+
const [result, error] = await testTask.safeRun({ value: 5 })
|
|
246
|
+
await new Promise(resolve => process.nextTick(resolve))
|
|
247
|
+
|
|
248
|
+
// Task should complete successfully despite listener error
|
|
249
|
+
expect(result).toEqual({ result: 10 })
|
|
250
|
+
expect(error).toBeNull()
|
|
251
|
+
|
|
252
|
+
// Listener should have been called
|
|
253
|
+
expect(errorListener).toHaveBeenCalledTimes(1)
|
|
254
|
+
|
|
255
|
+
// Error should have been logged
|
|
256
|
+
expect(consoleErrorSpy).toHaveBeenCalledWith(
|
|
257
|
+
'ExecutionRecord listener error:',
|
|
258
|
+
expect.any(Error)
|
|
259
|
+
)
|
|
260
|
+
})
|
|
261
|
+
|
|
262
|
+
it('should catch and log async listener errors', async () => {
|
|
263
|
+
const asyncErrorListener = jest.fn().mockImplementation(async () => {
|
|
264
|
+
throw new Error('Async listener error')
|
|
265
|
+
})
|
|
266
|
+
|
|
267
|
+
Task.listenExecutionRecords(asyncErrorListener)
|
|
268
|
+
|
|
269
|
+
const schema = new Schema({
|
|
270
|
+
value: Schema.number()
|
|
271
|
+
})
|
|
272
|
+
|
|
273
|
+
const testTask = createTask({
|
|
274
|
+
schema,
|
|
275
|
+
boundaries: {},
|
|
276
|
+
fn: async (input: { value: number }) => ({ result: input.value * 2 })
|
|
277
|
+
})
|
|
278
|
+
|
|
279
|
+
const [result, error] = await testTask.safeRun({ value: 3 })
|
|
280
|
+
|
|
281
|
+
// Wait a bit for the async error to be logged
|
|
282
|
+
await new Promise(resolve => setTimeout(resolve, 50))
|
|
283
|
+
|
|
284
|
+
// Task should complete successfully
|
|
285
|
+
expect(result).toEqual({ result: 6 })
|
|
286
|
+
expect(error).toBeNull()
|
|
287
|
+
|
|
288
|
+
// Error should have been logged
|
|
289
|
+
expect(consoleErrorSpy).toHaveBeenCalledWith(
|
|
290
|
+
'ExecutionRecord listener error:',
|
|
291
|
+
expect.any(Error)
|
|
292
|
+
)
|
|
293
|
+
})
|
|
294
|
+
})
|
|
295
|
+
})
|