@motiadev/test 0.8.2-beta.140-628177 → 0.8.2-beta.140-111855

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/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
+ export * from './src/event-manager';
2
+ export * from './src/helpers';
1
3
  export * from './src/tester';
2
4
  export * from './src/types';
3
- export * from './src/helpers';
4
- export * from './src/event-manager';
package/dist/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./src/event-manager"), exports);
18
+ __exportStar(require("./src/helpers"), exports);
17
19
  __exportStar(require("./src/tester"), exports);
18
20
  __exportStar(require("./src/types"), exports);
19
- __exportStar(require("./src/helpers"), exports);
20
- __exportStar(require("./src/event-manager"), exports);
@@ -1,6 +1,8 @@
1
- import { EventManager } from '@motiadev/core';
1
+ import type { EventManager } from '@motiadev/core';
2
+ import { QueueManager } from '@motiadev/core';
2
3
  interface TestEventManager extends EventManager {
3
4
  waitEvents(): Promise<void>;
5
+ queueManager: QueueManager;
4
6
  }
5
7
  export declare const createEventManager: () => TestEventManager;
6
8
  export {};
@@ -1,32 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createEventManager = void 0;
4
+ const core_1 = require("@motiadev/core");
4
5
  const createEventManager = () => {
5
- const handlers = {};
6
- const events = [];
6
+ const queueManager = new core_1.QueueManager();
7
+ const productionEventManager = (0, core_1.createEventManager)(queueManager);
7
8
  const waitEvents = async () => {
8
- let eventsToAwait = [...events];
9
- // We need to wait for all events to be resolved because the event manager is async
10
- // and we need to ensure that all events have been processed before we can continue
11
- while (eventsToAwait.length > 0) {
12
- events.splice(0, eventsToAwait.length);
13
- await Promise.race([Promise.allSettled(eventsToAwait), new Promise((resolve) => setTimeout(resolve, 2000))]);
14
- eventsToAwait = [...events];
9
+ await new Promise((resolve) => setTimeout(resolve, 200));
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
  }
17
+ await new Promise((resolve) => setTimeout(resolve, 100));
16
18
  };
17
- const emit = async (event) => {
18
- const eventHandlers = handlers[event.topic] ?? [];
19
- events.push(...eventHandlers.map((handler) => handler(event)));
19
+ return {
20
+ ...productionEventManager,
21
+ waitEvents,
22
+ queueManager,
20
23
  };
21
- const subscribe = (config) => {
22
- const { event, handler } = config;
23
- if (!handlers[event]) {
24
- handlers[event] = [];
25
- }
26
- handlers[event].push(handler);
27
- };
28
- // We don't need to unsubscribe in the test environment
29
- const unsubscribe = () => { };
30
- return { emit, subscribe, waitEvents, unsubscribe };
31
24
  };
32
25
  exports.createEventManager = createEventManager;
@@ -1,5 +1,5 @@
1
1
  import { Logger } from '@motiadev/core';
2
- import { MockFlowContext } from './types';
2
+ import type { MockFlowContext } from './types';
3
3
  export declare const createMockLogger: () => jest.Mocked<Logger>;
4
4
  export declare const setupLoggerMock: () => void;
5
5
  export declare const createMockContext: (options?: {
@@ -1,2 +1,2 @@
1
- import { MotiaTester } from './types';
1
+ import type { MotiaTester } from './types';
2
2
  export declare const createMotiaTester: () => MotiaTester;
@@ -19,7 +19,7 @@ const createMotiaTester = () => {
19
19
  printerType: 'disabled',
20
20
  });
21
21
  const state = (0, core_1.createStateAdapter)({ adapter: 'memory' });
22
- const { server, socketServer, close } = (0, core_1.createServer)(lockedData, eventManager, state, { isVerbose: false });
22
+ const { server, socketServer, close } = (0, core_1.createServer)(lockedData, eventManager, state, { isVerbose: false }, eventManager.queueManager);
23
23
  return { server, socketServer, eventManager, state, close };
24
24
  })();
25
25
  return {
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.2-beta.140-628177",
4
+ "version": "0.8.2-beta.140-111855",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "peerDependencies": {
8
- "@motiadev/core": "0.8.2-beta.140-628177",
9
- "motia": "0.8.2-beta.140-628177"
8
+ "@motiadev/core": "0.8.2-beta.140-111855",
9
+ "motia": "0.8.2-beta.140-111855"
10
10
  },
11
11
  "dependencies": {
12
12
  "jest": "^29.7.0",