@forgehive/task 0.1.4 → 0.1.6

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.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=task-boundary-mocking.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-boundary-mocking.test.d.ts","sourceRoot":"","sources":["../../src/test/task-boundary-mocking.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const index_1 = require("../index");
4
+ const mock_1 = require("../utils/mock");
5
+ describe('Task boundary mocking', () => {
6
+ it('can mock specific boundaries for testing', async () => {
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 (int) => {
14
+ // This would normally fetch data from an external source
15
+ return int * 2;
16
+ }
17
+ };
18
+ // Create the task using createTask
19
+ const multiplyTask = (0, index_1.createTask)(schema, boundaries, async function ({ value }, { fetchExternalData }) {
20
+ const result = value * await fetchExternalData(value);
21
+ return result;
22
+ });
23
+ // Create mock for fetchExternalData boundary that returns a specific value
24
+ const mockFetchData = jest.fn().mockResolvedValue(5);
25
+ const wrappedMockFetchData = (0, mock_1.createMockBoundary)(mockFetchData);
26
+ // Mock only the fetchExternalData boundary, leaving logData boundary as is
27
+ multiplyTask.mockBoundary('fetchExternalData', wrappedMockFetchData);
28
+ // Run the task with mocked boundary
29
+ const result = await multiplyTask.run({ value: 3 });
30
+ // Verify the correct result was returned
31
+ // Since fetchExternalData is mocked to always return 5, result should be 3 * 5 = 15
32
+ expect(result).toBe(15);
33
+ // Verify the mock was called with correct arguments
34
+ expect(mockFetchData).toHaveBeenCalledWith(3);
35
+ expect(mockFetchData).toHaveBeenCalledTimes(1);
36
+ // Reset the mocks
37
+ multiplyTask.resetMocks();
38
+ // Run the task again, now with original boundaries
39
+ const result2 = await multiplyTask.run({ value: 3 });
40
+ // With original boundaries, result should be 3 * (3 * 2) = 18
41
+ expect(result2).toBe(18);
42
+ });
43
+ it('can mock multiple boundaries at once', async () => {
44
+ // Create a schema for the task
45
+ const schema = new index_1.Schema({
46
+ value: index_1.Schema.number()
47
+ });
48
+ // Define the boundaries
49
+ const boundaries = {
50
+ doubleValue: async (int) => {
51
+ return int * 2;
52
+ },
53
+ tripleValue: async (int) => {
54
+ return int * 3;
55
+ }
56
+ };
57
+ // Create the task
58
+ const calculateTask = (0, index_1.createTask)(schema, boundaries, async function ({ value }, { doubleValue, tripleValue }) {
59
+ const doubled = await doubleValue(value);
60
+ const tripled = await tripleValue(value);
61
+ return doubled + tripled;
62
+ });
63
+ // Create wrapped mock functions
64
+ const mockDoubleValue = jest.fn().mockResolvedValue(10);
65
+ const mockTripleValue = jest.fn().mockResolvedValue(20);
66
+ // Mock both boundaries
67
+ calculateTask.mockBoundary('doubleValue', (0, mock_1.createMockBoundary)(mockDoubleValue));
68
+ calculateTask.mockBoundary('tripleValue', (0, mock_1.createMockBoundary)(mockTripleValue));
69
+ // Run the task with both mocked boundaries
70
+ const result = await calculateTask.run({ value: 5 });
71
+ // Result should be 10 + 20 = 30
72
+ expect(result).toBe(30);
73
+ // Reset only the doubleValue mock
74
+ calculateTask.resetMock('doubleValue');
75
+ // Run the task with only tripleValue mocked
76
+ const result2 = await calculateTask.run({ value: 5 });
77
+ // Result should be (5 * 2) + 20 = 30
78
+ expect(result2).toBe(30);
79
+ // Reset all mocks
80
+ calculateTask.resetMocks();
81
+ // Run the task with original boundaries
82
+ const result3 = await calculateTask.run({ value: 5 });
83
+ // Result should be (5 * 2) + (5 * 3) = 25
84
+ expect(result3).toBe(25);
85
+ });
86
+ });
87
+ //# sourceMappingURL=task-boundary-mocking.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-boundary-mocking.test.js","sourceRoot":"","sources":["../../src/test/task-boundary-mocking.test.ts"],"names":[],"mappings":"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"}
@@ -98,5 +98,140 @@ describe('Boundaries tasks tests', () => {
98
98
  expect(six).toBe(6);
99
99
  expect(fifteen).toBe(15);
100
100
  });
