@forgehive/task 0.1.13 → 0.2.1

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 (32) hide show
  1. package/dist/index.d.ts +37 -24
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +58 -13
  4. package/dist/index.js.map +1 -1
  5. package/dist/test/add-listener-with-boundaries.test.js +186 -181
  6. package/dist/test/add-listener-with-boundaries.test.js.map +1 -1
  7. package/dist/test/add-listener.test.js +80 -52
  8. package/dist/test/add-listener.test.js.map +1 -1
  9. package/dist/test/safe-replay-complex-boundary.test.js +36 -27
  10. package/dist/test/safe-replay-complex-boundary.test.js.map +1 -1
  11. package/dist/test/safe-replay.test.js +23 -14
  12. package/dist/test/safe-replay.test.js.map +1 -1
  13. package/dist/test/safe-run.test.js +41 -16
  14. package/dist/test/safe-run.test.js.map +1 -1
  15. package/dist/test/task-boundary-mocking.test.js +17 -7
  16. package/dist/test/task-boundary-mocking.test.js.map +1 -1
  17. package/dist/test/task-execution-log.test.d.ts +2 -0
  18. package/dist/test/task-execution-log.test.d.ts.map +1 -0
  19. package/dist/test/task-execution-log.test.js +207 -0
  20. package/dist/test/task-execution-log.test.js.map +1 -0
  21. package/dist/test/task-with-boundaries.test.js +56 -24
  22. package/dist/test/task-with-boundaries.test.js.map +1 -1
  23. package/package.json +1 -1
  24. package/src/index.ts +109 -40
  25. package/src/test/add-listener-with-boundaries.test.ts +202 -252
  26. package/src/test/add-listener.test.ts +90 -64
  27. package/src/test/safe-replay-complex-boundary.test.ts +18 -10
  28. package/src/test/safe-replay.test.ts +21 -12
  29. package/src/test/safe-run.test.ts +20 -15
  30. package/src/test/task-boundary-mocking.test.ts +8 -6
  31. package/src/test/task-execution-log.test.ts +246 -0
  32. package/src/test/task-with-boundaries.test.ts +45 -44
