@etohq/test-utils 1.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.
Files changed (62) hide show
  1. package/dist/database.d.ts +29 -0
  2. package/dist/database.d.ts.map +1 -0
  3. package/dist/database.js +139 -0
  4. package/dist/database.js.map +1 -0
  5. package/dist/eto-test-runner-utils/bootstrap-app.d.ts +10 -0
  6. package/dist/eto-test-runner-utils/bootstrap-app.d.ts.map +1 -0
  7. package/dist/eto-test-runner-utils/bootstrap-app.js +59 -0
  8. package/dist/eto-test-runner-utils/bootstrap-app.js.map +1 -0
  9. package/dist/eto-test-runner-utils/clear-instances.d.ts +8 -0
  10. package/dist/eto-test-runner-utils/clear-instances.d.ts.map +1 -0
  11. package/dist/eto-test-runner-utils/clear-instances.js +14 -0
  12. package/dist/eto-test-runner-utils/clear-instances.js.map +1 -0
  13. package/dist/eto-test-runner-utils/config.d.ts +5 -0
  14. package/dist/eto-test-runner-utils/config.d.ts.map +1 -0
  15. package/dist/eto-test-runner-utils/config.js +31 -0
  16. package/dist/eto-test-runner-utils/config.js.map +1 -0
  17. package/dist/eto-test-runner-utils/index.d.ts +6 -0
  18. package/dist/eto-test-runner-utils/index.d.ts.map +1 -0
  19. package/dist/eto-test-runner-utils/index.js +22 -0
  20. package/dist/eto-test-runner-utils/index.js.map +1 -0
  21. package/dist/eto-test-runner-utils/use-db.d.ts +15 -0
  22. package/dist/eto-test-runner-utils/use-db.d.ts.map +1 -0
  23. package/dist/eto-test-runner-utils/use-db.js +56 -0
  24. package/dist/eto-test-runner-utils/use-db.js.map +1 -0
  25. package/dist/eto-test-runner-utils/utils.d.ts +2 -0
  26. package/dist/eto-test-runner-utils/utils.d.ts.map +1 -0
  27. package/dist/eto-test-runner-utils/utils.js +10 -0
  28. package/dist/eto-test-runner-utils/utils.js.map +1 -0
  29. package/dist/eto-test-runner.d.ts +31 -0
  30. package/dist/eto-test-runner.d.ts.map +1 -0
  31. package/dist/eto-test-runner.js +144 -0
  32. package/dist/eto-test-runner.js.map +1 -0
  33. package/dist/events.d.ts +3 -0
  34. package/dist/events.d.ts.map +1 -0
  35. package/dist/events.js +41 -0
  36. package/dist/events.js.map +1 -0
  37. package/dist/id-map.d.ts +7 -0
  38. package/dist/id-map.d.ts.map +1 -0
  39. package/dist/id-map.js +22 -0
  40. package/dist/id-map.js.map +1 -0
  41. package/dist/index.d.ts +10 -0
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/index.js +44 -0
  44. package/dist/index.js.map +1 -0
  45. package/dist/init-modules.d.ts +18 -0
  46. package/dist/init-modules.d.ts.map +1 -0
  47. package/dist/init-modules.js +45 -0
  48. package/dist/init-modules.js.map +1 -0
  49. package/dist/jest.d.ts +2 -0
  50. package/dist/jest.d.ts.map +1 -0
  51. package/dist/jest.js +24 -0
  52. package/dist/jest.js.map +1 -0
  53. package/dist/mock-event-bus-service.d.ts +9 -0
  54. package/dist/mock-event-bus-service.d.ts.map +1 -0
  55. package/dist/mock-event-bus-service.js +19 -0
  56. package/dist/mock-event-bus-service.js.map +1 -0
  57. package/dist/module-test-runner.d.ts +24 -0
  58. package/dist/module-test-runner.d.ts.map +1 -0
  59. package/dist/module-test-runner.js +148 -0
  60. package/dist/module-test-runner.js.map +1 -0
  61. package/dist/tsconfig.tsbuildinfo +1 -0
  62. package/package.json +60 -0