101
+ it('Multiple parallel task runs with boundaries', async () => {
102
+ // Use the correct type definition for records
103
+ const records = [];
104
+ // Create a schema for the task that accepts a number
105
+ const schema = new index_1.Schema({
106
+ value: index_1.Schema.number()
107
+ });
108
+ // Define the boundaries with a function that returns different values based on input
109
+ const boundaries = {
110
+ fetchExternalData: async (int) => {
111
+ return int * 2;
112
+ }
113
+ };
114
+ // Create the task using createTask
115
+ const multiplyTask = (0, index_1.createTask)(schema, boundaries, async function ({ value }, { fetchExternalData }) {
116
+ const externalData = await fetchExternalData(value);
117
+ return value * externalData;
118
+ });
119
+ multiplyTask.addListener((record) => {
120
+ records.push(record);
121
+ });
122
+ // Run multiple tasks in parallel
123
+ const results = await Promise.all([
124
+ multiplyTask.run({ value: 2 }),
125
+ multiplyTask.run({ value: 3 }),
126
+ multiplyTask.run({ value: 4 })
127
+ ]);
128
+ // Check the results
129
+ expect(results).toEqual([8, 18, 32]);
130
+ // Test records array
131
+ // Should have exactly 3 elements (one for each task run)
132
+ expect(records.length).toBe(3);
133
+ // Sort records by input value for consistent testing
134
+ const sortedRecords = [...records].sort((a, b) => a.input.value - b.input.value);
135
+ // Check record for first task (value: 2)
136
+ expect(sortedRecords[0].input).toEqual({ value: 2 });
137
+ expect(sortedRecords[0].output).toBe(8);
138
+ // Use type assertion to access the boundary data safely
139
+ const boundaries0 = sortedRecords[0].boundaries;
140
+ expect(boundaries0.fetchExternalData).toHaveLength(1);
141
+ expect(boundaries0.fetchExternalData[0].input).toEqual([2]);
142
+ expect(boundaries0.fetchExternalData[0].output).toBe(4);
143
+ // Check record for second task (value: 3)
144
+ expect(sortedRecords[1].input).toEqual({ value: 3 });
145
+ expect(sortedRecords[1].output).toBe(18);
146
+ // Use type assertion to access the boundary data safely
147
+ const boundaries1 = sortedRecords[1].boundaries;
148
+ expect(boundaries1.fetchExternalData).toHaveLength(1);
149
+ expect(boundaries1.fetchExternalData[0].input).toEqual([3]);
150
+ expect(boundaries1.fetchExternalData[0].output).toBe(6);
151
+ // Check record for third task (value: 4)
152
+ expect(sortedRecords[2].input).toEqual({ value: 4 });
153
+ expect(sortedRecords[2].output).toBe(32);
154
+ // Use type assertion to access the boundary data safely
155
+ const boundaries2 = sortedRecords[2].boundaries;
156
+ expect(boundaries2.fetchExternalData).toHaveLength(1);
157
+ expect(boundaries2.fetchExternalData[0].input).toEqual([4]);
158
+ expect(boundaries2.fetchExternalData[0].output).toBe(8);
159
+ });
160
+ it('Boundary data accumulates run data correctly', async () => {
161
+ // Create a schema for the task that accepts a number
162
+ const schema = new index_1.Schema({
163
+ value: index_1.Schema.number()
164
+ });
165
+ // Define the boundaries
166
+ const boundaries = {
167
+ fetchExternalData: async (int) => {
168
+ return int * 2;
169
+ }
170
+ };
171
+ // Create the task using createTask
172
+ const multiplyTask = (0, index_1.createTask)(schema, boundaries, async function ({ value }, { fetchExternalData }) {
173
+ const externalData = await fetchExternalData(value);
174
+ return value * externalData;
175
+ });
176
+ // Run task with value 2
177
+ await multiplyTask.run({ value: 2 });
178
+ // Get boundary data after first run
179
+ const boundariesData1 = multiplyTask.getBondariesData();
180
+ // Verify data structure
181
+ expect(boundariesData1).toHaveProperty('fetchExternalData');
182
+ expect(Array.isArray(boundariesData1.fetchExternalData)).toBe(true);
183
+ expect(boundariesData1.fetchExternalData).toHaveLength(1);
184
+ // Verify the tape entry for first run
185
+ const firstRunTape = boundariesData1.fetchExternalData;
186
+ expect(firstRunTape[0].input).toEqual([2]);
187
+ expect(firstRunTape[0].output).toBe(4);
188
+ // Run task with value 3
189
+ await multiplyTask.run({ value: 3 });
190
+ // Get boundary data after second run
191
+ const boundariesData2 = multiplyTask.getBondariesData();
192
+ // Tape should now have 2 entries
193
+ expect(boundariesData2.fetchExternalData).toHaveLength(2);
194
+ // Sort the tape by input value for consistent testing
195
+ const secondRunTape = boundariesData2.fetchExternalData;
196
+ const sortedTape = [...secondRunTape].sort((a, b) => a.input[0] - b.input[0]);
197
+ // First entry should still be the same
198
+ expect(sortedTape[0].input).toEqual([2]);
199
+ expect(sortedTape[0].output).toBe(4);
200
+ // Second entry should be from the second run
201
+ expect(sortedTape[1].input).toEqual([3]);
202
+ expect(sortedTape[1].output).toBe(6);
203
+ // Run task with value 4
204
+ await multiplyTask.run({ value: 4 });
205
+ // Get boundary data after third run
206
+ const boundariesData3 = multiplyTask.getBondariesData();
207
+ // Tape should now have 3 entries
208
+ expect(boundariesData3.fetchExternalData).toHaveLength(3);
209
+ // Sort the tape again
210
+ const thirdRunTape = boundariesData3.fetchExternalData;
211
+ const finalSortedTape = [...thirdRunTape].sort((a, b) => a.input[0] - b.input[0]);
212
+ // Verify all three entries
213
+ expect(finalSortedTape[0].input).toEqual([2]);
214
+ expect(finalSortedTape[0].output).toBe(4);
215
+ expect(finalSortedTape[1].input).toEqual([3]);
216
+ expect(finalSortedTape[1].output).toBe(6);
217
+ expect(finalSortedTape[2].input).toEqual([4]);
218
+ expect(finalSortedTape[2].output).toBe(8);
219
+ // Verify tape can be used for replay in proxy-pass mode
220
+ const replayTask = (0, index_1.createTask)(schema, boundaries, async function ({ value }, { fetchExternalData }) {
221
+ const externalData = await fetchExternalData(value);
222
+ return value * externalData;
223
+ }, {
224
+ boundariesData: boundariesData3,
225
+ mode: 'proxy-pass'
226
+ });
227
+ // Run task with all three values from the tape
228
+ const result2 = await replayTask.run({ value: 2 });
229
+ const result3 = await replayTask.run({ value: 3 });
230
+ const result4 = await replayTask.run({ value: 4 });
231
+ // Results should match original runs
232
+ expect(result2).toBe(8);
233
+ expect(result3).toBe(18);
234
+ expect(result4).toBe(32);
235
+ });
101
236
  });
