@etohq/test-utils 1.5.5-next-20260413091455 → 2.0.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.
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap-app.d.ts","sourceRoot":"","sources":["../../src/eto-test-runner-utils/bootstrap-app.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAyDrD,wBAAsB,QAAQ,CAAC,EAC7B,GAAG,EACH,GAAQ,GACT,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;CAAO,GAAG,OAAO,CAAC;IACzD,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7B,SAAS,EAAE,YAAY,CAAA;CACxB,CAAC,CAuBD"}
1
+ {"version":3,"file":"bootstrap-app.d.ts","sourceRoot":"","sources":["../../src/eto-test-runner-utils/bootstrap-app.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AA2DrD,wBAAsB,QAAQ,CAAC,EAC7B,GAAG,EACH,GAAQ,GACT,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;CAAO,GAAG,OAAO,CAAC;IACzD,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7B,SAAS,EAAE,YAAY,CAAA;CACxB,CAAC,CAkBD"}
@@ -31,7 +31,7 @@ async function getAvailablePort() {
31
31
  });
32
32
  });
33
33
  }
34
- // toodo refactor ... this will not work.
34
+ // toodo refactor ... this will not work.
35
35
  async function bootstrapApp({ cwd, env = {}, } = {}) {
36
36
  (0, utils_1.applyEnvVarsToProcess)(env);
37
37
  const loaders = require("@etohq/eto/loaders/index").default;
@@ -48,7 +48,7 @@ async function bootstrapApp({ cwd, env = {}, } = {}) {
48
48
  };
49
49
  }