@@ -0,0 +1,29 @@
1
+ import { MikroORM, Options, SqlEntityManager } from "@mikro-orm/postgresql";
2
+ export declare function getDatabaseURL(dbName?: string): string;
3
+ export declare function getMikroOrmConfig({ mikroOrmEntities, pathToMigrations, clientUrl, schema, }: {
4
+ mikroOrmEntities: any[];
5
+ pathToMigrations?: string;
6
+ clientUrl?: string;
7
+ schema?: string;
8
+ }): Options;
9
+ export interface TestDatabase {
10
+ mikroOrmEntities: any[];
11
+ pathToMigrations?: string;
12
+ schema?: string;
13
+ clientUrl?: string;
14
+ orm: MikroORM | null;
15
+ manager: SqlEntityManager | null;
16
+ setupDatabase(): Promise<void>;
17
+ clearDatabase(): Promise<void>;
18
+ getManager(): SqlEntityManager;
19
+ forkManager(): SqlEntityManager;
20
+ getOrm(): MikroORM;
21
+ }
22
+ export declare function getMikroOrmWrapper({ mikroOrmEntities, pathToMigrations, clientUrl, schema, }: {
23
+ mikroOrmEntities: any[];
24
+ pathToMigrations?: string;
25
+ clientUrl?: string;
26
+ schema?: string;
27
+ }): TestDatabase;
28
+ export declare const dbTestUtilFactory: () => any;
29
+ //# sourceMappingURL=database.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAa3E,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAStD;AAED,wBAAgB,iBAAiB,CAAC,EAChC,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,EACT,MAAM,GACP,EAAE;IACD,gBAAgB,EAAE,GAAG,EAAE,CAAA;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,GAAG,OAAO,CAiBV;AAED,MAAM,WAAW,YAAY;IAC3B,gBAAgB,EAAE,GAAG,EAAE,CAAA;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,GAAG,EAAE,QAAQ,GAAG,IAAI,CAAA;IACpB,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAEhC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9B,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9B,UAAU,IAAI,gBAAgB,CAAA;IAC9B,WAAW,IAAI,gBAAgB,CAAA;IAC/B,MAAM,IAAI,QAAQ,CAAA;CACnB;AAED,wBAAgB,kBAAkB,CAAC,EACjC,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,EACT,MAAM,GACP,EAAE;IACD,gBAAgB,EAAE,GAAG,EAAE,CAAA;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,GAAG,YAAY,CA2Ff;AAED,eAAO,MAAM,iBAAiB,QAAO,GAyCnC,CAAA"}
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dbTestUtilFactory = void 0;
4
+ exports.getDatabaseURL = getDatabaseURL;
5
+ exports.getMikroOrmConfig = getMikroOrmConfig;
6
+ exports.getMikroOrmWrapper = getMikroOrmWrapper;
7
+ const postgresql_1 = require("@mikro-orm/postgresql");
8
+ const pg_god_1 = require("pg-god");
9
+ const DB_HOST = process.env.DB_HOST ?? "localhost";
10
+ const DB_USERNAME = process.env.DB_USERNAME ?? "";
11
+ const DB_PASSWORD = process.env.DB_PASSWORD ?? "";
12
+ const pgGodCredentials = {
13
+ user: DB_USERNAME,
14
+ password: DB_PASSWORD,
15
+ host: DB_HOST,
16
+ };
17
+ function getDatabaseURL(dbName) {
18
+ const DB_HOST = process.env.DB_HOST ?? "localhost";
19
+ const DB_USERNAME = process.env.DB_USERNAME ?? "";
20
+ const DB_PASSWORD = process.env.DB_PASSWORD;
21
+ const DB_NAME = dbName ?? process.env.DB_TEMP_NAME;
22
+ return `postgres://${DB_USERNAME}${DB_PASSWORD ? `:${DB_PASSWORD}` : ""}@${DB_HOST}/${DB_NAME}`;
23
+ }
24
+ function getMikroOrmConfig({ mikroOrmEntities, pathToMigrations, clientUrl, schema, }) {
25
+ const DB_URL = clientUrl ?? getDatabaseURL();
26
+ return {
27
+ type: "postgresql",
28
+ clientUrl: DB_URL,
29
+ entities: Object.values(mikroOrmEntities),
30
+ schema: schema ?? process.env.ETO_DB_SCHEMA,
31
+ debug: false,
32
+ pool: {
33
+ min: 2,
34
+ },
35
+ migrations: {
36
+ pathTs: pathToMigrations,
37
+ silent: true,
38
+ },
39
+ };
40
+ }
41
+ function getMikroOrmWrapper({ mikroOrmEntities, pathToMigrations, clientUrl, schema, }) {
42
+ return {
43
+ mikroOrmEntities,
44
+ pathToMigrations,
45
+ clientUrl: clientUrl ?? getDatabaseURL(),
46
+ schema: schema ?? process.env.ETO_DB_SCHEMA,
47
+ orm: null,
48
+ manager: null,
49
+ getManager() {
50
+ if (this.manager === null) {
51
+ throw new Error("manager entity not available");
52
+ }
53
+ return this.manager;
54
+ },
55
+ forkManager() {
56
+ if (this.manager === null) {
57
+ throw new Error("manager entity not available");
58
+ }
59
+ return this.manager.fork();
60
+ },
61
+ getOrm() {
62
+ if (this.orm === null) {
63
+ throw new Error("orm entity not available");
64
+ }
65
+ return this.orm;
66
+ },
67
+ async setupDatabase() {
68
+ const OrmConfig = getMikroOrmConfig({
69
+ mikroOrmEntities: this.mikroOrmEntities,
70
+ pathToMigrations: this.pathToMigrations,
71
+ clientUrl: this.clientUrl,
72
+ schema: this.schema,
73
+ });
74
+ // Initializing the ORM
75
+ this.orm = await postgresql_1.MikroORM.init(OrmConfig);
76
+ this.manager = this.orm.em;
77
+ try {
78
+ await this.orm.getSchemaGenerator().ensureDatabase();
79
+ }
80
+ catch (err) {
81
+ console.log(err);
82
+ }
83
+ await this.manager?.execute(`CREATE SCHEMA IF NOT EXISTS "${this.schema ?? "public"}";`);
84
+ const pendingMigrations = await this.orm
85
+ .getMigrator()
86
+ .getPendingMigrations();
87
+ if (pendingMigrations && pendingMigrations.length > 0) {
88
+ await this.orm
89
+ .getMigrator()
90
+ .up({ migrations: pendingMigrations.map((m) => m.name) });
91
+ }
92
+ else {
93
+ await this.orm.schema.refreshDatabase(); // ensure db exists and is fresh
94
+ }
95
+ },
96
+ async clearDatabase() {
97
+ if (this.orm === null) {
98
+ throw new Error("ORM not configured");
99
+ }
100
+ await this.manager?.execute(`DROP SCHEMA IF EXISTS "${this.schema ?? "public"}" CASCADE;`);
101
+ await this.manager?.execute(`CREATE SCHEMA IF NOT EXISTS "${this.schema ?? "public"}";`);
102
+ try {
103
+ await this.orm.close();
104
+ }
105
+ catch { }
106
+ this.orm = null;
107
+ this.manager = null;
108
+ },
109
+ };
110
+ }
111
+ const dbTestUtilFactory = () => ({
112
+ pgConnection_: null,
113
+ create: async function (dbName) {
114
+ await (0, pg_god_1.createDatabase)({ databaseName: dbName, errorIfExist: false }, pgGodCredentials);
115
+ },
116
+ teardown: async function ({ schema } = {}) {
117
+ if (!this.pgConnection_) {
118
+ return;
119
+ }
120
+ const runRawQuery = this.pgConnection_.raw.bind(this.pgConnection_);
121
+ schema ??= "public";
122
+ await runRawQuery(`SET session_replication_role = 'replica';`);
123
+ const { rows: tableNames } = await runRawQuery(`SELECT table_name
124
+ FROM information_schema.tables
125
+ WHERE table_schema = '${schema}';`);
126
+ for (const { table_name } of tableNames) {
127
+ await runRawQuery(`DELETE
128
+ FROM ${schema}."${table_name}";`);
129
+ }
130
+ await runRawQuery(`SET session_replication_role = 'origin';`);
131
+ },
132
+ shutdown: async function (dbName) {
133
+ await this.pgConnection_?.context?.destroy();
134
+ await this.pgConnection_?.destroy();
135
+ return await (0, pg_god_1.dropDatabase)({ databaseName: dbName, errorIfNonExist: false }, pgGodCredentials);
136
+ },
137
+ });
138
+ exports.dbTestUtilFactory = dbTestUtilFactory;
139
+ //# sourceMappingURL=database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { EtoContainer } from "@etohq/framework/types";
2
+ export declare function startApp({ cwd, env, }?: {
3
+ cwd?: string;
4
+ env?: Record<any, any>;
5
+ }): Promise<{
6
+ shutdown: () => Promise<void>;
7
+ container: EtoContainer;
8
+ port: number;
9
+ }>;
10
+ //# sourceMappingURL=bootstrap-app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap-app.d.ts","sourceRoot":"","sources":["../../src/eto-test-runner-utils/bootstrap-app.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AA4BrD,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;IACvB,IAAI,EAAE,MAAM,CAAA;CACb,CAAC,CAyCD"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.startApp = startApp;
7
+ const express_1 = __importDefault(require("express"));
8
+ const get_port_1 = __importDefault(require("get-port"));
9
+ const path_1 = require("path");
10
+ const utils_1 = require("./utils");
11
+ const utils_2 = require("@etohq/framework/utils");
12
+ async function bootstrapApp({ cwd, env = {}, } = {}) {
13
+ const app = (0, express_1.default)();
14
+ (0, utils_1.applyEnvVarsToProcess)(env);
15
+ const loaders = require("@etohq/eto/loaders/index").default;
16
+ const { container, shutdown } = await loaders({
17
+ directory: (0, path_1.resolve)(cwd || process.cwd()),
18
+ expressApp: app,
19
+ });
20
+ const PORT = process.env.PORT ? parseInt(process.env.PORT) : await (0, get_port_1.default)();
21
+ return {
22
+ shutdown,
23
+ container,
24
+ app,
25
+ port: PORT,
26
+ };
27
+ }
28
+ async function startApp({ cwd, env = {}, } = {}) {
29
+ const { app, port, container, shutdown: etoShutdown, } = await bootstrapApp({
30
+ cwd,
31
+ env,
32
+ });
33
+ let expressServer;
34
+ const shutdown = async () => {
35
+ await (0, utils_2.promiseAll)([expressServer?.shutdown(), etoShutdown()]);
36
+ if (typeof global !== "undefined" && global?.gc) {
37
+ global.gc();
38
+ }
39
+ };
40
+ return await new Promise((resolve, reject) => {
41
+ const server = app
42
+ .listen(port)
43
+ .on("error", async (err) => {
44
+ await shutdown();
45
+ return reject(err);
46
+ })
47
+ .on("listening", () => {
48
+ process.send?.(port);
49
+ resolve({
50
+ shutdown,
51
+ container,
52
+ port,
53
+ });
54
+ });
55
+ // TODO: fix that once we find the appropriate place to put this util
56
+ expressServer = utils_2.GracefulShutdownServer.create(server);
57
+ });
58
+ }
59
+ //# sourceMappingURL=bootstrap-app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap-app.js","sourceRoot":"","sources":["../../src/eto-test-runner-utils/bootstrap-app.ts"],"names":[],"mappings":";;;;;AA+BA,4BAgDC;AA/ED,sDAA6B;AAC7B,wDAA8B;AAC9B,+BAA8B;AAE9B,mCAA+C;AAC/C,kDAA2E;AAE3E,KAAK,UAAU,YAAY,CAAC,EAC1B,GAAG,EACH,GAAG,GAAG,EAAE,MACoC,EAAE;IAC9C,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAA;IACrB,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;QACxC,UAAU,EAAE,GAAG;KAChB,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,IAAA,kBAAO,GAAE,CAAA;IAE5E,OAAO;QACL,QAAQ;QACR,SAAS;QACT,GAAG;QACH,IAAI,EAAE,IAAI;KACX,CAAA;AACH,CAAC;AAEM,KAAK,UAAU,QAAQ,CAAC,EAC7B,GAAG,EACH,GAAG,GAAG,EAAE,MACoC,EAAE;IAK9C,MAAM,EACJ,GAAG,EACH,IAAI,EACJ,SAAS,EACT,QAAQ,EAAE,WAAW,GACtB,GAAG,MAAM,YAAY,CAAC;QACrB,GAAG;QACH,GAAG;KACJ,CAAC,CAAA;IAEF,IAAI,aAAa,CAAA;IAEjB,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC1B,MAAM,IAAA,kBAAU,EAAC,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,CAAA;QAE5D,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,EAAE,EAAE,EAAE,CAAC;YAChD,MAAM,CAAC,EAAE,EAAE,CAAA;QACb,CAAC;IACH,CAAC,CAAA;IAED,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,MAAM,MAAM,GAAG,GAAG;aACf,MAAM,CAAC,IAAI,CAAC;aACZ,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACzB,MAAM,QAAQ,EAAE,CAAA;YAChB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;QACpB,CAAC,CAAC;aACD,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;YACpB,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAA;YAEpB,OAAO,CAAC;gBACN,QAAQ;gBACR,SAAS;gBACT,IAAI;aACL,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEJ,qEAAqE;QACrE,aAAa,GAAG,8BAAsB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACvD,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * cleanup temporary created resources for the migrations
3
+ * @internal I didnt find a god place to put that, should we eventually add a close function
4
+ * to the planner to handle that part? so that you would do planner.close() and it will handle the cleanup
5
+ * automatically just like we usually do for the classic migrations actions
6
+ */
7
+ export declare function clearInstances(): Promise<void>;
8
+ //# sourceMappingURL=clear-instances.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clear-instances.d.ts","sourceRoot":"","sources":["../../src/eto-test-runner-utils/clear-instances.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAsB,cAAc,kBAGnC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.clearInstances = clearInstances;
4
+ /**
5
+ * cleanup temporary created resources for the migrations
6
+ * @internal I didnt find a god place to put that, should we eventually add a close function
7
+ * to the planner to handle that part? so that you would do planner.close() and it will handle the cleanup
8
+ * automatically just like we usually do for the classic migrations actions
9
+ */
10
+ async function clearInstances() {
11
+ const { EtoModule } = require("@etohq/framework/modules-sdk");
12
+ EtoModule.clearInstances();
13
+ }
14
+ //# sourceMappingURL=clear-instances.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clear-instances.js","sourceRoot":"","sources":["../../src/eto-test-runner-utils/clear-instances.ts"],"names":[],"mappings":";;AAMA,wCAGC;AATD;;;;;GAKG;AACI,KAAK,UAAU,cAAc;IAClC,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAA;IAC7D,SAAS,CAAC,cAAc,EAAE,CAAA;AAC5B,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare function configLoaderOverride(entryDirectory: string, override: {
2
+ clientUrl: string;
3
+ debug?: boolean;
4
+ }): Promise<void>;
5
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/eto-test-runner-utils/config.ts"],"names":[],"mappings":"AAEA,wBAAsB,oBAAoB,CACxC,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,iBAgCjD"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.configLoaderOverride = configLoaderOverride;
4
+ const utils_1 = require("@etohq/framework/utils");
5
+ async function configLoaderOverride(entryDirectory, override) {
6
+ const { configManager } = await import("@etohq/framework/config");
7
+ const { logger } = await import("@etohq/framework");
8
+ const { configModule, error } = await (0, utils_1.getConfigFile)(entryDirectory, "eto-config");
9
+ if (error) {
10
+ throw new Error(error.message || "Error during config loading");
11
+ }
12
+ configModule.projectConfig.databaseDriverOptions;
13
+ configModule.projectConfig.databaseUrl = override.clientUrl;
14
+ configModule.projectConfig.databaseLogging = !!override.debug;
15
+ configModule.projectConfig.databaseDriverOptions =
16
+ override.clientUrl.includes("localhost")
17
+ ? {}
18
+ : {
19
+ connection: {
20
+ ssl: { rejectUnauthorized: false },
21
+ },
22
+ idle_in_transaction_session_timeout: 20000,
23
+ };
24
+ logger.info("Disabling admin as we run integration tests");
25
+ Object.assign(configModule.admin ?? {}, { disable: true });
26
+ configManager.loadConfig({
27
+ projectConfig: configModule,
28
+ baseDir: entryDirectory,
29
+ });
30
+ }
31
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/eto-test-runner-utils/config.ts"],"names":[],"mappings":";;AAEA,oDAkCC;AApCD,kDAAsD;AAE/C,KAAK,UAAU,oBAAoB,CACxC,cAAsB,EACtB,QAAgD;IAEhD,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAA;IACjE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAA;IACnD,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,MAAM,IAAA,qBAAa,EAEjD,cAAc,EAAE,YAAY,CAAC,CAAA;IAE/B,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,IAAI,6BAA6B,CAAC,CAAA;IACjE,CAAC;IAED,YAAY,CAAC,aAAa,CAAC,qBAAqB,CAAA;IAChD,YAAY,CAAC,aAAa,CAAC,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAA;IAC3D,YAAY,CAAC,aAAa,CAAC,eAAe,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAA;IAC7D,YAAY,CAAC,aAAa,CAAC,qBAAqB;QAC9C,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC;YACtC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,UAAU,EAAE;oBACV,GAAG,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE;iBACnC;gBACD,mCAAmC,EAAE,KAAK;aAC3C,CAAA;IAEP,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAA;IAC1D,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IAE1D,aAAa,CAAC,UAAU,CAAC;QACvB,aAAa,EAAE,YAAY;QAC3B,OAAO,EAAE,cAAc;KACxB,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from "./bootstrap-app";
2
+ export * from "./clear-instances";
3
+ export * from "./config";
4
+ export * from "./use-db";
5
+ export * from "./utils";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/eto-test-runner-utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA"}
@@ -0,0 +1,22 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./bootstrap-app"), exports);
18
+ __exportStar(require("./clear-instances"), exports);
19
+ __exportStar(require("./config"), exports);
20
+ __exportStar(require("./use-db"), exports);
21
+ __exportStar(require("./utils"), exports);
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/eto-test-runner-utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAA+B;AAC/B,oDAAiC;AACjC,2CAAwB;AACxB,2CAAwB;AACxB,0CAAuB"}
@@ -0,0 +1,15 @@
1
+ import type { EtoAppLoader } from "@etohq/framework";
2
+ import { EtoContainer } from "@etohq/framework/types";
3
+ /**
4
+ * Initiates the database connection
5
+ */
6
+ export declare function initDb(): Promise<any>;
7
+ /**
8
+ * Migrates the database
9
+ */
10
+ export declare function migrateDatabase(appLoader: EtoAppLoader): Promise<void>;
11
+ /**
12
+ * Syncs links with the databse
13
+ */
14
+ export declare function syncLinks(appLoader: EtoAppLoader, directory: string, container: EtoContainer): Promise<void>;
15
+ //# sourceMappingURL=use-db.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-db.d.ts","sourceRoot":"","sources":["../../src/eto-test-runner-utils/use-db.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAGrD;;GAEG;AACH,wBAAsB,MAAM,iBAS3B;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,SAAS,EAAE,YAAY,iBAO5D;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,SAAS,EAAE,YAAY,EACvB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,YAAY,iBAexB"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.initDb = initDb;
4
+ exports.migrateDatabase = migrateDatabase;
5
+ exports.syncLinks = syncLinks;
6
+ const path_1 = require("path");
7
+ const utils_1 = require("@etohq/framework/utils");
8
+ /**
9
+ * Initiates the database connection
10
+ */
11
+ async function initDb() {
12
+ const { pgConnectionLoader, featureFlagsLoader } = await import("@etohq/framework");
13
+ const pgConnection = pgConnectionLoader();
14
+ await featureFlagsLoader();
15
+ return pgConnection;
16
+ }
17
+ /**
18
+ * Migrates the database
19
+ */
20
+ async function migrateDatabase(appLoader) {
21
+ try {
22
+ await appLoader.runModulesMigrations();
23
+ }
24
+ catch (err) {
25
+ console.error("Something went wrong while running the migrations");
26
+ throw err;
27
+ }
28
+ }
29
+ /**
30
+ * Syncs links with the databse
31
+ */
32
+ async function syncLinks(appLoader, directory, container) {
33
+ try {
34
+ await loadCustomLinks(directory, container);
35
+ const planner = await appLoader.getLinksExecutionPlanner();
36
+ const actionPlan = await planner.createPlan();
37
+ actionPlan.forEach((action) => {
38
+ console.log(`Sync links: "${action.action}" ${action.tableName}`);
39
+ });
40
+ await planner.executePlan(actionPlan);
41
+ }
42
+ catch (err) {
43
+ console.error("Something went wrong while syncing links");
44
+ throw err;
45
+ }
46
+ }
47
+ async function loadCustomLinks(directory, container) {
48
+ // TODO: move to framework once settle down
49
+ const { getResolvedPlugins, } = require("@etohq/eto/loaders/helpers/resolve-plugins");
50
+ const configModule = container.resolve(utils_1.ContainerRegistrationKeys.CONFIG_MODULE);
51
+ const plugins = await getResolvedPlugins(directory, configModule, true);
52
+ const linksSourcePaths = plugins.map((plugin) => (0, path_1.join)(plugin.resolve, "links"));
53
+ const { LinkLoader } = await import("@etohq/framework");
54
+ await new LinkLoader(linksSourcePaths).load();
55
+ }
56
+ //# sourceMappingURL=use-db.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-db.js","sourceRoot":"","sources":["../../src/eto-test-runner-utils/use-db.ts"],"names":[],"mappings":";;AAQA,wBASC;AAKD,0CAOC;AAKD,8BAkBC;AAnDD,+BAA2B;AAE3B,kDAAkE;AAElE;;GAEG;AACI,KAAK,UAAU,MAAM;IAC1B,MAAM,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAC7D,kBAAkB,CACnB,CAAA;IAED,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAA;IACzC,MAAM,kBAAkB,EAAE,CAAA;IAE1B,OAAO,YAAY,CAAA;AACrB,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,eAAe,CAAC,SAAuB;IAC3D,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,oBAAoB,EAAE,CAAA;IACxC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAA;QAClE,MAAM,GAAG,CAAA;IACX,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,SAAS,CAC7B,SAAuB,EACvB,SAAiB,EACjB,SAAuB;IAEvB,IAAI,CAAC;QACH,MAAM,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;QAE3C,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,wBAAwB,EAAE,CAAA;QAC1D,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAA;QAC7C,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAC5B,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC,CAAA;QACnE,CAAC,CAAC,CAAA;QACF,MAAM,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;IACvC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAA;QACzD,MAAM,GAAG,CAAA;IACX,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,SAAiB,EAAE,SAAuB;IACvE,2CAA2C;IAC3C,MAAM,EACJ,kBAAkB,GACnB,GAAG,OAAO,CAAC,4CAA4C,CAAC,CAAA;IAEzD,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CACpC,iCAAyB,CAAC,aAAa,CACxC,CAAA;IACD,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,SAAS,EAAE,YAAY,EAAE,IAAI,CAAC,CAAA;IACvE,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAC9C,IAAA,WAAI,EAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAC9B,CAAA;IAED,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAA;IACvD,MAAM,IAAI,UAAU,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAA;AAC/C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function applyEnvVarsToProcess(env?: Record<any, any>): void;
2
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/eto-test-runner-utils/utils.ts"],"names":[],"mappings":"AAEA,wBAAgB,qBAAqB,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,QAI3D"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.applyEnvVarsToProcess = applyEnvVarsToProcess;
4
+ const utils_1 = require("@etohq/framework/utils");
5
+ function applyEnvVarsToProcess(env) {
6
+ if ((0, utils_1.isObject)(env)) {
7
+ Object.entries(env).forEach(([k, v]) => (process.env[k] = v));
8
+ }
9
+ }
10
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/eto-test-runner-utils/utils.ts"],"names":[],"mappings":";;AAEA,sDAIC;AAND,kDAAiD;AAEjD,SAAgB,qBAAqB,CAAC,GAAsB;IAC1D,IAAI,IAAA,gBAAQ,EAAC,GAAG,CAAC,EAAE,CAAC;QAClB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAC/D,CAAC;AACH,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { EtoAppOutput } from "@etohq/framework/modules-sdk";
2
+ import { EtoContainer } from "@etohq/framework/types";
3
+ export interface EtoSuiteOptions {
4
+ dbConnection: any;
5
+ getContainer: () => EtoContainer;
6
+ api: any;
7
+ dbUtils: {
8
+ create: (dbName: string) => Promise<void>;
9
+ teardown: (options: {
10
+ schema?: string;
11
+ }) => Promise<void>;
12
+ shutdown: (dbName: string) => Promise<void>;
13
+ };
14
+ dbConfig: {
15
+ dbName: string;
16
+ schema: string;
17
+ clientUrl: string;
18
+ };
19
+ getEtoApp: () => EtoAppOutput;
20
+ }
21
+ export declare function etoIntegrationTestRunner({ moduleName, dbName, etoConfigFile, schema, env, debug, inApp, testSuite, }: {
22
+ moduleName?: string;
23
+ env?: Record<string, any>;
24
+ dbName?: string;
25
+ etoConfigFile?: string;
26
+ schema?: string;
27
+ debug?: boolean;
28
+ inApp?: boolean;
29
+ testSuite: (options: EtoSuiteOptions) => void;
30
+ }): void;
31
+ //# sourceMappingURL=eto-test-runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eto-test-runner.d.ts","sourceRoot":"","sources":["../src/eto-test-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAiB,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAiBpE,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,GAAG,CAAA;IACjB,YAAY,EAAE,MAAM,YAAY,CAAA;IAChC,GAAG,EAAE,GAAG,CAAA;IACR,OAAO,EAAE;QACP,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;QACzC,QAAQ,EAAE,CAAC,OAAO,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;QACzD,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;KAC5C,CAAA;IACD,QAAQ,EAAE;QACR,MAAM,EAAE,MAAM,CAAA;QACd,MAAM,EAAE,MAAM,CAAA;QACd,SAAS,EAAE,MAAM,CAAA;KAClB,CAAA;IACD,SAAS,EAAE,MAAM,YAAY,CAAA;CAC9B;AAED,wBAAgB,wBAAwB,CAAC,EACvC,UAAU,EACV,MAAM,EACN,aAAa,EACb,MAAiB,EACjB,GAAQ,EACR,KAAa,EACb,KAAa,EACb,SAAS,GACV,EAAE;IACD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAA;CAC9C,QAyKA"}