@motiadev/test 0.8.6-beta.143 → 0.8.6-beta.144-481431
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 +13 -11
- package/dist/src/tester.js +8 -12
- package/package.json +3 -3
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import type { Event, EventAdapter } from '@motiadev/core';
|
|
2
|
+
interface TestEventManager {
|
|
3
|
+
emit: <TData>(event: Event<TData>, file?: string) => Promise<void>;
|
|
4
4
|
waitEvents(): Promise<void>;
|
|
5
|
-
|
|
5
|
+
subscribe: <TData>(topic: string, stepName: string, handler: (event: Event<TData>) => void | Promise<void>) => void;
|
|
6
6
|
}
|
|
7
|
-
export declare const createEventManager: () => TestEventManager;
|
|
7
|
+
export declare const createEventManager: (eventAdapter: EventAdapter) => TestEventManager;
|
|
8
8
|
export {};
|
|
@@ -2,24 +2,26 @@
|
|
|
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 = () => {
|
|
6
|
-
const queueManager = new core_1.QueueManager();
|
|
7
|
-
const productionEventManager = (0, core_1.createEventManager)(queueManager);
|
|
5
|
+
const createEventManager = (eventAdapter) => {
|
|
8
6
|
const waitEvents = async () => {
|
|
9
7
|
await new Promise((resolve) => setTimeout(resolve, 200));
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
8
|
+
if (eventAdapter instanceof core_1.DefaultQueueEventAdapter) {
|
|
9
|
+
let hasWork = true;
|
|
10
|
+
while (hasWork) {
|
|
11
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
12
|
+
const metrics = eventAdapter.getAllMetrics();
|
|
13
|
+
hasWork = Object.values(metrics).some((m) => m.queueDepth > 0 || m.processingCount > 0);
|
|
14
|
+
}
|
|
16
15
|
}
|
|
17
16
|
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
18
17
|
};
|
|
18
|
+
const subscribe = (topic, stepName, handler) => {
|
|
19
|
+
eventAdapter.subscribe(topic, stepName, handler);
|
|
20
|
+
};
|
|
19
21
|
return {
|
|
20
|
-
|
|
22
|
+
emit: eventAdapter.emit,
|
|
21
23
|
waitEvents,
|
|
22
|
-
|
|
24
|
+
subscribe,
|
|
23
25
|
};
|
|
24
26
|
};
|
|
25
27
|
exports.createEventManager = createEventManager;
|
package/dist/src/tester.js
CHANGED
|
@@ -10,16 +10,17 @@ 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
|
|
13
|
+
const eventAdapter = new core_1.DefaultQueueEventAdapter();
|
|
14
|
+
const eventManager = (0, event_manager_1.createEventManager)(eventAdapter);
|
|
14
15
|
const logger = new core_1.Logger();
|
|
15
16
|
const promise = (async () => {
|
|
16
17
|
const lockedData = await (0, motia_1.generateLockedData)({
|
|
17
18
|
projectDir: path_1.default.join(process.cwd()),
|
|
18
|
-
streamAdapter:
|
|
19
|
+
streamAdapter: new core_1.MemoryStreamAdapterManager(),
|
|
19
20
|
printerType: 'disabled',
|
|
20
21
|
});
|
|
21
22
|
const state = (0, core_1.createStateAdapter)({ adapter: 'memory' });
|
|
22
|
-
const { server, socketServer, close } = (0, core_1.createServer)(lockedData,
|
|
23
|
+
const { server, socketServer, close } = (0, core_1.createServer)(lockedData, state, { isVerbose: false }, { eventAdapter, cronAdapter: new core_1.DefaultCronAdapter() });
|
|
23
24
|
return { server, socketServer, eventManager, state, close };
|
|
24
25
|
})();
|
|
25
26
|
return {
|
|
@@ -30,15 +31,10 @@ const createMotiaTester = () => {
|
|
|
30
31
|
emit: async (event) => eventManager.emit(event),
|
|
31
32
|
watch: async (event) => {
|
|
32
33
|
const events = [];
|
|
33
|
-
eventManager.subscribe({
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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
|
-
},
|
|
34
|
+
eventManager.subscribe(event, '$watcher', async (event) => {
|
|
35
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
36
|
+
const { logger, tracer, ...rest } = event;
|
|
37
|
+
events.push(rest);
|
|
42
38
|
});
|
|
43
39
|
return {
|
|
44
40
|
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.6-beta.
|
|
4
|
+
"version": "0.8.6-beta.144-481431",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"peerDependencies": {
|
|
8
|
-
"
|
|
9
|
-
"
|
|
8
|
+
"@motiadev/core": "0.8.6-beta.144-481431",
|
|
9
|
+
"motia": "0.8.6-beta.144-481431"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"jest": "^29.7.0",
|