@motiadev/test 0.8.2-beta.140-428722 → 0.8.3-beta.140
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/event-manager.d.ts +5 -5
- package/dist/src/event-manager.js +11 -13
- package/dist/src/tester.js +12 -8
- package/package.json +3 -3
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import type { EventManager } from '@motiadev/core';
|
|
2
|
+
import { QueueManager } from '@motiadev/core';
|
|
3
|
+
interface TestEventManager extends EventManager {
|
|
4
4
|
waitEvents(): Promise<void>;
|
|
5
|
-
|
|
5
|
+
queueManager: QueueManager;
|
|
6
6
|
}
|
|
7
|
-
export declare const createEventManager: (
|
|
7
|
+
export declare const createEventManager: () => TestEventManager;
|
|
8
8
|
export {};
|
|
@@ -2,26 +2,24 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createEventManager = void 0;
|
|
4
4
|
const core_1 = require("@motiadev/core");
|
|
5
|
-
const createEventManager = (
|
|
5
|
+
const createEventManager = () => {
|
|
6
|
+
const queueManager = new core_1.QueueManager();
|
|
7
|
+
const productionEventManager = (0, core_1.createEventManager)(queueManager);
|
|
6
8
|
const waitEvents = async () => {
|
|
7
9
|
await new Promise((resolve) => setTimeout(resolve, 200));
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
10
|
+
// Wait for all queue processing to complete
|
|
11
|
+
let hasWork = true;
|
|
12
|
+
while (hasWork) {
|
|
13
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
14
|
+
const metrics = queueManager.getAllMetrics();
|
|
15
|
+
hasWork = Object.values(metrics).some((m) => m.queueDepth > 0 || m.processingCount > 0);
|
|
15
16
|
}
|
|
16
17
|
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
17
18
|
};
|
|
18
|
-
const subscribe = (topic, stepName, handler) => {
|
|
19
|
-
eventAdapter.subscribe(topic, stepName, handler);
|
|
20
|
-
};
|
|
21
19
|
return {
|
|
22
|
-
|
|
20
|
+
...productionEventManager,
|
|
23
21
|
waitEvents,
|
|
24
|
-
|
|
22
|
+
queueManager,
|
|
25
23
|
};
|
|
26
24
|
};
|
|
27
25
|
exports.createEventManager = createEventManager;
|
package/dist/src/tester.js
CHANGED
|
@@ -10,17 +10,16 @@ const path_1 = __importDefault(require("path"));
|
|
|
10
10
|
const supertest_1 = __importDefault(require("supertest"));
|
|
11
11
|
const event_manager_1 = require("./event-manager");
|
|
12
12
|
const createMotiaTester = () => {
|
|
13
|
-
const
|
|
14
|
-
const eventManager = (0, event_manager_1.createEventManager)(eventAdapter);
|
|
13
|
+
const eventManager = (0, event_manager_1.createEventManager)();
|
|
15
14
|
const logger = new core_1.Logger();
|
|
16
15
|
const promise = (async () => {
|
|
17
16
|
const lockedData = await (0, motia_1.generateLockedData)({
|
|
18
17
|
projectDir: path_1.default.join(process.cwd()),
|
|
19
|
-
streamAdapter:
|
|
18
|
+
streamAdapter: 'memory',
|
|
20
19
|
printerType: 'disabled',
|
|
21
20
|
});
|
|
22
21
|
const state = (0, core_1.createStateAdapter)({ adapter: 'memory' });
|
|
23
|
-
const { server, socketServer, close } = (0, core_1.createServer)(lockedData, state, { isVerbose: false },
|
|
22
|
+
const { server, socketServer, close } = (0, core_1.createServer)(lockedData, eventManager, state, { isVerbose: false }, eventManager.queueManager);
|
|
24
23
|
return { server, socketServer, eventManager, state, close };
|
|
25
24
|
})();
|
|
26
25
|
return {
|
|
@@ -31,10 +30,15 @@ const createMotiaTester = () => {
|
|
|
31
30
|
emit: async (event) => eventManager.emit(event),
|
|
32
31
|
watch: async (event) => {
|
|
33
32
|
const events = [];
|
|
34
|
-
eventManager.subscribe(
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
33
|
+
eventManager.subscribe({
|
|
34
|
+
event,
|
|
35
|
+
filePath: '$watcher',
|
|
36
|
+
handlerName: '$watcher',
|
|
37
|
+
handler: async (event) => {
|
|
38
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
39
|
+
const { logger, tracer, ...rest } = event;
|
|
40
|
+
events.push(rest);
|
|
41
|
+
},
|
|
38
42
|
});
|
|
39
43
|
return {
|
|
40
44
|
getCapturedEvents: () => events,
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@motiadev/test",
|
|
3
3
|
"description": "A testing utility package for Motia workflows that provides tools for mocking, testing, and simulating Motia components.",
|
|
4
|
-
"version": "0.8.
|
|
4
|
+
"version": "0.8.3-beta.140",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"peerDependencies": {
|
|
8
|
-
"@motiadev/core": "0.8.
|
|
9
|
-
"motia": "0.8.
|
|
8
|
+
"@motiadev/core": "0.8.3-beta.140",
|
|
9
|
+
"motia": "0.8.3-beta.140"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"jest": "^29.7.0",
|