50
50
  async function startApp({ cwd, env = {}, } = {}) {
51
- const { container, shutdown: etoShutdown, } = await bootstrapApp({
51
+ const { container, shutdown: etoShutdown } = await bootstrapApp({
52
52
  cwd,
53
53
  env,
54
54
  });
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap-app.js","sourceRoot":"","sources":["../../src/eto-test-runner-utils/bootstrap-app.ts"],"names":[],"mappings":";;;;;AA2DA,4BA6BC;AAxFD,wDAA0B;AAC1B,+BAA8B;AAE9B,mCAA+C;AAC/C,kDAAmD;AAEnD,KAAK,UAAU,gBAAgB;IAC7B,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE;QAC/C,MAAM,MAAM,GAAG,kBAAG,CAAC,YAAY,EAAE,CAAA;QAEjC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC7B,MAAM,CAAC,KAAK,CAAC,CAAA;QACf,CAAC,CAAC,CAAA;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE;YACpB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;YAEhC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC5C,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC,CAAC,CAAA;gBAC5E,OAAM;YACR,CAAC;YAED,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;YACxB,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACrB,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,CAAC,KAAK,CAAC,CAAA;oBACb,OAAM;gBACR,CAAC;gBAED,WAAW,CAAC,IAAI,CAAC,CAAA;YACnB,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,0CAA0C;AAC1C,KAAK,UAAU,YAAY,CAAC,EAC1B,GAAG,EACH,GAAG,GAAG,EAAE,MACoC,EAAE;IAC9C,IAAA,6BAAqB,EAAC,GAAG,CAAC,CAAA;IAE1B,MAAM,OAAO,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC,OAAO,CAAA;IAE3D,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,OAAO,CAAC;QAC5C,SAAS,EAAE,IAAA,cAAO,EAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;KACzC,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI;QAC3B,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QAC5B,CAAC,CAAC,MAAM,gBAAgB,EAAE,CAAA;IAE5B,OAAO;QACL,QAAQ;QACR,SAAS;QACT,IAAI,EAAE,IAAI;KACX,CAAA;AACH,CAAC;AAEM,KAAK,UAAU,QAAQ,CAAC,EAC7B,GAAG,EACH,GAAG,GAAG,EAAE,MACoC,EAAE;IAI9C,MAAM,EACJ,SAAS,EACT,QAAQ,EAAE,WAAW,GACtB,GAAG,MAAM,YAAY,CAAC;QACrB,GAAG;QACH,GAAG;KACJ,CAAC,CAAA;IAGF,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC1B,MAAM,IAAA,kBAAU,EAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;QAEjC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,EAAE,EAAE,EAAE,CAAC;YAChD,MAAM,CAAC,EAAE,EAAE,CAAA;QACb,CAAC;IACH,CAAC,CAAA;IAED,OAAO;QACL,QAAQ;QACR,SAAS;KACV,CAAA;AAEH,CAAC"}
1
+ {"version":3,"file":"bootstrap-app.js","sourceRoot":"","sources":["../../src/eto-test-runner-utils/bootstrap-app.ts"],"names":[],"mappings":";;;;;AA6DA,4BAwBC;AArFD,wDAA0B;AAC1B,+BAA8B;AAE9B,mCAA+C;AAC/C,kDAAmD;AAEnD,KAAK,UAAU,gBAAgB;IAC7B,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE;QAC/C,MAAM,MAAM,GAAG,kBAAG,CAAC,YAAY,EAAE,CAEhC;QAAC,MAAc,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;YAC9C,MAAM,CAAC,KAAK,CAAC,CAAA;QACf,CAAC,CAAC,CAAA;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE;YACpB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;YAEhC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC5C,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAChB,MAAM,CAAC,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC,CACzD,CAAA;gBACD,OAAM;YACR,CAAC;YAED,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;YACxB,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACrB,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,CAAC,KAAK,CAAC,CAAA;oBACb,OAAM;gBACR,CAAC;gBAED,WAAW,CAAC,IAAI,CAAC,CAAA;YACnB,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,yCAAyC;AACzC,KAAK,UAAU,YAAY,CAAC,EAC1B,GAAG,EACH,GAAG,GAAG,EAAE,MACoC,EAAE;IAC9C,IAAA,6BAAqB,EAAC,GAAG,CAAC,CAAA;IAE1B,MAAM,OAAO,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC,OAAO,CAAA;IAE3D,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,OAAO,CAAC;QAC5C,SAAS,EAAE,IAAA,cAAO,EAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;KACzC,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI;QAC3B,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QAC5B,CAAC,CAAC,MAAM,gBAAgB,EAAE,CAAA;IAE5B,OAAO;QACL,QAAQ;QACR,SAAS;QACT,IAAI,EAAE,IAAI;KACX,CAAA;AACH,CAAC;AAEM,KAAK,UAAU,QAAQ,CAAC,EAC7B,GAAG,EACH,GAAG,GAAG,EAAE,MACoC,EAAE;IAI9C,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,YAAY,CAAC;QAC9D,GAAG;QACH,GAAG;KACJ,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC1B,MAAM,IAAA,kBAAU,EAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;QAEjC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,EAAE,EAAE,EAAE,CAAC;YAChD,MAAM,CAAC,EAAE,EAAE,CAAA;QACb,CAAC;IACH,CAAC,CAAA;IAED,OAAO;QACL,QAAQ;QACR,SAAS;KACV,CAAA;AACH,CAAC"}
package/dist/index.d.ts CHANGED
@@ -8,4 +8,5 @@ export * from "./eto-test-runner-utils";
8
8
  export { default as MockEventBusService } from "./mock-event-bus-service";
9
9
  export * from "./module-test-runner";
10
10
  export * from "./block-integration-test-runner";
11
+ export * from "./workflow-integration-test-runner";
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,iBAAiB,MAAM,YAAY,CAAA;AAC/C,OAAO,KAAK,cAAc,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,UAAU,CAAA;AAC3C,cAAc,gBAAgB,CAAA;AAC9B,OAAO,KAAK,SAAS,MAAM,QAAQ,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,yBAAyB,CAAA;AACvC,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AACzE,cAAc,sBAAsB,CAAA;AACpC,cAAc,iCAAiC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,iBAAiB,MAAM,YAAY,CAAA;AAC/C,OAAO,KAAK,cAAc,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,UAAU,CAAA;AAC3C,cAAc,gBAAgB,CAAA;AAC9B,OAAO,KAAK,SAAS,MAAM,QAAQ,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,yBAAyB,CAAA;AACvC,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AACzE,cAAc,sBAAsB,CAAA;AACpC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,oCAAoC,CAAA"}
package/dist/index.js CHANGED
@@ -52,4 +52,5 @@ var mock_event_bus_service_1 = require("./mock-event-bus-service");
52
52
  Object.defineProperty(exports, "MockEventBusService", { enumerable: true, get: function () { return __importDefault(mock_event_bus_service_1).default; } });
53
53
  __exportStar(require("./module-test-runner"), exports);
54
54
  __exportStar(require("./block-integration-test-runner"), exports);
55
+ __exportStar(require("./workflow-integration-test-runner"), exports);
55
56
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gEAA+C;AAC/C,2DAA0C;AAC1C,mCAA2C;AAAlC,gHAAA,OAAO,OAAS;AACzB,iDAA8B;AAC9B,oDAAmC;AACnC,oDAAiC;AACjC,0DAAuC;AACvC,mEAAyE;AAAhE,8IAAA,OAAO,OAAuB;AACvC,uDAAoC;AACpC,kEAA+C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gEAA+C;AAC/C,2DAA0C;AAC1C,mCAA2C;AAAlC,gHAAA,OAAO,OAAS;AACzB,iDAA8B;AAC9B,oDAAmC;AACnC,oDAAiC;AACjC,0DAAuC;AACvC,mEAAyE;AAAhE,8IAAA,OAAO,OAAuB;AACvC,uDAAoC;AACpC,kEAA+C;AAC/C,qEAAkD"}
@@ -1 +1 @@
1
- {"root":["../src/block-integration-test-runner.ts","../src/database.ts","../src/eto-test-runner.ts","../src/events.ts","../src/id-map.ts","../src/index.ts","../src/init-modules.ts","../src/jest.ts","../src/mock-event-bus-service.ts","../src/module-test-runner.ts","../src/eto-test-runner-utils/bootstrap-app.ts","../src/eto-test-runner-utils/clear-instances.ts","../src/eto-test-runner-utils/config.ts","../src/eto-test-runner-utils/index.ts","../src/eto-test-runner-utils/use-db.ts","../src/eto-test-runner-utils/utils.ts"],"version":"5.8.3"}
1
+ {"root":["../src/block-integration-test-runner.ts","../src/database.ts","../src/eto-test-runner.ts","../src/events.ts","../src/id-map.ts","../src/index.ts","../src/init-modules.ts","../src/jest.ts","../src/mock-event-bus-service.ts","../src/module-test-runner.ts","../src/workflow-integration-test-runner.ts","../src/eto-test-runner-utils/bootstrap-app.ts","../src/eto-test-runner-utils/clear-instances.ts","../src/eto-test-runner-utils/config.ts","../src/eto-test-runner-utils/index.ts","../src/eto-test-runner-utils/use-db.ts","../src/eto-test-runner-utils/utils.ts"],"version":"5.8.3"}
@@ -0,0 +1,24 @@
1
+ import type { EtoContainer } from "@etohq/framework/types";
2
+ type InjectedDependencies = Record<string, unknown>;
3
+ export type WorkflowTestModuleConfig = {
4
+ resolve: string;
5
+ moduleModels?: (Function | object)[];
6
+ moduleOptions?: Record<string, unknown>;
7
+ moduleDependencies?: string[];
8
+ moduleDefinition?: Record<string, unknown>;
9
+ };
10
+ export type WorkflowIntegrationTestRunnerOptions = {
11
+ suiteName: string;
12
+ modules: Record<string, WorkflowTestModuleConfig>;
13
+ schema?: string;
14
+ debug?: boolean;
15
+ injectedDependencies?: InjectedDependencies;
16
+ defaultModulesDefinition?: Record<string, unknown>;
17
+ testSuite: (options: {
18
+ getContainer: () => EtoContainer;
19
+ getModules: () => Record<string, unknown>;
20
+ }) => void;
21
+ };
22
+ export declare function workflowIntegrationTestRunner(options: WorkflowIntegrationTestRunnerOptions): void;
23
+ export {};
24
+ //# sourceMappingURL=workflow-integration-test-runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-integration-test-runner.d.ts","sourceRoot":"","sources":["../src/workflow-integration-test-runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAGb,MAAM,wBAAwB,CAAA;AAiB/B,KAAK,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEnD,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAA;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC3C,CAAA;AAED,MAAM,MAAM,oCAAoC,GAAG;IACjD,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAA;IACjD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IAC3C,wBAAwB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClD,SAAS,EAAE,CAAC,OAAO,EAAE;QACnB,YAAY,EAAE,MAAM,YAAY,CAAA;QAChC,UAAU,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC1C,KAAK,IAAI,CAAA;CACX,CAAA;AAuND,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,oCAAoC,QAyJ9C"}
@@ -0,0 +1,330 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.workflowIntegrationTestRunner = workflowIntegrationTestRunner;
40
+ const utils_1 = require("@etohq/framework/utils");
41
+ const modules_sdk_1 = require("@etohq/framework/modules-sdk");
42
+ const mock_event_bus_service_1 = __importDefault(require("./mock-event-bus-service"));
43
+ const database_1 = require("./database");
44
+ const init_modules_1 = require("./init-modules");
45
+ const fs = __importStar(require("fs"));
46
+ const crypto_1 = __importDefault(require("crypto"));
47
+ const isRecord = (value) => {
48
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
49
+ };
50
+ const readDefinitionDependencies = (definition) => {
51
+ if (!isRecord(definition)) {
52
+ return undefined;
53
+ }
54
+ const dependencies = definition["dependencies"];
55
+ if (!Array.isArray(dependencies)) {
56
+ return undefined;
57
+ }
58
+ return dependencies.filter((value) => typeof value === "string");
59
+ };
60
+ const isContainerLike = (value) => {
61
+ return isRecord(value) && typeof value["resolve"] === "function";
62
+ };
63
+ const resolveEtoContainerFromEtoApp = (etoApp) => {
64
+ if (!isRecord(etoApp)) {
65
+ throw new Error("Expected initModules().etoApp to be an object.");
66
+ }
67
+ const sharedContainer = etoApp["sharedContainer"];
68
+ if (isContainerLike(sharedContainer)) {
69
+ return sharedContainer;
70
+ }
71
+ const candidates = [];
72
+ const strongCandidates = [];
73
+ for (const value of Object.values(etoApp)) {
74
+ if (!isContainerLike(value)) {
75
+ continue;
76
+ }
77
+ candidates.push(value);
78
+ if (isRecord(value) &&
79
+ "registrations" in value &&
80
+ isRecord(value["registrations"])) {
81
+ strongCandidates.push(value);
82
+ }
83
+ }
84
+ if (strongCandidates.length === 1) {
85
+ return strongCandidates[0];
86
+ }
87
+ if (candidates.length === 1) {
88
+ return candidates[0];
89
+ }
90
+ throw new Error("Failed to resolve Eto container from initModules().");
91
+ };
92
+ const createDefaultModuleDefinition = (key) => ({
93
+ key,
94
+ defaultPackage: false,
95
+ label: key,
96
+ isRequired: false,
97
+ isQueryable: true,
98
+ dependencies: [utils_1.ContainerRegistrationKeys.LOGGER],
99
+ defaultModuleDeclaration: {
100
+ scope: modules_sdk_1.MODULE_SCOPE?.INTERNAL ?? "internal",
101
+ },
102
+ });
103
+ const resolveModelsForModule = (moduleResolvePath) => {
104
+ const basePath = (0, utils_1.normalizeImportPathWithSource)(moduleResolvePath);
105
+ const modelsPath = fs.existsSync(`${basePath}/models`)
106
+ ? "/models"
107
+ : fs.existsSync(`${basePath}/dist/models`)
108
+ ? "/dist/models"
109
+ : fs.existsSync(`${basePath}/src/models`)
110
+ ? "/src/models"
111
+ : "";
112
+ if (!modelsPath) {
113
+ return [];
114
+ }
115
+ return (0, utils_1.loadModels)(`${basePath}${modelsPath}`);
116
+ };
117
+ const sanitizeDbIdentifier = (value) => {
118
+ return value
119
+ .toLowerCase()
120
+ .replace(/[^a-z0-9_]+/g, "_")
121
+ .replace(/^_+/, "")
122
+ .replace(/_+$/, "");
123
+ };
124
+ const buildDatabaseName = (suiteName, worker) => {
125
+ const prefix = "eto-";
126
+ const suffix = `-integration-${worker}`;
127
+ const maxLen = 63;
128
+ const available = maxLen - prefix.length - suffix.length;
129
+ const slug = sanitizeDbIdentifier(suiteName);
130
+ if (slug.length <= available) {
131
+ return `${prefix}${slug}${suffix}`;
132
+ }
133
+ const hash = crypto_1.default.createHash("sha1").update(slug).digest("hex").slice(0, 8);
134
+ const trimmed = slug.slice(0, Math.max(0, available - (hash.length + 1)));
135
+ return `${prefix}${trimmed}-${hash}${suffix}`;
136
+ };
137
+ const createInMemoryCacheService = () => {
138
+ return {
139
+ async get(key) {
140
+ void key;
141
+ return null;
142
+ },
143
+ async set(key, value, ttl) {
144
+ void key;
145
+ void value;
146
+ void ttl;
147
+ },
148
+ async invalidate(key) {
149
+ void key;
150
+ },
151
+ async delete(key) {
152
+ void key;
153
+ },
154
+ };
155
+ };
156
+ const createInMemoryLockingService = () => {
157
+ const heldLocks = new Set();
158
+ const normalizeKeys = (keys) => {
159
+ return Array.isArray(keys) ? keys : [keys];
160
+ };
161
+ return {
162
+ async acquire(keys) {
163
+ const normalizedKeys = normalizeKeys(keys);
164
+ for (const key of normalizedKeys) {
165
+ if (heldLocks.has(key)) {
166
+ throw new Error(`Lock already acquired for key: ${key}`);
167
+ }
168
+ }
169
+ for (const key of normalizedKeys) {
170
+ heldLocks.add(key);
171
+ }
172
+ },
173
+ async release(keys) {
174
+ const normalizedKeys = normalizeKeys(keys);
175
+ for (const key of normalizedKeys) {
176
+ heldLocks.delete(key);
177
+ }
178
+ return true;
179
+ },
180
+ async execute(keys, job) {
181
+ await this.acquire(keys);
182
+ try {
183
+ return await job();
184
+ }
185
+ finally {
186
+ await this.release(keys);
187
+ }
188
+ },
189
+ };
190
+ };
191
+ const ensureDatabaseExists = async (params) => {
192
+ const admin = utils_1.ModulesSdkUtils.createPgConnection({
193
+ clientUrl: `postgres://${params.dbUser}:${params.dbPassword}@${params.dbHost}/postgres`,
194
+ schema: "public",
195
+ debug: false,
196
+ });
197
+ try {
198
+ const res = await admin.raw(`SELECT 1 FROM pg_database WHERE datname = ? LIMIT 1;`, [params.dbName]);
199
+ const rows = res.rows;
200
+ const exists = Array.isArray(rows) && rows.length > 0;
201
+ if (!exists) {
202
+ await admin.raw(`CREATE DATABASE "${params.dbName}";`);
203
+ }
204
+ }
205
+ finally {
206
+ await admin.destroy();
207
+ }
208
+ };
209
+ function workflowIntegrationTestRunner(options) {
210
+ process.env.LOG_LEVEL = "error";
211
+ const worker = parseInt(process.env.JEST_WORKER_ID || "1", 10);
212
+ const dbName = buildDatabaseName(options.suiteName, worker);
213
+ const schema = options.schema ?? "public";
214
+ const dbHost = process.env.DB_HOST ?? "localhost";
215
+ const dbUser = process.env.DB_USERNAME ?? "postgres";
216
+ const dbPassword = process.env.DB_PASSWORD ?? "postgres";
217
+ const dbConfig = {
218
+ clientUrl: `postgres://${dbUser}:${dbPassword}@${dbHost}/${dbName}`,
219
+ schema,
220
+ debug: options.debug ?? false,
221
+ };
222
+ const connection = utils_1.ModulesSdkUtils.createPgConnection(dbConfig);
223
+ const allModels = [];
224
+ for (const mod of Object.values(options.modules)) {
225
+ const models = mod.moduleModels ?? resolveModelsForModule(mod.resolve);
226
+ allModels.push(...models);
227
+ }
228
+ const mikroOrmEntities = (0, utils_1.toMikroOrmEntities)(allModels);
229
+ const MikroOrmWrapper = (0, database_1.getMikroOrmWrapper)({
230
+ mikroOrmEntities,
231
+ clientUrl: dbConfig.clientUrl,
232
+ schema,
233
+ });
234
+ const modulesConfig = {};
235
+ const moduleDefinitions = {};
236
+ const configModule = options.injectedDependencies?.[utils_1.ContainerRegistrationKeys.CONFIG_MODULE];
237
+ const userModulesDefinition = options.defaultModulesDefinition ?? configModule?.modulesDefinition ?? {};
238
+ for (const [moduleName, mod] of Object.entries(options.modules)) {
239
+ const definition = mod.moduleDefinition ??
240
+ userModulesDefinition[moduleName] ??
241
+ createDefaultModuleDefinition(moduleName);
242
+ moduleDefinitions[moduleName] = definition;
243
+ modulesConfig[moduleName] = {
244
+ definition,
245
+ resolve: mod.resolve,
246
+ dependencies: mod.moduleDependencies ?? readDefinitionDependencies(definition),
247
+ options: {
248
+ database: dbConfig,
249
+ ...(mod.moduleOptions ?? {}),
250
+ [utils_1.isSharedConnectionSymbol]: true,
251
+ },
252
+ };
253
+ }
254
+ const injectedDependencies = {
255
+ [utils_1.ContainerRegistrationKeys.PG_CONNECTION]: connection,
256
+ [utils_1.Modules.EVENT_BUS]: new mock_event_bus_service_1.default(),
257
+ cache: createInMemoryCacheService(),
258
+ [utils_1.Modules.LOCKING]: createInMemoryLockingService(),
259
+ [utils_1.ContainerRegistrationKeys.LOGGER]: console,
260
+ [utils_1.ContainerRegistrationKeys.CONFIG_MODULE]: {
261
+ modulesDefinition: {
262
+ ...moduleDefinitions,
263
+ ...userModulesDefinition,
264
+ },
265
+ modules: modulesConfig,
266
+ projectConfig: {},
267
+ },
268
+ ...(options.injectedDependencies ?? {}),
269
+ };
270
+ let shutdown;
271
+ let etoApp = null;
272
+ let container = null;
273
+ let databaseEnsured = false;
274
+ const getContainer = () => {
275
+ if (!container) {
276
+ throw new Error("Container is not initialized yet.");
277
+ }
278
+ return container;
279
+ };
280
+ const getModules = () => {
281
+ const current = etoApp;
282
+ if (!isRecord(current)) {
283
+ throw new Error("EtoApp is not initialized yet.");
284
+ }
285
+ const mods = current["modules"];
286
+ if (!isRecord(mods)) {
287
+ throw new Error("EtoApp.modules is missing.");
288
+ }
289
+ return mods;
290
+ };
291
+ const beforeEach_ = async () => {
292
+ if (!databaseEnsured) {
293
+ await ensureDatabaseExists({ dbName, dbHost, dbUser, dbPassword });
294
+ databaseEnsured = true;
295
+ }
296
+ if (mikroOrmEntities.length) {
297
+ await MikroOrmWrapper.setupDatabase();
298
+ }
299
+ const output = await (0, init_modules_1.initModules)({
300
+ injectedDependencies,
301
+ databaseConfig: dbConfig,
302
+ modulesConfig,
303
+ joinerConfig: [],
304
+ preventConnectionDestroyWarning: true,
305
+ });
306
+ shutdown = output.shutdown;
307
+ etoApp = output.etoApp;
308
+ container = resolveEtoContainerFromEtoApp(output.etoApp);
309
+ };
310
+ const afterEach_ = async () => {
311
+ if (mikroOrmEntities.length) {
312
+ await MikroOrmWrapper.clearDatabase();
313
+ }
314
+ await shutdown?.();
315
+ modules_sdk_1.EtoModule.clearInstances();
316
+ shutdown = undefined;
317
+ etoApp = null;
318
+ container = null;
319
+ };
320
+ return describe("", () => {
321
+ beforeEach(beforeEach_);
322
+ afterEach(afterEach_);
323
+ afterAll(async () => {
324
+ await connection.context?.destroy();
325
+ await connection.destroy();
326
+ });
327
+ options.testSuite({ getContainer, getModules });
328
+ });
329
+ }
330
+ //# sourceMappingURL=workflow-integration-test-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-integration-test-runner.js","sourceRoot":"","sources":["../src/workflow-integration-test-runner.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@etohq/test-utils",
3
- "version": "1.5.5-next-20260413091455",
3
+ "version": "2.0.0",
4
4
  "description": "Test utils for Eto",
5
5
  "main": "dist/index.js",
6
6
  "repository": {
@@ -31,20 +31,20 @@
31
31
  "pg-god": "1.0.12",
32
32
  "rimraf": "5.0.2",
33
33
  "typescript": "5.8.3",
34
- "@etohq/framework": "1.5.5-next-20260413091455"
34
+ "@etohq/framework": "2.0.0"
35
35
  },
36
36
  "dependencies": {
37
37
  "@types/express": "4.17.17",
38
38
  "axios": "1.7.7",
39
39
  "get-port": "7.1.0",
40
40
  "randomatic": "3.1.1",
41
- "@etohq/utils": "1.5.5-next-20260413091455"
41
+ "@etohq/utils": "2.0.0"
42
42
  },
43
43
  "peerDependencies": {
44
44
  "@mikro-orm/postgresql": "6.4.3",
45
45
  "awilix": "8.0.1",
46
- "@etohq/framework": "1.5.5-next-20260413091455",
47
- "@etohq/eto": "1.5.5-next-20260413091455"
46
+ "@etohq/eto": "2.0.0",
47
+ "@etohq/framework": "2.0.0"
48
48
  },
49
49
  "peerDependenciesMeta": {
50
50
  "@etohq/eto": {