@t4h.framework/core 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.ai/skills/framework-core/SKILL.md +103 -287
- package/.ai/skills/framework-workflow-creation/SKILL.md +108 -60
- package/.ai/skills/framework-workflow-testing/SKILL.md +165 -111
- package/README.md +123 -37
- package/dist/models/ExecutionContext.d.ts +8 -0
- package/dist/models/ExecutionContext.d.ts.map +1 -0
- package/dist/models/ExecutionContext.js +22 -0
- package/dist/models/ExecutionContext.js.map +1 -0
- package/dist/testing/ActivityTesting.d.ts +25 -0
- package/dist/testing/ActivityTesting.d.ts.map +1 -0
- package/dist/testing/ActivityTesting.js +74 -0
- package/dist/testing/ActivityTesting.js.map +1 -0
- package/dist/testing/NonDeterministicWorkflowError.d.ts +4 -0
- package/dist/testing/NonDeterministicWorkflowError.d.ts.map +1 -0
- package/dist/testing/NonDeterministicWorkflowError.js +7 -0
- package/dist/testing/NonDeterministicWorkflowError.js.map +1 -0
- package/dist/testing/StrictGuard.d.ts +4 -0
- package/dist/testing/StrictGuard.d.ts.map +1 -0
- package/dist/testing/StrictGuard.js +26 -0
- package/dist/testing/StrictGuard.js.map +1 -0
- package/dist/testing/TestClock.d.ts +12 -0
- package/dist/testing/TestClock.d.ts.map +1 -0
- package/dist/testing/TestClock.js +64 -0
- package/dist/testing/TestClock.js.map +1 -0
- package/dist/testing/TestWorkflowEnvironment.d.ts +27 -0
- package/dist/testing/TestWorkflowEnvironment.d.ts.map +1 -0
- package/dist/testing/TestWorkflowEnvironment.js +62 -0
- package/dist/testing/TestWorkflowEnvironment.js.map +1 -0
- package/dist/testing/WorkflowTesting.d.ts +1 -1
- package/dist/testing/async-activity-results.d.ts +12 -0
- package/dist/testing/async-activity-results.d.ts.map +1 -0
- package/dist/testing/async-activity-results.js +10 -0
- package/dist/testing/async-activity-results.js.map +1 -0
- package/dist/testing/create-mock-claim.d.ts +11 -0
- package/dist/testing/create-mock-claim.d.ts.map +1 -0
- package/dist/testing/create-mock-claim.js +26 -0
- package/dist/testing/create-mock-claim.js.map +1 -0
- package/dist/testing/create-mock-claims.d.ts +13 -0
- package/dist/testing/create-mock-claims.d.ts.map +1 -0
- package/dist/testing/create-mock-claims.js +8 -0
- package/dist/testing/create-mock-claims.js.map +1 -0
- package/dist/testing/create-test-env.d.ts +10 -0
- package/dist/testing/create-test-env.d.ts.map +1 -0
- package/dist/testing/create-test-env.js +7 -0
- package/dist/testing/create-test-env.js.map +1 -0
- package/dist/testing/exceptions/NonDeterministicWorkflowError.d.ts +4 -0
- package/dist/testing/exceptions/NonDeterministicWorkflowError.d.ts.map +1 -0
- package/dist/testing/exceptions/NonDeterministicWorkflowError.js +7 -0
- package/dist/testing/exceptions/NonDeterministicWorkflowError.js.map +1 -0
- package/dist/testing/index.d.ts +8 -1
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +8 -1
- package/dist/testing/index.js.map +1 -1
- package/dist/testing/mock-async.d.ts +48 -0
- package/dist/testing/mock-async.d.ts.map +1 -0
- package/dist/testing/mock-async.js +58 -0
- package/dist/testing/mock-async.js.map +1 -0
- package/dist/testing/outcomes.d.ts +12 -0
- package/dist/testing/outcomes.d.ts.map +1 -0
- package/dist/testing/outcomes.js +10 -0
- package/dist/testing/outcomes.js.map +1 -0
- package/dist/testing/run-workflow.d.ts +22 -21
- package/dist/testing/run-workflow.d.ts.map +1 -1
- package/dist/testing/run-workflow.js +47 -23
- package/dist/testing/run-workflow.js.map +1 -1
- package/dist/testing/tools/create-mock-claim.d.ts +5 -0
- package/dist/testing/tools/create-mock-claim.d.ts.map +1 -0
- package/dist/testing/tools/create-mock-claim.js +26 -0
- package/dist/testing/tools/create-mock-claim.js.map +1 -0
- package/dist/testing/tools/create-mock-claims.d.ts +8 -0
- package/dist/testing/tools/create-mock-claims.d.ts.map +1 -0
- package/dist/testing/tools/create-mock-claims.js +5 -0
- package/dist/testing/tools/create-mock-claims.js.map +1 -0
- package/dist/testing/tools/create-test-env.d.ts +4 -0
- package/dist/testing/tools/create-test-env.d.ts.map +1 -0
- package/dist/testing/tools/create-test-env.js +7 -0
- package/dist/testing/tools/create-test-env.js.map +1 -0
- package/dist/testing/tools/mock-async.d.ts +20 -0
- package/dist/testing/tools/mock-async.d.ts.map +1 -0
- package/dist/testing/tools/mock-async.js +57 -0
- package/dist/testing/tools/mock-async.js.map +1 -0
- package/dist/testing/tools/resolve-activity.d.ts +11 -0
- package/dist/testing/tools/resolve-activity.d.ts.map +1 -0
- package/dist/testing/tools/resolve-activity.js +23 -0
- package/dist/testing/tools/resolve-activity.js.map +1 -0
- package/dist/testing/tools/resolve-async-activity.d.ts +15 -0
- package/dist/testing/tools/resolve-async-activity.d.ts.map +1 -0
- package/dist/testing/tools/resolve-async-activity.js +69 -0
- package/dist/testing/tools/resolve-async-activity.js.map +1 -0
- package/dist/testing/tools/run-with-clock.d.ts +3 -0
- package/dist/testing/tools/run-with-clock.d.ts.map +1 -0
- package/dist/testing/tools/run-with-clock.js +7 -0
- package/dist/testing/tools/run-with-clock.js.map +1 -0
- package/dist/testing/tools/run-workflow-ticks.d.ts +8 -0
- package/dist/testing/tools/run-workflow-ticks.d.ts.map +1 -0
- package/dist/testing/tools/run-workflow-ticks.js +26 -0
- package/dist/testing/tools/run-workflow-ticks.js.map +1 -0
- package/dist/testing/tools/run-workflow.d.ts +25 -0
- package/dist/testing/tools/run-workflow.d.ts.map +1 -0
- package/dist/testing/tools/run-workflow.js +25 -0
- package/dist/testing/tools/run-workflow.js.map +1 -0
- package/dist/testing/types.d.ts +19 -0
- package/dist/testing/types.d.ts.map +1 -0
- package/dist/testing/types.js +2 -0
- package/dist/testing/types.js.map +1 -0
- package/dist/testing/typings/AsyncActivityResult.d.ts +10 -0
- package/dist/testing/typings/AsyncActivityResult.d.ts.map +1 -0
- package/dist/testing/typings/AsyncActivityResult.js +2 -0
- package/dist/testing/typings/AsyncActivityResult.js.map +1 -0
- package/dist/testing/typings/ClaimConstructor.d.ts +2 -0
- package/dist/testing/typings/ClaimConstructor.d.ts.map +1 -0
- package/dist/testing/typings/ClaimConstructor.js +2 -0
- package/dist/testing/typings/ClaimConstructor.js.map +1 -0
- package/dist/testing/typings/MockAsyncActivity.d.ts +10 -0
- package/dist/testing/typings/MockAsyncActivity.d.ts.map +1 -0
- package/dist/testing/typings/MockAsyncActivity.js +2 -0
- package/dist/testing/typings/MockAsyncActivity.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"async-activity-results.js","sourceRoot":"","sources":["../../src/testing/async-activity-results.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAI,MAAU;IACrC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,CAAA;AACxC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,MAAgB;IAIvC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;AACvC,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;AAC9B,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ClaimProvider } from '../../models/Claim.js'
|
|
2
|
+
import type { ClaimConstructor } from '../types.js'
|
|
3
|
+
export declare function createMockClaim<T extends ClaimConstructor>(
|
|
4
|
+
ClaimClass: T,
|
|
5
|
+
implementation?: Partial<InstanceType<T>>,
|
|
6
|
+
): InstanceType<T>
|
|
7
|
+
export declare function mockClaim<T extends ClaimConstructor>(
|
|
8
|
+
ClaimClass: T,
|
|
9
|
+
implementation?: Partial<InstanceType<T>>,
|
|
10
|
+
): ClaimProvider<InstanceType<T>>
|
|
11
|
+
//# sourceMappingURL=create-mock-claim.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-mock-claim.d.ts","sourceRoot":"","sources":["../../src/testing/create-mock-claim.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD,wBAAgB,eAAe,CAAC,CAAC,SAAS,gBAAgB,EACxD,UAAU,EAAE,CAAC,EACb,cAAc,GAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAM,GAC5C,YAAY,CAAC,CAAC,CAAC,CAuBjB;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,gBAAgB,EAClD,UAAU,EAAE,CAAC,EACb,cAAc,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GACxC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAKhC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export function createMockClaim(ClaimClass, implementation = {}) {
|
|
2
|
+
const name = ClaimClass.name;
|
|
3
|
+
return new Proxy(implementation, {
|
|
4
|
+
get(target, propertyKey, receiver) {
|
|
5
|
+
if (propertyKey in target) {
|
|
6
|
+
const value = Reflect.get(target, propertyKey, receiver);
|
|
7
|
+
if (typeof value === 'function')
|
|
8
|
+
return value.bind(target);
|
|
9
|
+
return value;
|
|
10
|
+
}
|
|
11
|
+
if (propertyKey === 'then')
|
|
12
|
+
return undefined;
|
|
13
|
+
return (...args) => {
|
|
14
|
+
throw new Error(`Mock ${name}.${String(propertyKey)} was not implemented. ` +
|
|
15
|
+
`Provide it via mockClaim(${name}, { ${String(propertyKey)}: ... }).`);
|
|
16
|
+
};
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
export function mockClaim(ClaimClass, implementation) {
|
|
21
|
+
return {
|
|
22
|
+
provide: ClaimClass,
|
|
23
|
+
value: createMockClaim(ClaimClass, implementation ?? {}),
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=create-mock-claim.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-mock-claim.js","sourceRoot":"","sources":["../../src/testing/create-mock-claim.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,eAAe,CAC7B,UAAa,EACb,iBAA2C,EAAE;IAE7C,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAA;IAE5B,OAAO,IAAI,KAAK,CAAC,cAAwB,EAAE;QACzC,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ;YAC/B,IAAI,WAAW,IAAI,MAAM,EAAE,CAAC;gBAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;gBAExD,IAAI,OAAO,KAAK,KAAK,UAAU;oBAAE,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBAE1D,OAAO,KAAK,CAAA;YACd,CAAC;YAED,IAAI,WAAW,KAAK,MAAM;gBAAE,OAAO,SAAS,CAAA;YAE5C,OAAO,CAAC,GAAG,IAAe,EAAE,EAAE;gBAC5B,MAAM,IAAI,KAAK,CACb,QAAQ,IAAI,IAAI,MAAM,CAAC,WAAW,CAAC,wBAAwB;oBACzD,4BAA4B,IAAI,OAAO,MAAM,CAAC,WAAW,CAAC,WAAW,CACxE,CAAA;YACH,CAAC,CAAA;QACH,CAAC;KACF,CAAoB,CAAA;AACvB,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,UAAa,EACb,cAAyC;IAEzC,OAAO;QACL,OAAO,EAAE,UAAU;QACnB,KAAK,EAAE,eAAe,CAAC,UAAU,EAAE,cAAc,IAAI,EAAE,CAAC;KACzD,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ClaimConstructor } from '../types.js'
|
|
2
|
+
import type { ClaimProvider } from '../../models/Claim.js'
|
|
3
|
+
export declare function createMockClaims(
|
|
4
|
+
...providers: readonly ClaimProvider<any>[]
|
|
5
|
+
): readonly ClaimProvider<any>[]
|
|
6
|
+
export type MockClaimEntry = readonly [
|
|
7
|
+
claim: ClaimConstructor,
|
|
8
|
+
implementation?: Partial<InstanceType<ClaimConstructor>>,
|
|
9
|
+
]
|
|
10
|
+
export declare function createMockClaimsFromMap(
|
|
11
|
+
entries: readonly MockClaimEntry[],
|
|
12
|
+
): readonly ClaimProvider<any>[]
|
|
13
|
+
//# sourceMappingURL=create-mock-claims.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-mock-claims.d.ts","sourceRoot":"","sources":["../../src/testing/create-mock-claims.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEvD,wBAAgB,gBAAgB,CAC9B,GAAG,SAAS,EAAE,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE,GAC1C,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE,CAE/B;AAED,MAAM,MAAM,cAAc,GAAG,SAAS;IACpC,KAAK,EAAE,gBAAgB;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;CACzD,CAAA;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,SAAS,cAAc,EAAE,GACjC,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE,CAI/B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { mockClaim } from './create-mock-claim.js';
|
|
2
|
+
export function createMockClaims(...providers) {
|
|
3
|
+
return providers;
|
|
4
|
+
}
|
|
5
|
+
export function createMockClaimsFromMap(entries) {
|
|
6
|
+
return entries.map(([ClaimClass, implementation]) => mockClaim(ClaimClass, implementation ?? {}));
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=create-mock-claims.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-mock-claims.js","sourceRoot":"","sources":["../../src/testing/create-mock-claims.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAIlD,MAAM,UAAU,gBAAgB,CAC9B,GAAG,SAAwC;IAE3C,OAAO,SAAS,CAAA;AAClB,CAAC;AAOD,MAAM,UAAU,uBAAuB,CACrC,OAAkC;IAElC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,EAAE,CAClD,SAAS,CAAC,UAAU,EAAE,cAAc,IAAI,EAAE,CAAC,CAC5C,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Env } from '../../models/Env.js'
|
|
2
|
+
export declare function createTestEnv(
|
|
3
|
+
overrides: Record<string, string | undefined>,
|
|
4
|
+
base?: Record<string, string | undefined>,
|
|
5
|
+
): Record<string, string | undefined>
|
|
6
|
+
export declare function createTestEnvEntries(
|
|
7
|
+
overrides: Record<string, string | undefined>,
|
|
8
|
+
base?: Record<string, string | undefined>,
|
|
9
|
+
): Env.Entries
|
|
10
|
+
//# sourceMappingURL=create-test-env.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-test-env.d.ts","sourceRoot":"","sources":["../../src/testing/create-test-env.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAE3C,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAC7C,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAM,GAC5C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAEpC;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAC7C,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAM,GAC5C,GAAG,CAAC,OAAO,CAEb"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-test-env.js","sourceRoot":"","sources":["../../src/testing/create-test-env.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,aAAa,CAC3B,SAA6C,EAC7C,OAA2C,EAAE;IAE7C,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,SAAS,EAAE,CAAA;AAClC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,SAA6C,EAC7C,OAA2C,EAAE;IAE7C,OAAO,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;AACvC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NonDeterministicWorkflowError.d.ts","sourceRoot":"","sources":["../../../src/testing/exceptions/NonDeterministicWorkflowError.ts"],"names":[],"mappings":"AAAA,qBAAa,6BAA8B,SAAQ,KAAK;gBAC1C,OAAO,EAAE,MAAM;CAK5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NonDeterministicWorkflowError.js","sourceRoot":"","sources":["../../../src/testing/exceptions/NonDeterministicWorkflowError.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,6BAA8B,SAAQ,KAAK;IACtD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QAEd,IAAI,CAAC,IAAI,GAAG,+BAA+B,CAAA;IAC7C,CAAC;CACF"}
|
package/dist/testing/index.d.ts
CHANGED
|
@@ -1,2 +1,9 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './tools/mock-async.js';
|
|
2
|
+
export * from './tools/create-mock-claim.js';
|
|
3
|
+
export * from './tools/create-mock-claims.js';
|
|
4
|
+
export * from './tools/create-test-env.js';
|
|
5
|
+
export * from './async-activity-results.js';
|
|
6
|
+
export * from './TestClock.js';
|
|
7
|
+
export * from './TestWorkflowEnvironment.js';
|
|
8
|
+
export * from './exceptions/NonDeterministicWorkflowError.js';
|
|
2
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,8BAA8B,CAAA;AAC5C,cAAc,+CAA+C,CAAA"}
|
package/dist/testing/index.js
CHANGED
|
@@ -1,2 +1,9 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './tools/mock-async.js';
|
|
2
|
+
export * from './tools/create-mock-claim.js';
|
|
3
|
+
export * from './tools/create-mock-claims.js';
|
|
4
|
+
export * from './tools/create-test-env.js';
|
|
5
|
+
export * from './async-activity-results.js';
|
|
6
|
+
export * from './TestClock.js';
|
|
7
|
+
export * from './TestWorkflowEnvironment.js';
|
|
8
|
+
export * from './exceptions/NonDeterministicWorkflowError.js';
|
|
2
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,8BAA8B,CAAA;AAC5C,cAAc,+CAA+C,CAAA"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { MockAsyncActivity } from '../types.js'
|
|
2
|
+
import {
|
|
3
|
+
AsyncActivity,
|
|
4
|
+
type AnyAsyncActivity,
|
|
5
|
+
} from '../../models/AsyncActivity.js'
|
|
6
|
+
import type { AsyncActivityResultPending } from '../../models/AsyncActivityAdvanceResult.js'
|
|
7
|
+
type InferSerializableOutput<T extends AnyAsyncActivity> =
|
|
8
|
+
T extends AsyncActivity<any, any, infer TSerializableOutput, any, any, any>
|
|
9
|
+
? TSerializableOutput
|
|
10
|
+
: unknown
|
|
11
|
+
type TypedOutcome<TOutput> =
|
|
12
|
+
| {
|
|
13
|
+
status: 'fulfilled'
|
|
14
|
+
output?: TOutput
|
|
15
|
+
}
|
|
16
|
+
| {
|
|
17
|
+
status: 'rejected'
|
|
18
|
+
reason?: unknown
|
|
19
|
+
}
|
|
20
|
+
| {
|
|
21
|
+
status: 'timeout'
|
|
22
|
+
}
|
|
23
|
+
interface OnContext {
|
|
24
|
+
callCount: number
|
|
25
|
+
input: unknown
|
|
26
|
+
pending: AsyncActivityResultPending
|
|
27
|
+
}
|
|
28
|
+
type OnCallback<T extends AnyAsyncActivity> = (
|
|
29
|
+
activity: T,
|
|
30
|
+
context: OnContext,
|
|
31
|
+
) =>
|
|
32
|
+
| TypedOutcome<InferSerializableOutput<T>>
|
|
33
|
+
| Promise<TypedOutcome<InferSerializableOutput<T>>>
|
|
34
|
+
type OnHandler<T extends AnyAsyncActivity> =
|
|
35
|
+
| TypedOutcome<InferSerializableOutput<T>>
|
|
36
|
+
| TypedOutcome<InferSerializableOutput<T>>[]
|
|
37
|
+
| OnCallback<T>
|
|
38
|
+
export interface MockAsyncBuilder extends MockAsyncActivity {
|
|
39
|
+
on<T extends AnyAsyncActivity>(
|
|
40
|
+
ActivityClass: new () => T,
|
|
41
|
+
handler: OnHandler<T>,
|
|
42
|
+
): MockAsyncBuilder
|
|
43
|
+
timeout(): MockAsyncBuilder
|
|
44
|
+
fallback(handler: MockAsyncActivity): MockAsyncBuilder
|
|
45
|
+
}
|
|
46
|
+
export declare function mockAsync(): MockAsyncBuilder
|
|
47
|
+
export {}
|
|
48
|
+
//# sourceMappingURL=mock-async.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-async.d.ts","sourceRoot":"","sources":["../../src/testing/mock-async.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,iBAAiB,EAElB,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,aAAa,EACb,KAAK,gBAAgB,EACtB,MAAM,4BAA4B,CAAA;AACnC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAA;AAEzF,KAAK,uBAAuB,CAAC,CAAC,SAAS,gBAAgB,IACrD,CAAC,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,mBAAmB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GACvE,mBAAmB,GACnB,OAAO,CAAA;AAEb,KAAK,YAAY,CAAC,OAAO,IACrB;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GACzC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GACxC;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAAA;AAEzB,UAAU,SAAS;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,OAAO,CAAA;IACd,OAAO,EAAE,0BAA0B,CAAA;CACpC;AAED,KAAK,UAAU,CAAC,CAAC,SAAS,gBAAgB,IAAI,CAC5C,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,SAAS,KAEhB,YAAY,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,GACxC,OAAO,CAAC,YAAY,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAErD,KAAK,SAAS,CAAC,CAAC,SAAS,gBAAgB,IACrC,YAAY,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,GACxC,YAAY,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,EAAE,GAC1C,UAAU,CAAC,CAAC,CAAC,CAAA;AAQjB,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD,EAAE,CAAC,CAAC,SAAS,gBAAgB,EAC3B,aAAa,EAAE,UAAU,CAAC,EAC1B,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,GACpB,gBAAgB,CAAA;IAEnB,OAAO,IAAI,gBAAgB,CAAA;IAE3B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,gBAAgB,CAAA;CACvD;AAED,wBAAgB,SAAS,IAAI,gBAAgB,CA+E5C"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { TestClock } from './TestClock.js';
|
|
2
|
+
import { AsyncActivity, } from '../models/AsyncActivity.js';
|
|
3
|
+
export function mockAsync() {
|
|
4
|
+
const entries = [];
|
|
5
|
+
let timeoutFallback = false;
|
|
6
|
+
let fallbackHandler;
|
|
7
|
+
const execute = async (activity, context) => {
|
|
8
|
+
for (const entry of entries) {
|
|
9
|
+
if (!(activity instanceof entry.ActivityClass))
|
|
10
|
+
continue;
|
|
11
|
+
const callCount = entry.callCount++;
|
|
12
|
+
const ctx = {
|
|
13
|
+
callCount,
|
|
14
|
+
input: context.input,
|
|
15
|
+
pending: context.pending,
|
|
16
|
+
};
|
|
17
|
+
if (typeof entry.handler === 'function') {
|
|
18
|
+
return entry.handler(activity, ctx);
|
|
19
|
+
}
|
|
20
|
+
if (Array.isArray(entry.handler)) {
|
|
21
|
+
const outcome = entry.handler[callCount];
|
|
22
|
+
if (outcome === undefined)
|
|
23
|
+
throw new Error(`mockAsync().on(${activity.constructor.name}): no outcome at call ${callCount} (${entry.handler.length} defined)`);
|
|
24
|
+
return outcome;
|
|
25
|
+
}
|
|
26
|
+
return entry.handler;
|
|
27
|
+
}
|
|
28
|
+
if (timeoutFallback && context.pending.timeoutAt) {
|
|
29
|
+
const target = context.pending.timeoutAt.getTime();
|
|
30
|
+
if (TestClock.isActive() && TestClock.now() < target)
|
|
31
|
+
TestClock.advance(target - TestClock.now());
|
|
32
|
+
return { status: 'timeout' };
|
|
33
|
+
}
|
|
34
|
+
if (fallbackHandler)
|
|
35
|
+
return fallbackHandler(activity, context);
|
|
36
|
+
throw new Error(`mockAsync(): no handler registered for "${activity.constructor.name}"`);
|
|
37
|
+
};
|
|
38
|
+
const builder = Object.assign(execute, {
|
|
39
|
+
on(ActivityClass, handler) {
|
|
40
|
+
entries.push({
|
|
41
|
+
ActivityClass: ActivityClass,
|
|
42
|
+
handler: handler,
|
|
43
|
+
callCount: 0,
|
|
44
|
+
});
|
|
45
|
+
return builder;
|
|
46
|
+
},
|
|
47
|
+
timeout() {
|
|
48
|
+
timeoutFallback = true;
|
|
49
|
+
return builder;
|
|
50
|
+
},
|
|
51
|
+
fallback(handler) {
|
|
52
|
+
fallbackHandler = handler;
|
|
53
|
+
return builder;
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
return builder;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=mock-async.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-async.js","sourceRoot":"","sources":["../../src/testing/mock-async.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAM1C,OAAO,EACL,aAAa,GAEd,MAAM,4BAA4B,CAAA;AAgDnC,MAAM,UAAU,SAAS;IACvB,MAAM,OAAO,GAAc,EAAE,CAAA;IAC7B,IAAI,eAAe,GAAG,KAAK,CAAA;IAC3B,IAAI,eAA8C,CAAA;IAElD,MAAM,OAAO,GAAsB,KAAK,EACtC,QAA0B,EAC1B,OAAiC,EACF,EAAE;QACjC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,CAAC,QAAQ,YAAY,KAAK,CAAC,aAAa,CAAC;gBAAE,SAAQ;YAExD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,CAAA;YACnC,MAAM,GAAG,GAAc;gBACrB,SAAS;gBACT,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAA;YAED,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBACxC,OAAQ,KAAK,CAAC,OAAwC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;YACvE,CAAC;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;gBAExC,IAAI,OAAO,KAAK,SAAS;oBACvB,MAAM,IAAI,KAAK,CACb,kBAAkB,QAAQ,CAAC,WAAW,CAAC,IAAI,yBAAyB,SAAS,KAAK,KAAK,CAAC,OAAO,CAAC,MAAM,WAAW,CAClH,CAAA;gBAEH,OAAO,OAAO,CAAA;YAChB,CAAC;YAED,OAAO,KAAK,CAAC,OAAO,CAAA;QACtB,CAAC;QAED,IAAI,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACjD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,CAAA;YAElD,IAAI,SAAS,CAAC,QAAQ,EAAE,IAAI,SAAS,CAAC,GAAG,EAAE,GAAG,MAAM;gBAClD,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,CAAA;YAE7C,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;QAC9B,CAAC;QAED,IAAI,eAAe;YAAE,OAAO,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAE9D,MAAM,IAAI,KAAK,CACb,2CAA2C,QAAQ,CAAC,WAAW,CAAC,IAAI,GAAG,CACxE,CAAA;IACH,CAAC,CAAA;IAED,MAAM,OAAO,GAAqB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;QACvD,EAAE,CACA,aAA0B,EAC1B,OAAqB;YAErB,OAAO,CAAC,IAAI,CAAC;gBACX,aAAa,EAAE,aAA2C;gBAC1D,OAAO,EAAE,OAAsC;gBAC/C,SAAS,EAAE,CAAC;aACb,CAAC,CAAA;YAEF,OAAO,OAAO,CAAA;QAChB,CAAC;QAED,OAAO;YACL,eAAe,GAAG,IAAI,CAAA;YACtB,OAAO,OAAO,CAAA;QAChB,CAAC;QAED,QAAQ,CAAC,OAA0B;YACjC,eAAe,GAAG,OAAO,CAAA;YACzB,OAAO,OAAO,CAAA;QAChB,CAAC;KACF,CAAC,CAAA;IAEF,OAAO,OAAO,CAAA;AAChB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare function fulfilled<T>(output?: T): {
|
|
2
|
+
status: 'fulfilled';
|
|
3
|
+
output?: T;
|
|
4
|
+
};
|
|
5
|
+
export declare function rejected(reason?: unknown): {
|
|
6
|
+
status: 'rejected';
|
|
7
|
+
reason?: unknown;
|
|
8
|
+
};
|
|
9
|
+
export declare function timeout(): {
|
|
10
|
+
status: 'timeout';
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=outcomes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outcomes.d.ts","sourceRoot":"","sources":["../../src/testing/outcomes.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,MAAM,CAAC,EAAE,CAAC,CAAA;CAAE,CAE5E;AAED,wBAAgB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,CAEnF;AAED,wBAAgB,OAAO,IAAI;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAE/C"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export function fulfilled(output) {
|
|
2
|
+
return { status: 'fulfilled', output };
|
|
3
|
+
}
|
|
4
|
+
export function rejected(reason) {
|
|
5
|
+
return { status: 'rejected', reason };
|
|
6
|
+
}
|
|
7
|
+
export function timeout() {
|
|
8
|
+
return { status: 'timeout' };
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=outcomes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outcomes.js","sourceRoot":"","sources":["../../src/testing/outcomes.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAI,MAAU;IACrC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,CAAA;AACxC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,MAAgB;IACvC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;AACvC,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;AAC9B,CAAC"}
|
|
@@ -1,31 +1,32 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import {
|
|
1
|
+
import { type TestClockRunOptions } from './TestClock.js';
|
|
2
|
+
import type { MockAsyncActivity } from './types.js';
|
|
3
3
|
import type { ClaimProvider } from '../models/Claim.js';
|
|
4
|
-
import { Env } from '../models/Env.js';
|
|
4
|
+
import type { Env } from '../models/Env.js';
|
|
5
|
+
import type { HistoryItem } from '../models/History.js';
|
|
5
6
|
import type { Log } from '../models/Logger.js';
|
|
6
7
|
import type { Workflow, WorkflowInput } from '../models/Workflow.js';
|
|
7
|
-
|
|
8
|
-
input: unknown;
|
|
9
|
-
pending: AsyncActivityResultPending;
|
|
10
|
-
index: number;
|
|
11
|
-
}
|
|
12
|
-
export type AsyncActivityOutcome = {
|
|
13
|
-
status: 'fulfilled';
|
|
14
|
-
output?: unknown;
|
|
15
|
-
} | {
|
|
16
|
-
status: 'rejected';
|
|
17
|
-
reason?: unknown;
|
|
18
|
-
} | {
|
|
19
|
-
status: 'timeout';
|
|
20
|
-
};
|
|
21
|
-
type MockAsyncActivity = (activity: AnyAsyncActivity, context: MockAsyncActivityContext) => AsyncActivityOutcome | Promise<AsyncActivityOutcome>;
|
|
8
|
+
export type { AsyncActivityOutcome, MockAsyncActivity, MockAsyncActivityContext, } from './types.js';
|
|
22
9
|
export interface RunWorkflowOptions {
|
|
23
10
|
claims?: readonly ClaimProvider<any>[];
|
|
24
11
|
env?: Env.Entries;
|
|
25
|
-
mockAsyncActivity?: MockAsyncActivity
|
|
12
|
+
mockAsyncActivity?: MockAsyncActivity;
|
|
26
13
|
maxTicks?: number;
|
|
27
14
|
logs?: Log[];
|
|
15
|
+
history?: HistoryItem[];
|
|
16
|
+
clock?: TestClockRunOptions | false;
|
|
17
|
+
strict?: boolean;
|
|
18
|
+
autoResolveTimeouts?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface RunWorkflowResult<TOutput = unknown> {
|
|
21
|
+
output: TOutput;
|
|
22
|
+
history: readonly HistoryItem[];
|
|
23
|
+
logs: readonly Log[];
|
|
24
|
+
clockNow?: number;
|
|
28
25
|
}
|
|
29
|
-
export declare function runWorkflow<T extends Workflow<any, any>>(workflow: T, input: WorkflowInput<T>, options?: RunWorkflowOptions): Promise<
|
|
30
|
-
export
|
|
26
|
+
export declare function runWorkflow<T extends Workflow<any, any>>(workflow: T, input: WorkflowInput<T>, options?: RunWorkflowOptions): Promise<unknown>;
|
|
27
|
+
export declare function runWorkflowDetailed<T extends Workflow<any, any>>(workflow: T, input: WorkflowInput<T>, options?: RunWorkflowOptions): Promise<RunWorkflowResult>;
|
|
28
|
+
export declare function runWorkflowTicks<T extends Workflow<any, any>>(workflow: T, input: WorkflowInput<T>, options: RunWorkflowOptions & {
|
|
29
|
+
history: HistoryItem[];
|
|
30
|
+
logs: Log[];
|
|
31
|
+
}): Promise<any>;
|
|
31
32
|
//# sourceMappingURL=run-workflow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-workflow.d.ts","sourceRoot":"","sources":["../../src/testing/run-workflow.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run-workflow.d.ts","sourceRoot":"","sources":["../../src/testing/run-workflow.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AACpE,OAAO,KAAK,EAAwB,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAWzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAG9C,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAGpE,YAAY,EACV,oBAAoB,EACpB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,YAAY,CAAA;AAEnB,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE,CAAA;IACtC,GAAG,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;IACjB,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACZ,OAAO,CAAC,EAAE,WAAW,EAAE,CAAA;IACvB,KAAK,CAAC,EAAE,mBAAmB,GAAG,KAAK,CAAA;IACnC,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B;AAED,MAAM,WAAW,iBAAiB,CAAC,OAAO,GAAG,OAAO;IAClD,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,SAAS,WAAW,EAAE,CAAA;IAC/B,IAAI,EAAE,SAAS,GAAG,EAAE,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAqBD,wBAAsB,WAAW,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAC5D,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EACvB,OAAO,GAAE,kBAAuB,oBAKjC;AAED,wBAAsB,mBAAmB,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EACpE,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EACvB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CAwB5B;AAED,wBAAsB,gBAAgB,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EACjE,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EACvB,OAAO,EAAE,kBAAkB,GAAG;IAC5B,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,IAAI,EAAE,GAAG,EAAE,CAAA;CACZ,gBAkCF"}
|
|
@@ -1,33 +1,57 @@
|
|
|
1
|
+
import { mockAsync } from './mock-async.js';
|
|
2
|
+
import { StrictGuard } from './StrictGuard.js';
|
|
3
|
+
import { TestClock } from './TestClock.js';
|
|
1
4
|
import { AsyncActivity, } from '../models/AsyncActivity.js';
|
|
2
5
|
import { AsyncActivityResultFulfilled, AsyncActivityResultPending, AsyncActivityResultRejected, } from '../models/AsyncActivityAdvanceResult.js';
|
|
3
|
-
import { Env } from '../models/Env.js';
|
|
4
6
|
import { PushActivity } from '../models/PushActivity.js';
|
|
5
7
|
import { SyncActivity } from '../models/SyncActivity.js';
|
|
6
8
|
import { Internals } from '../tools/Internals.js';
|
|
7
|
-
function
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
return next;
|
|
14
|
-
};
|
|
9
|
+
function resolveMockAsyncActivity(options) {
|
|
10
|
+
if (options.mockAsyncActivity !== undefined)
|
|
11
|
+
return options.mockAsyncActivity;
|
|
12
|
+
if (options.autoResolveTimeouts)
|
|
13
|
+
return mockAsync().timeout();
|
|
14
|
+
return undefined;
|
|
15
15
|
}
|
|
16
|
-
function
|
|
17
|
-
if (
|
|
18
|
-
return
|
|
19
|
-
|
|
20
|
-
return mockAsyncActivities(mock);
|
|
21
|
-
return mock;
|
|
16
|
+
function runWithClock(clock, fn) {
|
|
17
|
+
if (clock === false || clock === undefined)
|
|
18
|
+
return fn();
|
|
19
|
+
return TestClock.run(clock, fn);
|
|
22
20
|
}
|
|
23
21
|
export async function runWorkflow(workflow, input, options = {}) {
|
|
22
|
+
const { output } = await runWorkflowDetailed(workflow, input, options);
|
|
23
|
+
return output;
|
|
24
|
+
}
|
|
25
|
+
export async function runWorkflowDetailed(workflow, input, options = {}) {
|
|
26
|
+
const history = options.history ?? [];
|
|
27
|
+
const logs = options.logs ?? [];
|
|
28
|
+
const restoreStrict = options.strict ? StrictGuard.install() : undefined;
|
|
29
|
+
let clockNow;
|
|
30
|
+
try {
|
|
31
|
+
const output = await runWithClock(options.clock, async () => {
|
|
32
|
+
const result = await runWorkflowTicks(workflow, input, {
|
|
33
|
+
...options,
|
|
34
|
+
history,
|
|
35
|
+
logs,
|
|
36
|
+
mockAsyncActivity: resolveMockAsyncActivity(options),
|
|
37
|
+
});
|
|
38
|
+
if (TestClock.isActive())
|
|
39
|
+
clockNow = TestClock.now();
|
|
40
|
+
return result;
|
|
41
|
+
});
|
|
42
|
+
return { output, history, logs, clockNow };
|
|
43
|
+
}
|
|
44
|
+
finally {
|
|
45
|
+
restoreStrict?.();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
export async function runWorkflowTicks(workflow, input, options) {
|
|
24
49
|
const claims = options.claims ?? [];
|
|
25
50
|
const env = options.env ?? {};
|
|
26
51
|
const maxTicks = options.maxTicks ?? 10_000;
|
|
27
|
-
const history =
|
|
28
|
-
const
|
|
29
|
-
const
|
|
30
|
-
const resolutionState = { index: 0 };
|
|
52
|
+
const { history, logs } = options;
|
|
53
|
+
const mock = options.mockAsyncActivity;
|
|
54
|
+
const resolutionState = { callCount: 0 };
|
|
31
55
|
for (let tick = 0; tick < maxTicks; tick++) {
|
|
32
56
|
try {
|
|
33
57
|
return await Internals.runWorkflow(workflow, {
|
|
@@ -41,7 +65,7 @@ export async function runWorkflow(workflow, input, options = {}) {
|
|
|
41
65
|
catch (pushOrError) {
|
|
42
66
|
if (!(pushOrError instanceof PushActivity))
|
|
43
67
|
throw pushOrError;
|
|
44
|
-
const item = await resolveActivity(pushOrError, { claims, env },
|
|
68
|
+
const item = await resolveActivity(pushOrError, { claims, env }, mock, resolutionState);
|
|
45
69
|
history.push(item);
|
|
46
70
|
}
|
|
47
71
|
}
|
|
@@ -82,14 +106,14 @@ async function resolveAsyncActivity(activity, bootstrap, context, input, mockAsy
|
|
|
82
106
|
throw new Error('Unknown async activity result');
|
|
83
107
|
const name = activity.constructor.name;
|
|
84
108
|
if (!mockAsyncActivity)
|
|
85
|
-
throw new Error(`Async activity "${name}" is pending and no
|
|
109
|
+
throw new Error(`Async activity "${name}" is pending and no mockAsyncActivity was provided`);
|
|
86
110
|
const outcome = await mockAsyncActivity(activity, {
|
|
87
111
|
input,
|
|
88
112
|
pending: bootstrap,
|
|
89
|
-
|
|
113
|
+
callCount: resolutionState?.callCount ?? 0,
|
|
90
114
|
});
|
|
91
115
|
if (resolutionState)
|
|
92
|
-
resolutionState.
|
|
116
|
+
resolutionState.callCount++;
|
|
93
117
|
return outcomeToHistoryItem(activity, outcome, bootstrap, context, name);
|
|
94
118
|
}
|
|
95
119
|
async function outcomeToHistoryItem(activity, outcome, pending, context, name) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-workflow.js","sourceRoot":"","sources":["../../src/testing/run-workflow.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run-workflow.js","sourceRoot":"","sources":["../../src/testing/run-workflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ClaimProvider } from '../../models/Claim.js';
|
|
2
|
+
import type { ClaimConstructor } from '../typings/ClaimConstructor.js';
|
|
3
|
+
export declare function createMockClaim<T extends ClaimConstructor>(ClaimClass: T, implementation?: Partial<InstanceType<T>>): InstanceType<T>;
|
|
4
|
+
export declare function mockClaim<T extends ClaimConstructor>(ClaimClass: T, implementation?: Partial<InstanceType<T>>): ClaimProvider<InstanceType<T>>;
|
|
5
|
+
//# sourceMappingURL=create-mock-claim.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-mock-claim.d.ts","sourceRoot":"","sources":["../../../src/testing/tools/create-mock-claim.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAEtE,wBAAgB,eAAe,CAAC,CAAC,SAAS,gBAAgB,EACxD,UAAU,EAAE,CAAC,EACb,cAAc,GAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAM,GAC5C,YAAY,CAAC,CAAC,CAAC,CAuBjB;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,gBAAgB,EAClD,UAAU,EAAE,CAAC,EACb,cAAc,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GACxC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAKhC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export function createMockClaim(ClaimClass, implementation = {}) {
|
|
2
|
+
const name = ClaimClass.name;
|
|
3
|
+
return new Proxy(implementation, {
|
|
4
|
+
get(target, propertyKey, receiver) {
|
|
5
|
+
if (propertyKey in target) {
|
|
6
|
+
const value = Reflect.get(target, propertyKey, receiver);
|
|
7
|
+
if (typeof value === 'function')
|
|
8
|
+
return value.bind(target);
|
|
9
|
+
return value;
|
|
10
|
+
}
|
|
11
|
+
if (propertyKey === 'then')
|
|
12
|
+
return undefined;
|
|
13
|
+
return () => {
|
|
14
|
+
throw new Error(`Mock ${name}.${String(propertyKey)} was not implemented. ` +
|
|
15
|
+
`Provide it via mockClaim(${name}, { ${String(propertyKey)}: ... }).`);
|
|
16
|
+
};
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
export function mockClaim(ClaimClass, implementation) {
|
|
21
|
+
return {
|
|
22
|
+
provide: ClaimClass,
|
|
23
|
+
value: createMockClaim(ClaimClass, implementation ?? {}),
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=create-mock-claim.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-mock-claim.js","sourceRoot":"","sources":["../../../src/testing/tools/create-mock-claim.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,eAAe,CAC7B,UAAa,EACb,iBAA2C,EAAE;IAE7C,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAA;IAE5B,OAAO,IAAI,KAAK,CAAC,cAAwB,EAAE;QACzC,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ;YAC/B,IAAI,WAAW,IAAI,MAAM,EAAE,CAAC;gBAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;gBAExD,IAAI,OAAO,KAAK,KAAK,UAAU;oBAAE,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBAE1D,OAAO,KAAK,CAAA;YACd,CAAC;YAED,IAAI,WAAW,KAAK,MAAM;gBAAE,OAAO,SAAS,CAAA;YAE5C,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,KAAK,CACb,QAAQ,IAAI,IAAI,MAAM,CAAC,WAAW,CAAC,wBAAwB;oBACzD,4BAA4B,IAAI,OAAO,MAAM,CAAC,WAAW,CAAC,WAAW,CACxE,CAAA;YACH,CAAC,CAAA;QACH,CAAC;KACF,CAAoB,CAAA;AACvB,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,UAAa,EACb,cAAyC;IAEzC,OAAO;QACL,OAAO,EAAE,UAAU;QACnB,KAAK,EAAE,eAAe,CAAC,UAAU,EAAE,cAAc,IAAI,EAAE,CAAC;KACzD,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ClaimProvider } from '../../models/Claim.js';
|
|
2
|
+
import type { ClaimConstructor } from '../typings/ClaimConstructor.js';
|
|
3
|
+
export type MockClaimEntry = readonly [
|
|
4
|
+
claim: ClaimConstructor,
|
|
5
|
+
implementation?: Partial<InstanceType<ClaimConstructor>>
|
|
6
|
+
];
|
|
7
|
+
export declare function createMockClaims(entries: readonly MockClaimEntry[]): readonly ClaimProvider<any>[];
|
|
8
|
+
//# sourceMappingURL=create-mock-claims.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-mock-claims.d.ts","sourceRoot":"","sources":["../../../src/testing/tools/create-mock-claims.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAEtE,MAAM,MAAM,cAAc,GAAG,SAAS;IACpC,KAAK,EAAE,gBAAgB;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;CACzD,CAAA;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,SAAS,cAAc,EAAE,GACjC,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE,CAI/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-mock-claims.js","sourceRoot":"","sources":["../../../src/testing/tools/create-mock-claims.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AASlD,MAAM,UAAU,gBAAgB,CAC9B,OAAkC;IAElC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,EAAE,CAClD,SAAS,CAAC,UAAU,EAAE,cAAc,IAAI,EAAE,CAAC,CAC5C,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Env } from '../../models/Env.js';
|
|
2
|
+
export declare function createTestEnv(overrides: Record<string, string | undefined>, base?: Record<string, string | undefined>): Record<string, string | undefined>;
|
|
3
|
+
export declare function createTestEnvEntries(overrides: Record<string, string | undefined>, base?: Record<string, string | undefined>): Env.Entries;
|
|
4
|
+
//# sourceMappingURL=create-test-env.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-test-env.d.ts","sourceRoot":"","sources":["../../../src/testing/tools/create-test-env.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAE9C,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAC7C,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAM,GAC5C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAEpC;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAC7C,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAM,GAC5C,GAAG,CAAC,OAAO,CAEb"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-test-env.js","sourceRoot":"","sources":["../../../src/testing/tools/create-test-env.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,aAAa,CAC3B,SAA6C,EAC7C,OAA2C,EAAE;IAE7C,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,SAAS,EAAE,CAAA;AAClC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,SAA6C,EAC7C,OAA2C,EAAE;IAE7C,OAAO,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;AACvC,CAAC"}
|