@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.
@@ -1,8 +1,8 @@
1
- import type { Event, EventAdapter } from '@motiadev/core';
2
- interface TestEventManager {
3
- emit: <TData>(event: Event<TData>, file?: string) => Promise<void>;
1
+ import type { EventManager } from '@motiadev/core';
2
+ import { QueueManager } from '@motiadev/core';
3
+ interface TestEventManager extends EventManager {
4
4
  waitEvents(): Promise<void>;
5
- subscribe: <TData>(topic: string, stepName: string, handler: (event: Event<TData>) => void | Promise<void>) => void;
5
+ queueManager: QueueManager;
6
6
  }
7
- export declare const createEventManager: (eventAdapter: EventAdapter) => TestEventManager;
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 = (eventAdapter) => {
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
- 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
- }
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
- emit: eventAdapter.emit,
20
+ ...productionEventManager,
23
21
  waitEvents,
24
- subscribe,
22
+ queueManager,
25
23
  };
26
24
  };
27
25
  exports.createEventManager = createEventManager;
@@ -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 eventAdapter = new core_1.DefaultQueueEventAdapter();
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: new core_1.MemoryStreamAdapterManager(),
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 }, { eventAdapter, cronAdapter: new core_1.DefaultCronAdapter() });
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(event, '$watcher', async (event) => {
35
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
36
- const { logger, tracer, ...rest } = event;
37
- events.push(rest);
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.2-beta.140-428722",
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.2-beta.140-428722",
9
- "motia": "0.8.2-beta.140-428722"
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",