102
237
  //# sourceMappingURL=task-with-boundaries.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"task-with-boundaries.test.js","sourceRoot":"","sources":["../../src/test/task-with-boundaries.test.ts"],"names":[],"mappings":";;AAAA,oCAA6C;AAE7C,iDAAiD;AACjD,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,+BAA+B;QAC/B,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,EAAE,CAAC,CAAA;QAE7B,wBAAwB;QACxB,MAAM,UAAU,GAAG;YACjB,iBAAiB,EAAE,KAAK,IAA+B,EAAE;gBACvD,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAA;YACvB,CAAC;SACF,CAAA;QAED,mCAAmC;QACnC,MAAM,SAAS,GAAG,IAAA,kBAAU,EAC1B,MAAM,EACN,UAAU,EACV,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;YACzB,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,iBAAiB,EAAE,CAAA;YACzD,uCAAY,YAAY,GAAK,IAAI,EAAE;QACrC,CAAC,CACF,CAAA;QAED,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAA;QACjD,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAA;QAElD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;QACjD,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACxB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,+BAA+B;QAC/B,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,EAAE,CAAC,CAAA;QAE7B,wBAAwB;QACxB,MAAM,UAAU,GAAG;YACjB,iBAAiB,EAAE,KAAK,IAA+B,EAAE;gBACvD,gFAAgF;gBAChF,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAA;YACvB,CAAC;SACF,CAAA;QAED,uDAAuD;QACvD,MAAM,SAAS,GAAG,IAAA,kBAAU,EAC1B,MAAM,EACN,UAAU,EACV,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;YACzB,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,iBAAiB,EAAE,CAAA;YACzD,uCAAY,YAAY,GAAK,IAAI,EAAE;QACrC,CAAC,EACD;YACE,cAAc,EAAE;gBACd,iBAAiB,EAAE;oBACjB,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;iBACtC;aACF;YACD,IAAI,EAAE,YAAY;SACnB,CACF,CAAA;QAED,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAA;QACjD,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAA;QAElD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;QACjD,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACxB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,qDAAqD;QACrD,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC;YACxB,KAAK,EAAE,cAAM,CAAC,MAAM,EAAE;SACvB,CAAC,CAAA;QAEF,wBAAwB;QACxB,MAAM,UAAU,GAAG;YACjB,iBAAiB,EAAE,KAAK,EAAE,GAAW,EAAmB,EAAE;gBACxD,OAAO,GAAG,GAAG,CAAC,CAAA;YAChB,CAAC;SACF,CAAA;QAED,mCAAmC;QACnC,MAAM,GAAG,GAAG,IAAA,kBAAU,EACpB,MAAM,EACN,UAAU,EACV,KAAK,WAAW,IAAI,EAAE,UAAU;YAC9B,MAAM,YAAY,GAAW,MAAM,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAA;YAClE,OAAO,IAAI,CAAC,KAAK,GAAG,YAAY,CAAA;QAClC,CAAC,CACF,CAAA;QAED,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;QACvC,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;QAEzC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACvB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,qDAAqD;QACrD,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC;YACxB,KAAK,EAAE,cAAM,CAAC,MAAM,EAAE;SACvB,CAAC,CAAA;QAEF,wBAAwB;QACxB,MAAM,UAAU,GAAG;YACjB,iBAAiB,EAAE,KAAK,EAAE,GAAW,EAAmB,EAAE;gBACxD,OAAO,GAAG,GAAG,CAAC,CAAA;YAChB,CAAC;SACF,CAAA;QAED,uDAAuD;QACvD,MAAM,GAAG,GAAG,IAAA,kBAAU,EACpB,MAAM,EACN,UAAU,EACV,KAAK,WAAW,IAAI,EAAE,UAAU;YAC9B,MAAM,YAAY,GAAW,MAAM,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC3E,OAAO,IAAI,CAAC,KAAK,GAAG,YAAY,CAAA;QAClC,CAAC,EACD;YACE,cAAc,EAAE;gBACd,iBAAiB,EAAE;oBACjB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;iBAC1B;aACF;YACD,IAAI,EAAE,YAAY;SACnB,CACF,CAAA;QAED,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA,CAAC,iBAAiB;QACzD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;QAE3C,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC1B,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"task-with-boundaries.test.js","sourceRoot":"","sources":["../../src/test/task-with-boundaries.test.ts"],"names":[],"mappings":"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"}
