@forgehive/task 0.1.5 → 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.
- package/dist/index.d.ts +27 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +149 -69
- package/dist/index.js.map +1 -1
- package/dist/test/safe-run.test.d.ts +2 -0
- package/dist/test/safe-run.test.d.ts.map +1 -0
- package/dist/test/safe-run.test.js +159 -0
- package/dist/test/safe-run.test.js.map +1 -0
- package/dist/test/task-boundary-mocking.test.d.ts +2 -0
- package/dist/test/task-boundary-mocking.test.d.ts.map +1 -0
- package/dist/test/task-boundary-mocking.test.js +87 -0
- package/dist/test/task-boundary-mocking.test.js.map +1 -0
- package/dist/test/task-with-boundaries.test.js +135 -0
- package/dist/test/task-with-boundaries.test.js.map +1 -1
- package/dist/utils/mock.d.ts +17 -0
- package/dist/utils/mock.d.ts.map +1 -0
- package/dist/utils/mock.js +34 -0
- package/dist/utils/mock.js.map +1 -0
- package/package.json +1 -1
- package/src/index.ts +183 -93
- package/src/test/safe-run.test.ts +214 -0
- package/src/test/task-boundary-mocking.test.ts +116 -0
- package/src/test/task-with-boundaries.test.ts +198 -1
- package/src/utils/mock.ts +45 -0
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Schema, type SchemaType, type InferSchema, type SchemaDescription } from '@forgehive/schema';
|
|
2
|
-
import { type Mode, type Boundaries, type WrappedBoundaries } from './utils/boundary';
|
|
2
|
+
import { type Mode, type Boundaries, type WrappedBoundaries, type WrappedBoundaryFunction } from './utils/boundary';
|
|
3
3
|
export interface Task {
|
|
4
4
|
id: string;
|
|
5
5
|
title: string;
|
|
@@ -44,12 +44,18 @@ export interface TaskInstanceType<Func extends BaseFunction = BaseFunction, B ex
|
|
|
44
44
|
getBoundaries: () => WrappedBoundaries<B>;
|
|
45
45
|
setBoundariesData: (boundariesData: Record<string, unknown>) => void;
|
|
46
46
|
getBondariesData: () => Record<string, unknown>;
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
mockBoundary: <K extends keyof B>(name: K, mockFn: WrappedBoundaryFunction) => void;
|
|
48
|
+
resetMock: <K extends keyof B>(name: K) => void;
|
|
49
|
+
resetMocks: () => void;
|
|
49
50
|
run: (argv?: Parameters<Func>[0]) => Promise<ReturnType<Func>>;
|
|
51
|
+
safeRun: (argv?: Parameters<Func>[0]) => Promise<[Error | null, ReturnType<Func> | null, Record<string, unknown> | null]>;
|
|
50
52
|
}
|
|
51
53
|
export type InferSchemaType<S> = S extends Schema<any> ? InferSchema<S> : Record<string, unknown>;
|
|
52
54
|
export type TaskFunction<S, B extends Boundaries> = (argv: InferSchemaType<S>, boundaries: WrappedBoundaries<B>) => Promise<any>;
|
|
55
|
+
type BoundaryData = Array<{
|
|
56
|
+
input: unknown[];
|
|
57
|
+
output?: unknown;
|
|
58
|
+
}>;
|
|
53
59
|
export declare const Task: {
|
|
54
60
|
new <B extends Boundaries = Boundaries, Func extends BaseFunction = BaseFunction>(fn: Func, conf?: TaskConfig<B>): {
|
|
55
61
|
_fn: Func;
|
|
@@ -57,8 +63,9 @@ export declare const Task: {
|
|
|
57
63
|
_coolDown: number;
|
|
58
64
|
_description?: string;
|
|
59
65
|
_boundariesDefinition: B;
|
|
60
|
-
_boundaries: WrappedBoundaries<B>;
|
|
61
66
|
_boundariesData: Record<string, unknown> | null;
|
|
67
|
+
_accumulatedBoundariesData: Record<string, BoundaryData>;
|
|
68
|
+
_boundaryMocks: Record<string, WrappedBoundaryFunction>;
|
|
62
69
|
_schema: Schema<Record<string, SchemaType>> | undefined;
|
|
63
70
|
_listener?: ((record: TaskRecord<Parameters<Func>[0], ReturnType<Func>>) => void) | undefined;
|
|
64
71
|
getMode(): Mode;
|
|
@@ -76,14 +83,28 @@ export declare const Task: {
|
|
|
76
83
|
getBoundaries(): WrappedBoundaries<B>;
|
|
77
84
|
setBoundariesData(boundariesData: Record<string, unknown>): void;
|
|
78
85
|
getBondariesData(): Record<string, unknown>;
|
|
86
|
+
/**
|
|
87
|
+
* Mocks a specific boundary function for testing
|
|
88
|
+
* @param name The name of the boundary to mock
|
|
89
|
+
* @param mockFn The mock function to use
|
|
90
|
+
*/
|
|
91
|
+
mockBoundary<K extends keyof B>(name: K, mockFn: WrappedBoundaryFunction): void;
|
|
92
|
+
/**
|
|
93
|
+
* Resets a specific mocked boundary back to its original function
|
|
94
|
+
* @param name The name of the boundary to reset
|
|
95
|
+
*/
|
|
96
|
+
resetMock<K extends keyof B>(name: K): void;
|
|
97
|
+
/**
|
|
98
|
+
* Resets all mocked boundaries back to their original functions
|
|
99
|
+
*/
|
|
100
|
+
resetMocks(): void;
|
|
79
101
|
_createBounderies({ definition, baseData, mode }: {
|
|
80
102
|
definition: B;
|
|
81
103
|
baseData: Record<string, unknown> | null;
|
|
82
104
|
mode?: Mode;
|
|
83
105
|
}): WrappedBoundaries<B>;
|
|
84
|
-
getBondariesRunLog(): Record<string, unknown>;
|
|
85
|
-
startRunLog(): void;
|
|
86
106
|
asBoundary(): (args: Parameters<Func>[0]) => Promise<ReturnType<Func>>;
|
|
107
|
+
safeRun(argv?: Parameters<Func>[0]): Promise<[Error | null, ReturnType<Func> | null, Record<string, unknown> | null]>;
|
|
87
108
|
run(argv?: Parameters<Func>[0]): Promise<ReturnType<Func>>;
|
|
88
109
|
};
|
|
89
110
|
};
|
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,EAAkB,KAAK,IAAI,EAAE,KAAK,UAAU,EAAE,KAAK,iBAAiB,
|
|
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,EAAkB,KAAK,IAAI,EAAE,KAAK,UAAU,EAAE,KAAK,iBAAiB,EAAE,KAAK,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAEnI,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,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,UAAU,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAGtH,OAAO,EAAE,MAAM,EAAE,CAAA;AAEjB,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU;IAC3D,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,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACzC;AAGD;;GAEG;AACH,MAAM,WAAW,UAAU,CAAC,SAAS,GAAG,OAAO,EAAE,UAAU,GAAG,OAAO;IACnE,6CAA6C;IAC7C,KAAK,EAAE,SAAS,CAAC;IACjB,sDAAsD;IACtD,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,gBAAgB,CAAC,IAAI,SAAS,YAAY,GAAG,YAAY,EAAE,CAAC,SAAS,UAAU,GAAG,UAAU;IAC3G,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;IAC7B,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,KAAK,IAAI,CAAA;IAC7D,SAAS,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,GAAG,SAAS,CAAA;IAC/D,cAAc,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7C,cAAc,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;IACxC,QAAQ,EAAE,MAAM,iBAAiB,CAAA;IAGjC,QAAQ,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,SAAS,CAAA;IACxJ,OAAO,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,OAAO,CAAA;IAGvF,WAAW,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,KAAK,IAAI,CAAA;IAC5G,cAAc,EAAE,MAAM,IAAI,CAAA;IAC1B,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,CAAA;IAGzC,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;IAC1E,aAAa,EAAE,MAAM,iBAAiB,CAAC,CAAC,CAAC,CAAA;IACzC,iBAAiB,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IACpE,gBAAgB,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAG/C,YAAY,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,uBAAuB,KAAK,IAAI,CAAA;IACnF,SAAS,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,CAAA;IAC/C,UAAU,EAAE,MAAM,IAAI,CAAA;IAEtB,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;IAC9D,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,KAAK,GAAG,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;CAC1H;AAID,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAGlG,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,UAAU,IAE9C,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAG/E,KAAK,YAAY,GAAG,KAAK,CAAC;IAAC,KAAK,EAAE,OAAO,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAC,CAAC,CAAA;AAE/D,eAAO,MAAM,IAAI;SACf,CAAC,SAAS,UAAU,eACpB,IAAI,SAAS,YAAY,qBAiBR,IAAI,SAAQ,UAAU,CAAC,CAAC,CAAC;aAfrC,IAAI;eACF,IAAI;mBACA,MAAM;uBACF,MAAM;+BAEE,CAAC;yBACP,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;oCACnB,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC;wBAGxC,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC;iBAE9C,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,GAAG,SAAS;oBAC3C,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS;mBA2CjF,IAAI;sBAID,IAAI,GAAG,IAAI;0BAIP,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,GAAG,IAAI;qBAI9C,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,GAAG,SAAS;oCAIhC,MAAM,GAAG,IAAI;0BAIvB,MAAM,GAAG,SAAS;oBAIxB,iBAAiB;iBAIpB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,+BAA+B,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,SAAS;gBAU5I,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,+BAA+B,CAAC,GAAG,OAAO;oBAUvE,CAAC,wBAAwB,CAAC,yBAAyB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;0BAIrF,IAAI;mBAQX,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI;yBAMpB,iBAAiB,CAAC,CAAC,CAAC;0CASH,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;4BAc5C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;QAI5C;;;;WAIG;qBACU,CAAC,SAAS,MAAM,CAAC,QAAQ,CAAC,UAAU,uBAAuB,GAAG,IAAI;QAI/E;;;WAGG;kBACO,CAAC,SAAS,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI;QAM3C;;WAEG;sBACW,IAAI;0DAQf;YACD,UAAU,EAAE,CAAC,CAAC;YACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;YACzC,IAAI,CAAC,EAAE,IAAI,CAAC;SACb,GAAG,iBAAiB,CAAC,CAAC,CAAC;sBA2BT,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;uBAMjD,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,KAAK,GAAG,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;mBAqH1G,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;;CASlE,CAAA;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,EAC5C,CAAC,SAAS,UAAU,EACpB,CAAC,EAED,MAAM,EAAE,CAAC,EACT,UAAU,EAAE,CAAC,EACb,EAAE,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAC9E,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC,GACpD,gBAAgB,CAAC,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CASjG"}
|
package/dist/index.js
CHANGED
|
@@ -13,6 +13,9 @@ const Task = class Task {
|
|
|
13
13
|
boundariesData: undefined
|
|
14
14
|
}) {
|
|
15
15
|
var _a, _b, _c;
|
|
16
|
+
this._accumulatedBoundariesData = {};
|
|
17
|
+
// For storing mocks
|
|
18
|
+
this._boundaryMocks = {};
|
|
16
19
|
this._fn = fn;
|
|
17
20
|
this._schema = undefined;
|
|
18
21
|
if (typeof conf.schema !== 'undefined') {
|
|
@@ -23,22 +26,29 @@ const Task = class Task {
|
|
|
23
26
|
this._listener = undefined;
|
|
24
27
|
// Cool down time before killing the process on cli runner
|
|
25
28
|
this._coolDown = 1000;
|
|
26
|
-
//
|
|
29
|
+
// Initialize boundaries data
|
|
27
30
|
this._boundariesData = (_c = conf.boundariesData) !== null && _c !== void 0 ? _c : null;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
// Initialize empty accumulated boundaries data structure
|
|
32
|
+
for (const name in this._boundariesDefinition) {
|
|
33
|
+
this._accumulatedBoundariesData[name] = [];
|
|
34
|
+
}
|
|
35
|
+
// Initialize accumulated boundaries data from initial boundaries data
|
|
36
|
+
if (this._boundariesData) {
|
|
37
|
+
// Type assertion to handle initial data safely
|
|
38
|
+
for (const name in this._boundariesData) {
|
|
39
|
+
if (Array.isArray(this._boundariesData[name])) {
|
|
40
|
+
this._accumulatedBoundariesData[name] = this._boundariesData[name];
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
this._accumulatedBoundariesData[name] = [];
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
33
47
|
}
|
|
34
48
|
getMode() {
|
|
35
49
|
return this._mode;
|
|
36
50
|
}
|
|
37
51
|
setMode(mode) {
|
|
38
|
-
for (const name in this._boundaries) {
|
|
39
|
-
const boundary = this._boundaries[name];
|
|
40
|
-
boundary.setMode(mode);
|
|
41
|
-
}
|
|
42
52
|
this._mode = mode;
|
|
43
53
|
}
|
|
44
54
|
setSchema(schema) {
|
|
@@ -87,37 +97,64 @@ const Task = class Task {
|
|
|
87
97
|
if (typeof this._listener === 'undefined') {
|
|
88
98
|
return;
|
|
89
99
|
}
|
|
90
|
-
|
|
91
|
-
this._listener(event);
|
|
100
|
+
this._listener(data);
|
|
92
101
|
}
|
|
93
102
|
getBoundaries() {
|
|
94
|
-
|
|
103
|
+
// Create fresh boundaries when requested
|
|
104
|
+
return this._createBounderies({
|
|
105
|
+
definition: this._boundariesDefinition,
|
|
106
|
+
baseData: this._boundariesData,
|
|
107
|
+
mode: this._mode
|
|
108
|
+
});
|
|
95
109
|
}
|
|
96
110
|
setBoundariesData(boundariesData) {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
111
|
+
this._boundariesData = boundariesData;
|
|
112
|
+
// Update accumulated data as well
|
|
113
|
+
// Type assertion to handle provided data safely
|
|
114
|
+
for (const name in boundariesData) {
|
|
115
|
+
if (Array.isArray(boundariesData[name])) {
|
|
116
|
+
this._accumulatedBoundariesData[name] = boundariesData[name];
|
|
102
117
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
boundary.setTape(tape);
|
|
118
|
+
else {
|
|
119
|
+
this._accumulatedBoundariesData[name] = [];
|
|
106
120
|
}
|
|
107
121
|
}
|
|
108
122
|
}
|
|
109
123
|
getBondariesData() {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
124
|
+
return this._accumulatedBoundariesData;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Mocks a specific boundary function for testing
|
|
128
|
+
* @param name The name of the boundary to mock
|
|
129
|
+
* @param mockFn The mock function to use
|
|
130
|
+
*/
|
|
131
|
+
mockBoundary(name, mockFn) {
|
|
132
|
+
this._boundaryMocks[name] = mockFn;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Resets a specific mocked boundary back to its original function
|
|
136
|
+
* @param name The name of the boundary to reset
|
|
137
|
+
*/
|
|
138
|
+
resetMock(name) {
|
|
139
|
+
if (this._boundaryMocks[name]) {
|
|
140
|
+
delete this._boundaryMocks[name];
|
|
115
141
|
}
|
|
116
|
-
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Resets all mocked boundaries back to their original functions
|
|
145
|
+
*/
|
|
146
|
+
resetMocks() {
|
|
147
|
+
this._boundaryMocks = {};
|
|
117
148
|
}
|
|
118
149
|
_createBounderies({ definition, baseData, mode = 'proxy' }) {
|
|
119
150
|
const boundariesFns = {};
|
|
120
151
|
for (const name in definition) {
|
|
152
|
+
// Check if we have a mock for this boundary
|
|
153
|
+
if (this._boundaryMocks[name]) {
|
|
154
|
+
boundariesFns[name] = this._boundaryMocks[name];
|
|
155
|
+
continue;
|
|
156
|
+
}
|
|
157
|
+
// Otherwise create the normal boundary
|
|
121
158
|
const boundary = (0, boundary_1.createBoundary)(definition[name]);
|
|
122
159
|
if (baseData !== null && typeof baseData[name] !== 'undefined') {
|
|
123
160
|
const tape = baseData[name];
|
|
@@ -129,66 +166,109 @@ const Task = class Task {
|
|
|
129
166
|
}
|
|
130
167
|
return boundariesFns;
|
|
131
168
|
}
|
|
132
|
-
getBondariesRunLog() {
|
|
133
|
-
const boundaries = this._boundaries;
|
|
134
|
-
const boundariesRunLog = {};
|
|
135
|
-
for (const name in boundaries) {
|
|
136
|
-
const boundary = boundaries[name];
|
|
137
|
-
boundariesRunLog[name] = boundary.getRunData();
|
|
138
|
-
}
|
|
139
|
-
return boundariesRunLog;
|
|
140
|
-
}
|
|
141
|
-
startRunLog() {
|
|
142
|
-
const boundaries = this._boundaries;
|
|
143
|
-
for (const name in boundaries) {
|
|
144
|
-
const boundary = boundaries[name];
|
|
145
|
-
boundary.startRun();
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
169
|
asBoundary() {
|
|
149
170
|
return async (args) => {
|
|
150
171
|
return await this.run(args);
|
|
151
172
|
};
|
|
152
173
|
}
|
|
153
|
-
async
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
var _a;
|
|
159
|
-
if (this._schema) {
|
|
174
|
+
async safeRun(argv) {
|
|
175
|
+
var _a;
|
|
176
|
+
// Handle schema validation
|
|
177
|
+
if (this._schema) {
|
|
178
|
+
try {
|
|
160
179
|
const validation = this._schema.safeParse(argv);
|
|
161
180
|
if (!validation.success) {
|
|
162
181
|
const errorDetails = (_a = validation.error) === null || _a === void 0 ? void 0 : _a.errors.map(err => `${err.path.join('.')}: ${err.message}`).join(', ');
|
|
163
182
|
const errorMessage = errorDetails
|
|
164
183
|
? `Invalid input on: ${errorDetails}`
|
|
165
184
|
: 'Invalid input';
|
|
185
|
+
// Emit the validation error
|
|
166
186
|
this.emit({
|
|
167
187
|
input: argv,
|
|
168
188
|
error: errorMessage
|
|
169
189
|
});
|
|
170
|
-
|
|
190
|
+
return [new Error(errorMessage), null, null];
|
|
171
191
|
}
|
|
172
192
|
}
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
resolve(output);
|
|
183
|
-
}).catch((error) => {
|
|
184
|
-
this.emit({
|
|
185
|
-
input: argv,
|
|
186
|
-
error: error.message
|
|
187
|
-
});
|
|
188
|
-
reject(error);
|
|
189
|
-
});
|
|
193
|
+
catch (error) {
|
|
194
|
+
return [error instanceof Error ? error : new Error(String(error)), null, null];
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
// Create fresh boundaries for this execution
|
|
198
|
+
const executionBoundaries = this._createBounderies({
|
|
199
|
+
definition: this._boundariesDefinition,
|
|
200
|
+
baseData: this._boundariesData,
|
|
201
|
+
mode: this._mode
|
|
190
202
|
});
|
|
191
|
-
|
|
203
|
+
// Start run for each boundary
|
|
204
|
+
for (const name in executionBoundaries) {
|
|
205
|
+
const boundary = executionBoundaries[name];
|
|
206
|
+
boundary.startRun();
|
|
207
|
+
}
|
|
208
|
+
try {
|
|
209
|
+
// Execute the task function
|
|
210
|
+
const output = await this._fn(argv, executionBoundaries);
|
|
211
|
+
// Process boundary data after successful execution
|
|
212
|
+
const boundariesRunLog = {};
|
|
213
|
+
for (const name in executionBoundaries) {
|
|
214
|
+
const boundary = executionBoundaries[name];
|
|
215
|
+
const runData = boundary.getRunData();
|
|
216
|
+
// Add to the run log
|
|
217
|
+
boundariesRunLog[name] = runData;
|
|
218
|
+
// Accumulate in the task's total boundaries data
|
|
219
|
+
if (!this._accumulatedBoundariesData[name]) {
|
|
220
|
+
this._accumulatedBoundariesData[name] = [];
|
|
221
|
+
}
|
|
222
|
+
// Get the current accumulated data for this boundary
|
|
223
|
+
const currentData = this._accumulatedBoundariesData[name];
|
|
224
|
+
// Add the new run data
|
|
225
|
+
if (Array.isArray(runData) && runData.length > 0) {
|
|
226
|
+
// Cast the run data to the correct type
|
|
227
|
+
this._accumulatedBoundariesData[name] = [...currentData, ...runData];
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
// Emit the success event with boundary data
|
|
231
|
+
this.emit({
|
|
232
|
+
input: argv,
|
|
233
|
+
output,
|
|
234
|
+
boundaries: boundariesRunLog
|
|
235
|
+
});
|
|
236
|
+
return [null, output, boundariesRunLog];
|
|
237
|
+
}
|
|
238
|
+
catch (error) {
|
|
239
|
+
// Process boundary data after error
|
|
240
|
+
const boundariesRunLog = {};
|
|
241
|
+
for (const name in executionBoundaries) {
|
|
242
|
+
const boundary = executionBoundaries[name];
|
|
243
|
+
const runData = boundary.getRunData();
|
|
244
|
+
// Add to the run log
|
|
245
|
+
boundariesRunLog[name] = runData;
|
|
246
|
+
// Accumulate in the task's total boundaries data
|
|
247
|
+
if (!this._accumulatedBoundariesData[name]) {
|
|
248
|
+
this._accumulatedBoundariesData[name] = [];
|
|
249
|
+
}
|
|
250
|
+
// Get the current accumulated data for this boundary
|
|
251
|
+
const currentData = this._accumulatedBoundariesData[name];
|
|
252
|
+
// Add the new run data
|
|
253
|
+
if (Array.isArray(runData) && runData.length > 0) {
|
|
254
|
+
// Cast the run data to the correct type
|
|
255
|
+
this._accumulatedBoundariesData[name] = [...currentData, ...runData];
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
// Emit the error event with boundary data
|
|
259
|
+
this.emit({
|
|
260
|
+
input: argv,
|
|
261
|
+
error: error instanceof Error ? error.message : String(error),
|
|
262
|
+
boundaries: boundariesRunLog
|
|
263
|
+
});
|
|
264
|
+
return [error instanceof Error ? error : new Error(String(error)), null, boundariesRunLog];
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
async run(argv) {
|
|
268
|
+
const [error, result] = await this.safeRun(argv);
|
|
269
|
+
if (error) {
|
|
270
|
+
throw error;
|
|
271
|
+
}
|
|
192
272
|
return result;
|
|
193
273
|
}
|
|
194
274
|
};
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-run.test.d.ts","sourceRoot":"","sources":["../../src/test/safe-run.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const index_1 = require("../index");
|
|
4
|
+
describe('Task safeRun tests', () => {
|
|
5
|
+
it('returns [null, result, boundaryLogs] on successful execution', async () => {
|
|
6
|
+
// Create a simple schema
|
|
7
|
+
const schema = new index_1.Schema({
|
|
8
|
+
value: index_1.Schema.number()
|
|
9
|
+
});
|
|
10
|
+
// Define the boundaries
|
|
11
|
+
const boundaries = {
|
|
12
|
+
fetchData: async (value) => {
|
|
13
|
+
return value * 2;
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
// Create the task
|
|
17
|
+
const successTask = (0, index_1.createTask)(schema, boundaries, async function ({ value }, { fetchData }) {
|
|
18
|
+
const result = await fetchData(value);
|
|
19
|
+
return { result, success: true };
|
|
20
|
+
});
|
|
21
|
+
// Call safeRun with valid input
|
|
22
|
+
const [error, result, boundaryLogs] = await successTask.safeRun({ value: 5 });
|
|
23
|
+
// Verify success case
|
|
24
|
+
expect(error).toBeNull();
|
|
25
|
+
expect(result).toEqual({ result: 10, success: true });
|
|
26
|
+
expect(boundaryLogs).not.toBeNull();
|
|
27
|
+
expect(boundaryLogs).toHaveProperty('fetchData');
|
|
28
|
+
});
|
|
29
|
+
it('returns [error, null, boundaryLogs] on failed execution', async () => {
|
|
30
|
+
// Create a simple schema
|
|
31
|
+
const schema = new index_1.Schema({
|
|
32
|
+
value: index_1.Schema.number()
|
|
33
|
+
});
|
|
34
|
+
// Define the boundaries with a function that will throw an error
|
|
35
|
+
const boundaries = {
|
|
36
|
+
fetchData: async (value) => {
|
|
37
|
+
if (value < 0) {
|
|
38
|
+
throw new Error('Value cannot be negative');
|
|
39
|
+
}
|
|
40
|
+
return value * 2;
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
// Create the task
|
|
44
|
+
const errorTask = (0, index_1.createTask)(schema, boundaries, async function ({ value }, { fetchData }) {
|
|
45
|
+
const result = await fetchData(value);
|
|
46
|
+
return { result, success: true };
|
|
47
|
+
});
|
|
48
|
+
// Call safeRun with problematic input that will cause an error
|
|
49
|
+
const [error, result, boundaryLogs] = await errorTask.safeRun({ value: -5 });
|
|
50
|
+
// Verify error case
|
|
51
|
+
expect(error).toBeInstanceOf(Error);
|
|
52
|
+
expect(error === null || error === void 0 ? void 0 : error.message).toContain('Value cannot be negative');
|
|
53
|
+
expect(result).toBeNull();
|
|
54
|
+
expect(boundaryLogs).not.toBeNull();
|
|
55
|
+
expect(boundaryLogs).toHaveProperty('fetchData');
|
|
56
|
+
});
|
|
57
|
+
it('returns [error, null, null] on schema validation failure', async () => {
|
|
58
|
+
// Create a schema that requires a positive number
|
|
59
|
+
const schema = new index_1.Schema({
|
|
60
|
+
value: index_1.Schema.number().min(1, 'Value must be positive')
|
|
61
|
+
});
|
|
62
|
+
// Define the boundaries
|
|
63
|
+
const boundaries = {
|
|
64
|
+
fetchData: async (value) => {
|
|
65
|
+
return value * 2;
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
// Create the task
|
|
69
|
+
const validationTask = (0, index_1.createTask)(schema, boundaries, async function ({ value }, { fetchData }) {
|
|
70
|
+
const result = await fetchData(value);
|
|
71
|
+
return { result, success: true };
|
|
72
|
+
});
|
|
73
|
+
// Call safeRun with invalid input that will fail schema validation
|
|
74
|
+
const [error, result, boundaryLogs] = await validationTask.safeRun({ value: 0 });
|
|
75
|
+
// Verify validation error case
|
|
76
|
+
expect(error).toBeInstanceOf(Error);
|
|
77
|
+
expect(error === null || error === void 0 ? void 0 : error.message).toContain('Value must be positive');
|
|
78
|
+
expect(result).toBeNull();
|
|
79
|
+
expect(boundaryLogs).toBeNull(); // No boundary calls were made due to validation failure
|
|
80
|
+
});
|
|
81
|
+
it('properly calls the listener with safeRun and run', async () => {
|
|
82
|
+
// Create a schema
|
|
83
|
+
const schema = new index_1.Schema({
|
|
84
|
+
value: index_1.Schema.number()
|
|
85
|
+
});
|
|
86
|
+
// Define the boundaries
|
|
87
|
+
const boundaries = {
|
|
88
|
+
fetchData: async (value) => {
|
|
89
|
+
return value * 2;
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
// Create the task
|
|
93
|
+
const listenerTask = (0, index_1.createTask)(schema, boundaries, async function ({ value }, { fetchData }) {
|
|
94
|
+
const result = await fetchData(value);
|
|
95
|
+
return result;
|
|
96
|
+
});
|
|
97
|
+
// Create a mock listener
|
|
98
|
+
const originalListener = jest.fn();
|
|
99
|
+
listenerTask.addListener(originalListener);
|
|
100
|
+
// Call safeRun - this should call the listener once
|
|
101
|
+
await listenerTask.safeRun({ value: 10 });
|
|
102
|
+
// Run the task normally - this should call the listener again through safeRun
|
|
103
|
+
await listenerTask.run({ value: 20 });
|
|
104
|
+
// The original listener should have been called for both runs
|
|
105
|
+
expect(originalListener).toHaveBeenCalledTimes(2);
|
|
106
|
+
// First call should be for safeRun with value 10
|
|
107
|
+
expect(originalListener).toHaveBeenNthCalledWith(1, expect.objectContaining({
|
|
108
|
+
input: { value: 10 },
|
|
109
|
+
output: 20
|
|
110
|
+
}));
|
|
111
|
+
// Second call should be for run with value 20
|
|
112
|
+
expect(originalListener).toHaveBeenNthCalledWith(2, expect.objectContaining({
|
|
113
|
+
input: { value: 20 },
|
|
114
|
+
output: 40
|
|
115
|
+
}));
|
|
116
|
+
});
|
|
117
|
+
it('handles multiple boundary calls correctly', async () => {
|
|
118
|
+
// Create a schema
|
|
119
|
+
const schema = new index_1.Schema({
|
|
120
|
+
values: index_1.Schema.array(index_1.Schema.number())
|
|
121
|
+
});
|
|
122
|
+
// Define multiple boundaries
|
|
123
|
+
const boundaries = {
|
|
124
|
+
doubleValue: async (value) => {
|
|
125
|
+
return value * 2;
|
|
126
|
+
},
|
|
127
|
+
sumValues: async (values) => {
|
|
128
|
+
return values.reduce((sum, val) => sum + val, 0);
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
// Create a task that uses multiple boundaries
|
|
132
|
+
const multiBoundaryTask = (0, index_1.createTask)(schema, boundaries, async function ({ values }, { doubleValue, sumValues }) {
|
|
133
|
+
const doubled = await Promise.all(values.map(value => doubleValue(value)));
|
|
134
|
+
const total = await sumValues(doubled);
|
|
135
|
+
return { doubled, total };
|
|
136
|
+
});
|
|
137
|
+
// Call safeRun
|
|
138
|
+
const [error, result, boundaryLogs] = await multiBoundaryTask.safeRun({ values: [1, 2, 3] });
|
|
139
|
+
// Verify success
|
|
140
|
+
expect(error).toBeNull();
|
|
141
|
+
expect(result).toEqual({
|
|
142
|
+
doubled: [2, 4, 6],
|
|
143
|
+
total: 12
|
|
144
|
+
});
|
|
145
|
+
// Verify boundary logs for both boundaries
|
|
146
|
+
expect(boundaryLogs).not.toBeNull();
|
|
147
|
+
expect(boundaryLogs).toHaveProperty('doubleValue');
|
|
148
|
+
expect(boundaryLogs).toHaveProperty('sumValues');
|
|
149
|
+
// Check that doubleValue was called 3 times (once for each input value)
|
|
150
|
+
// @ts-expect-error - we know the boundaryLogs is not null here
|
|
151
|
+
expect(boundaryLogs.doubleValue).toHaveLength(3);
|
|
152
|
+
// Check that sumValues was called once with the doubled values
|
|
153
|
+
// @ts-expect-error - we know the boundaryLogs is not null here
|
|
154
|
+
expect(boundaryLogs.sumValues).toHaveLength(1);
|
|
155
|
+
// @ts-expect-error - we know the boundaryLogs is not null here
|
|
156
|
+
expect(boundaryLogs.sumValues[0].input).toEqual([[2, 4, 6]]);
|
|
157
|
+
});
|
|
158
|
+
});
|
|
159
|
+
//# sourceMappingURL=safe-run.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-run.test.js","sourceRoot":"","sources":["../../src/test/safe-run.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-boundary-mocking.test.d.ts","sourceRoot":"","sources":["../../src/test/task-boundary-mocking.test.ts"],"names":[],"mappings":""}
|