@@ -1,230 +1,235 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const index_1 = require("../index");
4
- describe('Listener with boundaries tests', () => {
5
- it('Should record one item and its boundaries tape', async () => {
4
+ describe('Listener with boundaries', () => {
5
+ it('Should add a listener to the task and capture boundaries', async () => {
6
6
  const tape = [];
7
- // Create a schema for the task
8
- const schema = new index_1.Schema({
9
- value: index_1.Schema.number()
10
- });
11
- // Define the boundaries
12
- const boundaries = {
13
- fetchExternalData: async () => {
14
- return { foo: false };
7
+ const task = (0, index_1.createTask)({
8
+ name: 'test',
9
+ schema: new index_1.Schema({
10
+ value: index_1.Schema.number()
11
+ }),
12
+ boundaries: {
13
+ getTen: async () => {
14
+ return 10;
15
+ }
16
+ },
17
+ fn: async (argv, boundaries) => {
18
+ const ten = await boundaries.getTen();
19
+ return { value: argv.value, foo: ten > 5 };
15
20
  }
16
- };
17
- // Create the task using createTask
18
- const task = (0, index_1.createTask)(schema, boundaries, async (argv, boundaries) => {
19
- const externalData = await boundaries.fetchExternalData();
20
- return Object.assign(Object.assign({}, externalData), argv);
21
21
  });
22
22
  task.addListener((record) => {
23
23
  tape.push(record);
24
24
  });
25
25
  await task.run({ value: 5 });
26
- expect(tape.length).toBe(1);
27
- expect(tape[0].input).toEqual({ value: 5 });
28
- expect(tape[0].output).toEqual({ value: 5, foo: false });
29
- expect(tape[0].boundaries).toEqual({
30
- fetchExternalData: [
31
- { input: [], output: { foo: false } }
32
- ]
33
- });
26
+ expect(tape).toEqual([{
27
+ input: { value: 5 },
28
+ output: { value: 5, foo: true },
29
+ boundaries: {
30
+ getTen: [{
31
+ input: [],
32
+ output: 10
33
+ }]
34
+ },
35
+ taskName: 'test',
36
+ metadata: {},
37
+ type: 'success'
38
+ }]);
34
39
  });
35
- it('Should record multiple items and their boundaries tape', async () => {
40
+ it('Should add a listener to the task and capture boundaries with error', async () => {
36
41
  const tape = [];
37
- // Create a schema for the task
38
- const schema = new index_1.Schema({
39
- value: index_1.Schema.number()
40
- });
41
- // Define the boundaries
42
- const boundaries = {
43
- fetchExternalData: async () => {
44
- return { foo: false };
42
+ const task = (0, index_1.createTask)({
43
+ name: 'test',
44
+ schema: new index_1.Schema({
45
+ value: index_1.Schema.number()
46
+ }),
47
+ boundaries: {
48
+ getTen: async () => {
49
+ throw new Error('Network error');
50
+ }
51
+ },
52
+ fn: async (argv, boundaries) => {
53
+ const ten = await boundaries.getTen();
54
+ return { value: argv.value, foo: ten > 5 };
45
55
  }
46
- };
47
- // Create the task using createTask
48
- const task = (0, index_1.createTask)(schema, boundaries, async (argv, boundaries) => {
49
- const externalData = await boundaries.fetchExternalData();
50
- return Object.assign(Object.assign({}, externalData), argv);
51
56
  });
52
57
  task.addListener((record) => {
53
58
  tape.push(record);
54
59
  });
55
- await task.run({ value: 5 });
56
- await task.run({ value: 6 });
57
- expect(tape.length).toBe(2);
58
- expect(tape[0].input).toEqual({ value: 5 });
59
- expect(tape[0].output).toEqual({ value: 5, foo: false });
60
- expect(tape[0].boundaries).toEqual({
61
- fetchExternalData: [
62
- { input: [], output: { foo: false } }
63
- ]
64
- });
65
- expect(tape[1].input).toEqual({ value: 6 });
66
- expect(tape[1].output).toEqual({ value: 6, foo: false });
67
- expect(tape[1].boundaries).toEqual({
68
- fetchExternalData: [
69
- { input: [], output: { foo: false } }
70
- ]
71
- });
60
+ try {
61
+ await task.run({ value: 5 });
62
+ }
63
+ catch (error) {
64
+ // Expected error
65
+ }
66
+ expect(tape).toEqual([{
67
+ input: { value: 5 },
68
+ error: 'Network error',
69
+ boundaries: {
70
+ getTen: [{
71
+ input: [],
72
+ error: 'Network error'
73
+ }]
74
+ },
75
+ taskName: 'test',
76
+ metadata: {},
77
+ type: 'error'
78
+ }]);
72
79
  });
73
- it('Should record error and its boundaries tape', async () => {
80
+ it('Should add a listener to the task and capture boundaries with dynamic parameters', async () => {
74
81
  const tape = [];
75
- // Create a schema for the task
76
- const schema = new index_1.Schema({
77
- value: index_1.Schema.number().optional()
78
- });
79
- // Define the boundaries
80
- const boundaries = {
81
- fetchExternalData: async () => {
82
- return { foo: false };
83
- }
84
- };
85
- // Create the task using createTask
86
- const task = (0, index_1.createTask)(schema, boundaries, async (argv, boundaries) => {
87
- const externalData = await boundaries.fetchExternalData();
88
- if (typeof argv.value === 'undefined') {
89
- throw new Error('Value is required');
82
+ const task = (0, index_1.createTask)({
83
+ name: 'test',
84
+ schema: new index_1.Schema({}),
85
+ boundaries: {
86
+ addNumbers: async (a, b) => {
87
+ return a + b;
88
+ }
89
+ },
90
+ fn: async (argv, boundaries) => {
91
+ const sum = await boundaries.addNumbers(3, 7);
92
+ return { value: sum, foo: sum > 5 };
90
93
  }
91
- return Object.assign(Object.assign({}, externalData), argv);
92
94
  });
93
95
  task.addListener((record) => {
94
96
  tape.push(record);
95
97
  });
96
- try {
97
- await task.run({});
98
- }
99
- catch (e) {
100
- // Error is expected
101
- }
102
- expect(tape.length).toBe(1);
103
- expect(tape[0].input).toEqual({});
104
- expect(tape[0].error).toBe('Value is required');
105
- expect(tape[0].boundaries).toEqual({
106
- fetchExternalData: [
107
- { input: [], output: { foo: false } }
108
- ]
109
- });
98
+ await task.run({});
99
+ expect(tape).toEqual([{
100
+ input: {},
101
+ output: { value: 10, foo: true },
102
+ boundaries: {
103
+ addNumbers: [{
104
+ input: [3, 7],
105
+ output: 10
106
+ }]
107
+ },
108
+ taskName: 'test',
109
+ metadata: {},
110
+ type: 'success'
111
+ }]);
110
112
  });
111
- it('Should record error + success and their boundaries tape', async () => {
113
+ it('Should add a listener to the task and capture boundaries with optional parameters', async () => {
112
114
  const tape = [];
113
- // Create a schema for the task
114
- const schema = new index_1.Schema({
115
- value: index_1.Schema.number().optional()
116
- });
117
- // Define the boundaries
118
- const boundaries = {
119
- fetchExternalData: async () => {
120
- return { foo: false };
121
- }
122
- };
123
- // Create the task using createTask
124
- const task = (0, index_1.createTask)(schema, boundaries, async (argv, boundaries) => {
125
- const externalData = await boundaries.fetchExternalData();
126
- if (typeof argv.value === 'undefined') {
127
- throw new Error('Value is required');
115
+ const task = (0, index_1.createTask)({
116
+ name: 'test',
117
+ schema: new index_1.Schema({
118
+ value: index_1.Schema.number().optional()
119
+ }),
120
+ boundaries: {
121
+ processValue: async (val) => {
122
+ return val || 0;
123
+ }
124
+ },
125
+ fn: async (argv, boundaries) => {
126
+ const processed = await boundaries.processValue(argv.value);
127
+ return { value: processed, foo: processed > 5 };
128
128
  }
129
- return Object.assign(Object.assign({}, externalData), argv);
130
129
  });
131
130
  task.addListener((record) => {
132
131
  tape.push(record);
133
132
  });
134
- try {
135
- await task.run({});
136
- }
137
- catch (e) {
138
- // Error is expected
139
- }
140
- await task.run({ value: 5 });
141
- expect(tape.length).toBe(2);
142
- expect(tape[0].input).toEqual({});
143
- expect(tape[0].error).toBe('Value is required');
144
- expect(tape[0].boundaries).toEqual({
145
- fetchExternalData: [
146
- { input: [], output: { foo: false } }
147
- ]
148
- });
149
- expect(tape[1].input).toEqual({ value: 5 });
150
- expect(tape[1].output).toEqual({ value: 5, foo: false });
151
- expect(tape[1].boundaries).toEqual({
152
- fetchExternalData: [
153
- { input: [], output: { foo: false } }
154
- ]
155
- });
133
+ await task.run({ value: undefined });
134
+ expect(tape).toEqual([{
135
+ input: { value: undefined },
136
+ output: { value: 0, foo: false },
137
+ boundaries: {
138
+ processValue: [{
139
+ input: [undefined],
140
+ output: 0
141
+ }]
142
+ },
143
+ taskName: 'test',
144
+ metadata: {},
145
+ type: 'success'
146
+ }]);
156
147
  });
157
- it('Should record 2 run logs if boundary called twice', async () => {
148
+ it('Should add a listener to the task and capture boundaries with multiple calls', async () => {
158
149
  const tape = [];
159
- // Create a schema for the task
160
- const schema = new index_1.Schema({
161
- value: index_1.Schema.number()
162
- });
163
- // Define the boundaries
164
- const boundaries = {
165
- fetchExternalData: async () => {
166
- return { foo: false };
150
+ const task = (0, index_1.createTask)({
151
+ name: 'test',
152
+ schema: new index_1.Schema({
153
+ value: index_1.Schema.number()
154
+ }),
155
+ boundaries: {
156
+ multiplyByTwo: async (num) => {
157
+ return num * 2;
158
+ }
159
+ },
160
+ fn: async (argv, boundaries) => {
161
+ const doubled = await boundaries.multiplyByTwo(argv.value);
162
+ const quadrupled = await boundaries.multiplyByTwo(doubled);
163
+ return { foo: quadrupled > 10 };
167
164
  }
168
- };
169
- // Create the task using createTask
170
- const task = (0, index_1.createTask)(schema, boundaries, async (argv, boundaries) => {
171
- await boundaries.fetchExternalData();
172
- await boundaries.fetchExternalData();
173
- return { foo: true };
174
165
  });
175
166
  task.addListener((record) => {
176
167
  tape.push(record);
177
168
  });
178
- await task.run({ value: 5 });
179
- expect(tape.length).toBe(1);
180
- expect(tape[0].input).toEqual({ value: 5 });
181
- expect(tape[0].output).toEqual({ foo: true });
182
- expect(tape[0].boundaries).toEqual({
183
- fetchExternalData: [
184
- { input: [], output: { foo: false } },
185
- { input: [], output: { foo: false } }
186
- ]
187
- });
169
+ await task.run({ value: 3 });
170
+ expect(tape).toEqual([{
171
+ input: { value: 3 },
172
+ output: { foo: true },
173
+ boundaries: {
174
+ multiplyByTwo: [
175
+ {
176
+ input: [3],
177
+ output: 6
178
+ },
179
+ {
180
+ input: [6],
181
+ output: 12
182
+ }
183
+ ]
184
+ },
185
+ taskName: 'test',
186
+ metadata: {},
187
+ type: 'success'
188
+ }]);
188
189
  });
189
- it('Should record 2 boundary logs', async () => {
190
+ it('Should add a listener to the task and capture boundaries with mixed results', async () => {
190
191
  const tape = [];
191
- // Create a schema for the task
192
- const schema = new index_1.Schema({
193
- value: index_1.Schema.number()
194
- });
195
- // Define the boundaries
196
- const boundaries = {
197
- add: async (value) => {
198
- return value + 1;
192
+ const task = (0, index_1.createTask)({
193
+ name: 'test',
194
+ schema: new index_1.Schema({
195
+ value: index_1.Schema.number()
196
+ }),
197
+ boundaries: {
198
+ getResult: async (num) => {
199
+ if (num > 5) {
200
+ return num * 2;
201
+ }
202
+ throw new Error('Number too small');
203
+ }
199
204
  },
200
- subtract: async (value) => {
201
- return value - 1;
205
+ fn: async (argv, boundaries) => {
206
+ let result = 0;
207
+ try {
208
+ result = await boundaries.getResult(argv.value);
209
+ }
210
+ catch (error) {
211
+ // Continue with default
212
+ }
213
+ return result;
202
214
  }
203
- };
204
- // Create the task using createTask
205
- const task = (0, index_1.createTask)(schema, boundaries, async (argv, boundaries) => {
206
- let counter = argv.value;
207
- counter = await boundaries.add(counter);
208
- counter = await boundaries.subtract(counter);
209
- counter = await boundaries.subtract(counter);
210
- return counter;
211
215
  });
212
216
  task.addListener((record) => {
213
217
  tape.push(record);
214
218
  });
215
- await task.run({ value: 5 });
216
- expect(tape.length).toBe(1);
217
- expect(tape[0].input).toEqual({ value: 5 });
218
- expect(tape[0].output).toBe(4);
219
- expect(tape[0].boundaries).toEqual({
220
- add: [
221
- { input: [5], output: 6 }
222
- ],
223
- subtract: [
224
- { input: [6], output: 5 },
225
- { input: [5], output: 4 }
226
- ]
227
- });
219
+ await task.run({ value: 3 });
220
+ expect(tape).toEqual([{
221
+ input: { value: 3 },
222
+ output: 0,
223
+ boundaries: {
224
+ getResult: [{
225
+ input: [3],
226
+ error: 'Number too small'
227
+ }]
228
+ },
229
+ taskName: 'test',
230
+ metadata: {},
231
+ type: 'success'
232
+ }]);
228
233
  });
229
234
  });
230
235
  //# sourceMappingURL=add-listener-with-boundaries.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"add-listener-with-boundaries.test.js","sourceRoot":"","sources":["../../src/test/add-listener-with-boundaries.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add-listener-with-boundaries.test.js","sourceRoot":"","sources":["../../src/test/add-listener-with-boundaries.test.ts"],"names":[],"mappings":"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"}