@@ -29,8 +29,20 @@ describe('Validation tests', () => {
29
29
  expect('no error thrown').toBeUndefined();
30
30
  }
31
31
  catch (e) {
32
- // Test passes if we get here
33
- expect(e).toBeDefined();
32
+ const error = e;
33
+ expect(error.message).toEqual('Invalid input on: value: Expected number, received null');
34
+ }
35
+ });
36
+ it('Should provide detailed error messages', async () => {
37
+ try {
38
+ await task.run({ value: 'null' });
39
+ // If we get here, the test should fail
40
+ expect('no error thrown').toBeUndefined();
41
+ }
42
+ catch (e) {
43
+ const error = e;
44
+ // Test the error message format
45
+ expect(error.message).toEqual('Invalid input on: value: Expected number, received string');
34
46
  }
35
47
  });
36
48
  it('Should work well', async () => {
@@ -42,7 +54,7 @@ describe('Validation tests on param', () => {
42
54
  let task;
43
55
  beforeEach(() => {
44
56
  const schema = new schema_1.Schema({
45
- value: schema_1.Schema.number()
57
+ name: schema_1.Schema.string()
46
58
  });
47
59
  task = new index_1.Task(function (argv) {
48
60
  return argv;
@@ -51,32 +63,27 @@ describe('Validation tests on param', () => {
51
63
  });
52
64
  });
53
65
  it('Should be invalid', () => {
54
- const check = task.isValid({ value: null });
66
+ const check = task.isValid({ name: null });
55
67
  expect(check).toBe(false);
56
68
  });
57
69
  it('Should be valid', () => {
58
- const check = task.isValid({ value: 5 });
70
+ const check = task.isValid({ name: 'John Doe' });
59
71
  expect(check).toBe(true);
60
72
  });
61
73
  it('Should validate data as part of run function', async () => {
62
74
  try {
63
- await task.run({ value: null });
75
+ await task.run({ name: null });
64
76
  // If we get here, the test should fail
65
77
  expect('no error thrown').toBeUndefined();
66
78
  }
67
79
  catch (e) {
68
- // Test passes if we get here
69
- expect(e).toBeDefined();
80
+ const error = e;
81
+ expect(error.message).toEqual('Invalid input on: name: Expected string, received null');
70
82
  }
71
83
  });
72
84
  it('Should work well', async () => {
73
- try {
74
- const result = await task.run({ value: 5 });
75
- expect(result.value).toBe(5);
76
- }
77
- catch (e) {
78
- expect('error thrown: ' + e).toBeUndefined();
79
- }
85
+ const result = await task.run({ name: 'John Doe' });
86
+ expect(result.name).toBe('John Doe');
80
87
  });
81
88
  });
82
89
  describe('Validation multiple values tests', () => {
@@ -99,8 +106,8 @@ describe('Validation multiple values tests', () => {
99
106
  expect('no error thrown').toBeUndefined();
100
107
  }
101
108
  catch (e) {
102
- // Test passes if we get here
103
- expect(e).toBeDefined();
109
+ const error = e;
110
+ expect(error.message).toEqual('Invalid input on: value: Expected number, received null, increment: Required');
104
111
  }
105
112
  });
106
113
  it('Should be on both invalid but fail in increment', async () => {
@@ -110,8 +117,8 @@ describe('Validation multiple values tests', () => {
110
117
  expect('no error thrown').toBeUndefined();
111
118
  }
112
119
  catch (e) {
113
- // Test passes if we get here
114
- expect(e).toBeDefined();
120
+ const error = e;
121
+ expect(error.message).toEqual('Invalid input on: increment: Required');
115
122
  }
116
123
  });
117
124
  it('Should work well', async () => {
@@ -163,4 +170,155 @@ describe('Set Schema', () => {
163
170
  expect(schema).toBeUndefined();
164
171
  });
165
172
  });
173
+ describe('Multiple validation errors', () => {
174
+ let task;
175
+ beforeEach(() => {
176
+ const schema = new schema_1.Schema({
177
+ name: schema_1.Schema.string(),
178
+ age: schema_1.Schema.number(),
179
+ email: schema_1.Schema.string().email()
180
+ });
181
+ task = new index_1.Task(function (argv) {
182
+ return argv;
183
+ }, {
184
+ schema
185
+ });
186
+ });
187
+ it('Should report all validation errors', async () => {
188
+ try {
189
+ await task.run({ name: 123, age: 'twenty', email: 'invalid-email' });
190
+ // If we get here, the test should fail
191
+ expect('no error thrown').toBeUndefined();
192
+ }
193
+ catch (e) {
194
+ const error = e;
195
+ // Test that multiple errors are reported
196
+ expect(error.message).toContain('Invalid input on');
197
+ expect(error.message).toContain('name: Expected string, received number');
198
+ expect(error.message).toContain('age: Expected number, received string');
199
+ expect(error.message).toContain('email: Invalid email');
200
+ }
201
+ });
202
+ });
203
+ describe('Array validation tests', () => {
204
+ let task;
205
+ beforeEach(() => {
206
+ const schema = new schema_1.Schema({
207
+ tags: schema_1.Schema.array(schema_1.Schema.string())
208
+ });
209
+ task = new index_1.Task(function (argv) {
210
+ return argv;
211
+ }, {
212
+ schema
213
+ });
214
+ });
215
+ it('Should be invalid with non-array value', () => {
216
+ const check = task.isValid({ tags: 'not an array' });
217
+ expect(check).toBe(false);
218
+ });
219
+ it('Should be invalid with array containing non-string items', () => {
220
+ const check = task.isValid({ tags: ['valid', 123, true] });
221
+ expect(check).toBe(false);
222
+ });
223
+ it('Should be valid with string array', () => {
224
+ const check = task.isValid({ tags: ['tag1', 'tag2', 'tag3'] });
225
+ expect(check).toBe(true);
226
+ });
227
+ it('Should validate array data on run', async () => {
228
+ try {
229
+ await task.run({ tags: 'not an array' });
230
+ // If we get here, the test should fail
231
+ expect('no error thrown').toBeUndefined();
232
+ }
233
+ catch (e) {
234
+ const error = e;
235
+ expect(error.message).toEqual('Invalid input on: tags: Expected array, received string');
236
+ }
237
+ });
238
+ it('Should validate array items on run', async () => {
239
+ try {
240
+ await task.run({ tags: ['valid', 123, true] });
241
+ // If we get here, the test should fail
242
+ expect('no error thrown').toBeUndefined();
243
+ }
244
+ catch (e) {
245
+ const error = e;
246
+ expect(error.message).toContain('Invalid input on');
247
+ expect(error.message).toContain('tags.1: Expected string, received number');
248
+ expect(error.message).toContain('tags.2: Expected string, received boolean');
249
+ }
250
+ });
251
+ it('Should work with valid string array', async () => {
252
+ const result = await task.run({ tags: ['tag1', 'tag2', 'tag3'] });
253
+ expect(result.tags).toEqual(['tag1', 'tag2', 'tag3']);
254
+ });
255
+ });
256
+ describe('MixedRecord validation tests', () => {
257
+ let task;
258
+ beforeEach(() => {
259
+ const schema = new schema_1.Schema({
260
+ metadata: schema_1.Schema.mixedRecord()
261
+ });
262
+ task = new index_1.Task(function (argv) {
263
+ return argv;
264
+ }, {
265
+ schema
266
+ });
267
+ });
268
+ it('Should be invalid with non-object value', () => {
269
+ const check = task.isValid({ metadata: 'not an object' });
270
+ expect(check).toBe(false);
271
+ });
272
+ it('Should be invalid with non-string keys', () => {
273
+ // In JavaScript, object keys are always coerced to strings, so this actually becomes a valid record
274
+ // with a string key "123"
275
+ const check = task.isValid({ metadata: { 123: 'value' } });
276
+ expect(check).toBe(true);
277
+ });
278
+ it('Should be valid with mixed value types', () => {
279
+ const check = task.isValid({
280
+ metadata: {
281
+ stringValue: 'text',
282
+ numberValue: 42,
283
+ booleanValue: true
284
+ }
285
+ });
286
+ expect(check).toBe(true);
287
+ });
288
+ it('Should validate record type on run', async () => {
289
+ try {
290
+ await task.run({ metadata: 'not an object' });
291
+ // If we get here, the test should fail
292
+ expect('no error thrown').toBeUndefined();
293
+ }
294
+ catch (e) {
295
+ const error = e;
296
+ expect(error.message).toEqual('Invalid input on: metadata: Expected object, received string');
297
+ }
298
+ });
299
+ it('Should validate value types on run', async () => {
300
+ try {
301
+ await task.run({ metadata: { valid: 'string', invalid: { nested: 'object' } } });
302
+ // If we get here, the test should fail
303
+ expect('no error thrown').toBeUndefined();
304
+ }
305
+ catch (e) {
306
+ const error = e;
307
+ expect(error.message).toContain('Invalid input on');
308
+ // The actual error message from Zod for this case
309
+ expect(error.message).toContain('metadata.invalid: Invalid input');
310
+ }
311
+ });
312
+ it('Should work with valid mixed record', async () => {
313
+ const validData = {
314
+ metadata: {
315
+ stringValue: 'text',
316
+ numberValue: 42,
317
+ booleanValue: true
318
+ }
319
+ };
320
+ const result = await task.run(validData);
321
+ expect(result).toEqual(validData);
322
+ });
323
+ });
166
324
  //# sourceMappingURL=validation.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.test.js","sourceRoot":"","sources":["../../src/test/validation.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.test.js","sourceRoot":"","sources":["../../src/test/validation.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { type WrappedBoundaryFunction, type Mode, type BoundaryRecord } from './boundary';
2
+ /**
3
+ * Creates a wrapped boundary function from any function
4
+ * This is framework-agnostic and can be used with or without testing libraries like Jest
5
+ *
6
+ * @param fn The function to wrap as a boundary
7
+ * @param options Optional configuration for the mock boundary
8
+ * @returns A function wrapped as a WrappedBoundaryFunction
9
+ */
10
+ export declare function createMockBoundary<T extends (...args: unknown[]) => unknown>(fn: T, options?: {
11
+ getTape?: () => Array<BoundaryRecord>;
12
+ setTape?: (tape: Array<BoundaryRecord>) => void;
13
+ getMode?: () => Mode;
14
+ setMode?: (mode: Mode) => void;
15
+ getRunData?: () => Array<BoundaryRecord>;
16
+ }): WrappedBoundaryFunction;
17
+ //# sourceMappingURL=mock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../src/utils/mock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,uBAAuB,EAAE,KAAK,IAAI,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAA;AAEzF;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EAC1E,EAAE,EAAE,CAAC,EACL,OAAO,GAAE;IACP,OAAO,CAAC,EAAE,MAAM,KAAK,CAAC,cAAc,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IAChD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,KAAK,CAAC,cAAc,CAAC,CAAA;CACpC,GACL,uBAAuB,CAyBzB"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createMockBoundary = createMockBoundary;
4
+ /**
5
+ * Creates a wrapped boundary function from any function
6
+ * This is framework-agnostic and can be used with or without testing libraries like Jest
7
+ *
8
+ * @param fn The function to wrap as a boundary
9
+ * @param options Optional configuration for the mock boundary
10
+ * @returns A function wrapped as a WrappedBoundaryFunction
11
+ */
12
+ function createMockBoundary(fn, options = {}) {
13
+ // Use provided functions or create simple implementations
14
+ const mockGetTape = options.getTape || (() => []);
15
+ const mockSetTape = options.setTape || ((_tape) => { });
16
+ const mockGetMode = options.getMode || (() => 'proxy');
17
+ const mockSetMode = options.setMode || ((_mode) => { });
18
+ const mockGetRunData = options.getRunData || (() => []);
19
+ // Empty functions for start/stop run
20
+ const mockStartRun = () => { };
21
+ const mockStopRun = () => { };
22
+ // Cast the function to a WrappedBoundaryFunction
23
+ const wrappedFn = fn;
24
+ // Add required methods to satisfy the interface
25
+ wrappedFn.getTape = mockGetTape;
26
+ wrappedFn.setTape = mockSetTape;
27
+ wrappedFn.getMode = mockGetMode;
28
+ wrappedFn.setMode = mockSetMode;
29
+ wrappedFn.startRun = mockStartRun;
30
+ wrappedFn.stopRun = mockStopRun;
31
+ wrappedFn.getRunData = mockGetRunData;
32
+ return wrappedFn;
33
+ }
34
+ //# sourceMappingURL=mock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock.js","sourceRoot":"","sources":["../../src/utils/mock.ts"],"names":[],"mappings":";;AAUA,gDAkCC;AA1CD;;;;;;;GAOG;AACH,SAAgB,kBAAkB,CAChC,EAAK,EACL,UAMI,EAAE;IAEN,0DAA0D;IAC1D,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,GAAqB,EAAE,CAAC,EAAE,CAAC,CAAA;IACnE,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,KAAuB,EAAQ,EAAE,GAAE,CAAC,CAAC,CAAA;IAC9E,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,GAAS,EAAE,CAAC,OAAO,CAAC,CAAA;IAC5D,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,KAAW,EAAQ,EAAE,GAAE,CAAC,CAAC,CAAA;IAClE,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,GAAqB,EAAE,CAAC,EAAE,CAAC,CAAA;IAEzE,qCAAqC;IACrC,MAAM,YAAY,GAAG,GAAS,EAAE,GAAE,CAAC,CAAA;IACnC,MAAM,WAAW,GAAG,GAAS,EAAE,GAAE,CAAC,CAAA;IAElC,iDAAiD;IACjD,MAAM,SAAS,GAAG,EAAwC,CAAA;IAE1D,gDAAgD;IAChD,SAAS,CAAC,OAAO,GAAG,WAAW,CAAA;IAC/B,SAAS,CAAC,OAAO,GAAG,WAAW,CAAA;IAC/B,SAAS,CAAC,OAAO,GAAG,WAAW,CAAA;IAC/B,SAAS,CAAC,OAAO,GAAG,WAAW,CAAA;IAC/B,SAAS,CAAC,QAAQ,GAAG,YAAY,CAAA;IACjC,SAAS,CAAC,OAAO,GAAG,WAAW,CAAA;IAC/B,SAAS,CAAC,UAAU,GAAG,cAAc,CAAA;IAErC,OAAO,SAAS,CAAA;AAClB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forgehive/task",
3
- "version": "0.1.4",
3
+ "version": "0.1.6",
4
4
  "license": "MIT",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",