@powerhousedao/reactor 4.1.0-staging.1 → 5.0.0-staging.2

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 (126) hide show
  1. package/dist/bench/end-to-end-flow.bench.js +64 -36
  2. package/dist/bench/end-to-end-flow.bench.js.map +1 -1
  3. package/dist/bench/event-bus.bench.js.map +1 -1
  4. package/dist/bench/queue-only.bench.js +8 -2
  5. package/dist/bench/queue-only.bench.js.map +1 -1
  6. package/dist/bench/reactor-throughput.bench.js +43 -16
  7. package/dist/bench/reactor-throughput.bench.js.map +1 -1
  8. package/dist/src/events/event-bus.d.ts +2 -2
  9. package/dist/src/events/event-bus.d.ts.map +1 -1
  10. package/dist/src/events/event-bus.js +1 -1
  11. package/dist/src/events/event-bus.js.map +1 -1
  12. package/dist/src/events/interfaces.d.ts +1 -1
  13. package/dist/src/events/interfaces.d.ts.map +1 -1
  14. package/dist/src/events/types.d.ts +1 -1
  15. package/dist/src/events/types.d.ts.map +1 -1
  16. package/dist/src/events/types.js.map +1 -1
  17. package/dist/src/executor/interfaces.d.ts +31 -54
  18. package/dist/src/executor/interfaces.d.ts.map +1 -1
  19. package/dist/src/executor/simple-job-executor-manager.d.ts +27 -0
  20. package/dist/src/executor/simple-job-executor-manager.d.ts.map +1 -0
  21. package/dist/src/executor/simple-job-executor-manager.js +128 -0
  22. package/dist/src/executor/simple-job-executor-manager.js.map +1 -0
  23. package/dist/src/executor/simple-job-executor.d.ts +19 -0
  24. package/dist/src/executor/simple-job-executor.d.ts.map +1 -0
  25. package/dist/src/executor/simple-job-executor.js +69 -0
  26. package/dist/src/executor/simple-job-executor.js.map +1 -0
  27. package/dist/src/executor/types.d.ts +23 -8
  28. package/dist/src/executor/types.d.ts.map +1 -1
  29. package/dist/src/executor/types.js.map +1 -1
  30. package/dist/src/index.d.ts +9 -2
  31. package/dist/src/index.d.ts.map +1 -1
  32. package/dist/src/index.js +8 -2
  33. package/dist/src/index.js.map +1 -1
  34. package/dist/src/interfaces/reactor.d.ts +121 -0
  35. package/dist/src/interfaces/reactor.d.ts.map +1 -0
  36. package/dist/src/interfaces/reactor.js +2 -0
  37. package/dist/src/interfaces/reactor.js.map +1 -0
  38. package/dist/src/queue/interfaces.d.ts +26 -1
  39. package/dist/src/queue/interfaces.d.ts.map +1 -1
  40. package/dist/src/queue/queue.d.ts +33 -3
  41. package/dist/src/queue/queue.d.ts.map +1 -1
  42. package/dist/src/queue/queue.js +164 -17
  43. package/dist/src/queue/queue.js.map +1 -1
  44. package/dist/src/queue/types.d.ts +5 -1
  45. package/dist/src/queue/types.d.ts.map +1 -1
  46. package/dist/src/queue/types.js.map +1 -1
  47. package/dist/src/reactor.d.ts +109 -0
  48. package/dist/src/reactor.d.ts.map +1 -0
  49. package/dist/src/reactor.js +602 -0
  50. package/dist/src/reactor.js.map +1 -0
  51. package/dist/src/registry/implementation.d.ts +62 -0
  52. package/dist/src/registry/implementation.d.ts.map +1 -0
  53. package/dist/src/registry/implementation.js +96 -0
  54. package/dist/src/registry/implementation.js.map +1 -0
  55. package/dist/src/registry/index.d.ts +3 -0
  56. package/dist/src/registry/index.d.ts.map +1 -0
  57. package/dist/src/registry/index.js +2 -0
  58. package/dist/src/registry/index.js.map +1 -0
  59. package/dist/src/registry/interfaces.d.ts +39 -0
  60. package/dist/src/registry/interfaces.d.ts.map +1 -0
  61. package/dist/src/registry/interfaces.js +2 -0
  62. package/dist/src/registry/interfaces.js.map +1 -0
  63. package/dist/src/shared/factories.d.ts +16 -0
  64. package/dist/src/shared/factories.d.ts.map +1 -0
  65. package/dist/src/shared/factories.js +33 -0
  66. package/dist/src/shared/factories.js.map +1 -0
  67. package/dist/src/shared/types.d.ts +83 -19
  68. package/dist/src/shared/types.d.ts.map +1 -1
  69. package/dist/src/shared/types.js +30 -1
  70. package/dist/src/shared/types.js.map +1 -1
  71. package/dist/src/shared/utils.d.ts +3 -0
  72. package/dist/src/shared/utils.d.ts.map +1 -0
  73. package/dist/src/shared/utils.js +8 -0
  74. package/dist/src/shared/utils.js.map +1 -0
  75. package/dist/src/utils.d.ts +11 -0
  76. package/dist/src/utils.d.ts.map +1 -0
  77. package/dist/src/utils.js +29 -0
  78. package/dist/src/utils.js.map +1 -0
  79. package/dist/test/executor-integration.test.d.ts +2 -0
  80. package/dist/test/executor-integration.test.d.ts.map +1 -0
  81. package/dist/test/executor-integration.test.js +290 -0
  82. package/dist/test/executor-integration.test.js.map +1 -0
  83. package/dist/test/factories.d.ts +131 -0
  84. package/dist/test/factories.d.ts.map +1 -0
  85. package/dist/test/factories.js +347 -0
  86. package/dist/test/factories.js.map +1 -0
  87. package/dist/test/queue.test.js +219 -28
  88. package/dist/test/queue.test.js.map +1 -1
  89. package/dist/test/reactor-queue.test.d.ts +2 -0
  90. package/dist/test/reactor-queue.test.d.ts.map +1 -0
  91. package/dist/test/reactor-queue.test.js +328 -0
  92. package/dist/test/reactor-queue.test.js.map +1 -0
  93. package/dist/test/reactor-read.test.d.ts +2 -0
  94. package/dist/test/reactor-read.test.d.ts.map +1 -0
  95. package/dist/test/reactor-read.test.js +355 -0
  96. package/dist/test/reactor-read.test.js.map +1 -0
  97. package/dist/test/registry.test.d.ts +2 -0
  98. package/dist/test/registry.test.d.ts.map +1 -0
  99. package/dist/test/registry.test.js +182 -0
  100. package/dist/test/registry.test.js.map +1 -0
  101. package/dist/test/simple-job-executor-manager.test.d.ts +2 -0
  102. package/dist/test/simple-job-executor-manager.test.d.ts.map +1 -0
  103. package/dist/test/simple-job-executor-manager.test.js +132 -0
  104. package/dist/test/simple-job-executor-manager.test.js.map +1 -0
  105. package/dist/test/simple-job-executor.test.d.ts +2 -0
  106. package/dist/test/simple-job-executor.test.d.ts.map +1 -0
  107. package/dist/test/simple-job-executor.test.js +139 -0
  108. package/dist/test/simple-job-executor.test.js.map +1 -0
  109. package/dist/test/utils.test.d.ts +2 -0
  110. package/dist/test/utils.test.d.ts.map +1 -0
  111. package/dist/test/utils.test.js +66 -0
  112. package/dist/test/utils.test.js.map +1 -0
  113. package/dist/tsconfig.tsbuildinfo +1 -1
  114. package/dist/vitest.config.d.ts +3 -0
  115. package/dist/vitest.config.d.ts.map +1 -0
  116. package/dist/vitest.config.js +11 -0
  117. package/dist/vitest.config.js.map +1 -0
  118. package/package.json +6 -1
  119. package/dist/src/executor/job-executor.d.ts +0 -62
  120. package/dist/src/executor/job-executor.d.ts.map +0 -1
  121. package/dist/src/executor/job-executor.js +0 -325
  122. package/dist/src/executor/job-executor.js.map +0 -1
  123. package/dist/test/job-executor.test.d.ts +0 -2
  124. package/dist/test/job-executor.test.d.ts.map +0 -1
  125. package/dist/test/job-executor.test.js +0 -581
  126. package/dist/test/job-executor.test.js.map +0 -1
@@ -0,0 +1,355 @@
1
+ import { MemoryStorage, ReactorBuilder, driveDocumentModelModule, } from "document-drive";
2
+ import { documentModelDocumentModelModule } from "document-model";
3
+ import { beforeEach, describe, expect, it, vi } from "vitest";
4
+ import { EventBus } from "../src/events/event-bus.js";
5
+ import { SimpleJobExecutor } from "../src/executor/simple-job-executor.js";
6
+ import { InMemoryQueue } from "../src/queue/queue.js";
7
+ import { Reactor } from "../src/reactor.js";
8
+ // Helper to create a valid PHDocument using the document model utils
9
+ function createMockDocument(overrides = {}) {
10
+ const baseDocument = documentModelDocumentModelModule.utils.createDocument();
11
+ // Apply overrides if provided
12
+ if (overrides.id) {
13
+ baseDocument.header.id = overrides.id;
14
+ }
15
+ if (overrides.slug) {
16
+ baseDocument.header.slug = overrides.slug;
17
+ }
18
+ if (overrides.documentType) {
19
+ baseDocument.header.documentType = overrides.documentType;
20
+ }
21
+ if (overrides.state) {
22
+ baseDocument.state = { ...baseDocument.state, ...overrides.state };
23
+ }
24
+ return baseDocument;
25
+ }
26
+ describe("Reactor Read Interface", () => {
27
+ let reactor;
28
+ let driveServer;
29
+ let storage;
30
+ let eventBus;
31
+ let queue;
32
+ let jobExecutor;
33
+ const documentModels = [
34
+ documentModelDocumentModelModule,
35
+ driveDocumentModelModule,
36
+ ];
37
+ beforeEach(async () => {
38
+ // Create shared storage
39
+ storage = new MemoryStorage();
40
+ // Create real drive server with the storage
41
+ const builder = new ReactorBuilder(documentModels);
42
+ builder.withStorage(storage);
43
+ driveServer = builder.build();
44
+ await driveServer.initialize();
45
+ // Create event bus, queue, and executor
46
+ eventBus = new EventBus();
47
+ queue = new InMemoryQueue(eventBus);
48
+ // Create a mock registry for the executor
49
+ const registry = {
50
+ getModule: vi.fn().mockReturnValue({
51
+ reducer: vi.fn((doc, action) => ({
52
+ ...doc,
53
+ operations: { global: [{ index: 0, hash: "test-hash" }] },
54
+ })),
55
+ }),
56
+ };
57
+ // Create a mock document storage for the executor (different from IDocumentStorage for reactor)
58
+ const mockDocStorage = {
59
+ get: vi.fn().mockResolvedValue({
60
+ header: { documentType: "test" },
61
+ operations: { global: [] },
62
+ history: [],
63
+ state: {},
64
+ initialState: {},
65
+ clipboard: [],
66
+ }),
67
+ delete: vi.fn(),
68
+ exists: vi.fn(),
69
+ getChildren: vi.fn(),
70
+ findByType: vi.fn(),
71
+ resolveIds: vi.fn(),
72
+ };
73
+ jobExecutor = new SimpleJobExecutor(registry, mockDocStorage, mockDocStorage);
74
+ // Create reactor facade with all required dependencies
75
+ reactor = new Reactor(driveServer, storage, eventBus, queue, jobExecutor);
76
+ });
77
+ describe("getDocumentModels", () => {
78
+ it("should retrieve document models", async () => {
79
+ const mockModules = [
80
+ {
81
+ documentModel: {
82
+ id: "model1",
83
+ name: "TestModel",
84
+ extension: ".test",
85
+ specifications: [],
86
+ author: { name: "Test Author", website: "test.com" },
87
+ description: "Test description",
88
+ },
89
+ },
90
+ {
91
+ documentModel: {
92
+ id: "model2",
93
+ name: "AnotherModel",
94
+ extension: ".another",
95
+ specifications: [],
96
+ author: { name: "Test Author", website: "test.com" },
97
+ description: "Another description",
98
+ },
99
+ },
100
+ ];
101
+ // Add mock modules to the drive server
102
+ // Since we're using a real drive server, we need to work with the actual document models
103
+ const result = await reactor.getDocumentModels();
104
+ // The real drive server will have the document models we initialized it with
105
+ expect(result.results).toHaveLength(2);
106
+ // Check that we have the expected document models
107
+ const modelIds = result.results.map((m) => m.id);
108
+ expect(modelIds.length).toBe(2);
109
+ // The actual model IDs in the test setup
110
+ expect(modelIds).toContain("powerhouse/document-model");
111
+ expect(modelIds).toContain("powerhouse/document-drive");
112
+ });
113
+ it("should handle paging", async () => {
114
+ // With only 2 document models, test paging with limit 1
115
+ const result = await reactor.getDocumentModels(undefined, {
116
+ cursor: "0",
117
+ limit: 1,
118
+ });
119
+ expect(result.results).toHaveLength(1);
120
+ expect(result.nextCursor).toBe("1");
121
+ expect(result.next).toBeDefined();
122
+ });
123
+ });
124
+ describe("get", () => {
125
+ it("should retrieve a document by id", async () => {
126
+ // First add a document to the drive server
127
+ const mockDocument = createMockDocument({ id: "doc1" });
128
+ await driveServer.addDocument(mockDocument);
129
+ const result = await reactor.get("doc1");
130
+ expect(result.document.header.id).toEqual("doc1");
131
+ expect(result.childIds).toEqual([]);
132
+ });
133
+ it.skip("should filter by scopes when view filter is provided", async () => {
134
+ // Skipping as scope filtering with custom state is complex with real documents
135
+ const mockDocument = createMockDocument({
136
+ id: "doc1",
137
+ state: {
138
+ global: { someData: "global" },
139
+ local: { someData: "local" },
140
+ private: { someData: "private" },
141
+ },
142
+ });
143
+ await driveServer.addDocument(mockDocument);
144
+ const result = await reactor.get("doc1", { scopes: ["global", "local"] });
145
+ expect(result.document.state).toHaveProperty("global");
146
+ expect(result.document.state).toHaveProperty("local");
147
+ expect(result.document.state).not.toHaveProperty("private");
148
+ });
149
+ it("should throw error if document not found", async () => {
150
+ await expect(reactor.get("nonexistent")).rejects.toThrow();
151
+ });
152
+ });
153
+ describe("getBySlug", () => {
154
+ it("should retrieve a document by slug", async () => {
155
+ const mockDocument = createMockDocument({
156
+ id: "doc1",
157
+ slug: "test-slug",
158
+ });
159
+ // Add a drive first
160
+ await driveServer.addDrive({
161
+ id: "drive1",
162
+ global: { name: "Test Drive", icon: "icon" },
163
+ local: {
164
+ availableOffline: false,
165
+ sharingType: "PUBLIC",
166
+ listeners: [],
167
+ triggers: [],
168
+ },
169
+ });
170
+ // Add the document to the drive
171
+ await driveServer.addDocument(mockDocument, "drive1");
172
+ const result = await reactor.getBySlug("test-slug");
173
+ expect(result.document.header.id).toBe("doc1");
174
+ expect(result.childIds).toEqual([]);
175
+ });
176
+ it("should throw error if document with slug not found", async () => {
177
+ await expect(reactor.getBySlug("nonexistent")).rejects.toThrow("Document not found with slug: nonexistent");
178
+ });
179
+ });
180
+ describe("getOperations", () => {
181
+ it("should retrieve operations for a document", async () => {
182
+ const mockOperations = {
183
+ global: [
184
+ {
185
+ index: 0,
186
+ timestampUtcMs: "2023-01-01T00:00:00.000Z",
187
+ hash: "hash1",
188
+ skip: 0,
189
+ action: {
190
+ id: "action1",
191
+ type: "CREATE",
192
+ timestampUtcMs: "2023-01-01T00:00:00.000Z",
193
+ input: {},
194
+ scope: "global",
195
+ },
196
+ },
197
+ ],
198
+ local: [
199
+ {
200
+ index: 1,
201
+ timestampUtcMs: "2023-01-02T00:00:00.000Z",
202
+ hash: "hash2",
203
+ skip: 0,
204
+ action: {
205
+ id: "action2",
206
+ type: "UPDATE",
207
+ timestampUtcMs: "2023-01-02T00:00:00.000Z",
208
+ input: { field: "value" },
209
+ scope: "local",
210
+ },
211
+ },
212
+ ],
213
+ };
214
+ const mockDocument = createMockDocument({ id: "doc1" });
215
+ mockDocument.operations = mockOperations;
216
+ await driveServer.addDocument(mockDocument);
217
+ const result = await reactor.getOperations("doc1");
218
+ // Check that operations were retrieved
219
+ expect(result).toHaveProperty("global");
220
+ expect(result).toHaveProperty("local");
221
+ expect(result.global.results).toEqual(mockOperations.global);
222
+ expect(result.local.results).toEqual(mockOperations.local);
223
+ });
224
+ it("should filter operations by scopes", async () => {
225
+ const mockOperations = {
226
+ global: [
227
+ {
228
+ index: 0,
229
+ timestampUtcMs: "2023-01-01T00:00:00.000Z",
230
+ hash: "hash1",
231
+ skip: 0,
232
+ action: {
233
+ id: "action1",
234
+ type: "CREATE",
235
+ timestampUtcMs: "2023-01-01T00:00:00.000Z",
236
+ input: {},
237
+ scope: "global",
238
+ },
239
+ },
240
+ ],
241
+ local: [
242
+ {
243
+ index: 1,
244
+ timestampUtcMs: "2023-01-02T00:00:00.000Z",
245
+ hash: "hash2",
246
+ skip: 0,
247
+ action: {
248
+ id: "action2",
249
+ type: "UPDATE",
250
+ timestampUtcMs: "2023-01-02T00:00:00.000Z",
251
+ input: {},
252
+ scope: "local",
253
+ },
254
+ },
255
+ ],
256
+ private: [
257
+ {
258
+ index: 2,
259
+ timestampUtcMs: "2023-01-03T00:00:00.000Z",
260
+ hash: "hash3",
261
+ skip: 0,
262
+ action: {
263
+ id: "action3",
264
+ type: "DELETE",
265
+ timestampUtcMs: "2023-01-03T00:00:00.000Z",
266
+ input: {},
267
+ scope: "private",
268
+ },
269
+ },
270
+ ],
271
+ };
272
+ const mockDocument = createMockDocument({ id: "doc1" });
273
+ mockDocument.operations = mockOperations;
274
+ await driveServer.addDocument(mockDocument);
275
+ const result = await reactor.getOperations("doc1", {
276
+ scopes: ["global", "local"],
277
+ });
278
+ expect(result).toHaveProperty("global");
279
+ expect(result).toHaveProperty("local");
280
+ expect(result).not.toHaveProperty("private");
281
+ });
282
+ });
283
+ describe("find", () => {
284
+ it.skip("should filter documents by type", async () => {
285
+ // Skip this test as it relies on drive-document relationships
286
+ // which aren't properly established in the current test setup
287
+ // The Reactor facade should use storage directly per phase 2.5
288
+ const doc1 = documentModelDocumentModelModule.utils.createDocument();
289
+ doc1.header.id = "doc1";
290
+ // Add a drive and documents
291
+ await driveServer.addDrive({
292
+ id: "drive1",
293
+ global: { name: "Test Drive", icon: "icon" },
294
+ local: {
295
+ availableOffline: false,
296
+ sharingType: "PUBLIC",
297
+ listeners: [],
298
+ triggers: [],
299
+ },
300
+ });
301
+ await driveServer.addDocument(doc1);
302
+ const result = await reactor.find({ type: "powerhouse/document-model" });
303
+ expect(result.results).toHaveLength(1);
304
+ expect(result.results[0].header.documentType).toBe("powerhouse/document-model");
305
+ });
306
+ it("should filter documents by ids", async () => {
307
+ const mockDocuments = Array.from({ length: 5 }, (_, i) => createMockDocument({ id: `doc${i}` }));
308
+ // Add a drive and documents
309
+ await driveServer.addDrive({
310
+ id: "drive1",
311
+ global: { name: "Test Drive", icon: "icon" },
312
+ local: {
313
+ availableOffline: false,
314
+ sharingType: "PUBLIC",
315
+ listeners: [],
316
+ triggers: [],
317
+ },
318
+ });
319
+ for (const doc of mockDocuments) {
320
+ await driveServer.addDocument(doc, "drive1");
321
+ }
322
+ const result = await reactor.find({ ids: ["doc1", "doc3"] });
323
+ expect(result.results).toHaveLength(2);
324
+ expect(result.results.map((d) => d.header.id)).toEqual(["doc1", "doc3"]);
325
+ });
326
+ it.skip("should filter documents by scopes when view filter is provided", async () => {
327
+ // Skipping as scope filtering with custom state is complex with real documents
328
+ const mockDocument = createMockDocument({
329
+ id: "doc1",
330
+ state: {
331
+ global: { someData: "global" },
332
+ local: { someData: "local" },
333
+ private: { someData: "private" },
334
+ },
335
+ });
336
+ // Add a drive and document
337
+ await driveServer.addDrive({
338
+ id: "drive1",
339
+ global: { name: "Test Drive", icon: "icon" },
340
+ local: {
341
+ availableOffline: false,
342
+ sharingType: "PUBLIC",
343
+ listeners: [],
344
+ triggers: [],
345
+ },
346
+ });
347
+ await driveServer.addDocument(mockDocument, "drive1");
348
+ const result = await reactor.find({}, { scopes: ["global"] });
349
+ expect(result.results[0].state).toHaveProperty("global");
350
+ expect(result.results[0].state).not.toHaveProperty("local");
351
+ expect(result.results[0].state).not.toHaveProperty("private");
352
+ });
353
+ });
354
+ });
355
+ //# sourceMappingURL=reactor-read.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactor-read.test.js","sourceRoot":"","sources":["../../test/reactor-read.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=registry.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.test.d.ts","sourceRoot":"","sources":["../../test/registry.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,182 @@
1
+ import { driveDocumentModelModule } from "document-drive";
2
+ import { documentModelDocumentModelModule, } from "document-model";
3
+ import { beforeEach, describe, expect, it } from "vitest";
4
+ import { DocumentModelRegistry, DuplicateModuleError, ModuleNotFoundError, } from "../src/registry/implementation.js";
5
+ describe("DocumentModelRegistry", () => {
6
+ let registry;
7
+ // Use real document model modules with proper type casting
8
+ const documentModelModule = documentModelDocumentModelModule;
9
+ const driveModule = driveDocumentModelModule;
10
+ beforeEach(() => {
11
+ registry = new DocumentModelRegistry();
12
+ });
13
+ describe("registerModules", () => {
14
+ it("should register a single module successfully", () => {
15
+ expect(() => registry.registerModules(documentModelModule)).not.toThrow();
16
+ expect(registry.getAllModules()).toHaveLength(1);
17
+ expect(registry.getAllModules()[0]).toBe(documentModelModule);
18
+ });
19
+ it("should register multiple modules successfully", () => {
20
+ expect(() => registry.registerModules(documentModelModule, driveModule)).not.toThrow();
21
+ expect(registry.getAllModules()).toHaveLength(2);
22
+ expect(registry.getAllModules()).toContain(documentModelModule);
23
+ expect(registry.getAllModules()).toContain(driveModule);
24
+ });
25
+ it("should throw DuplicateModuleError when registering duplicate module", () => {
26
+ registry.registerModules(documentModelModule);
27
+ expect(() => registry.registerModules(documentModelModule)).toThrow(DuplicateModuleError);
28
+ expect(() => registry.registerModules(documentModelModule)).toThrow(`Document model module already registered for type: ${documentModelModule.documentModel.id}`);
29
+ });
30
+ it("should allow registering different modules with different IDs", () => {
31
+ registry.registerModules(documentModelModule);
32
+ expect(() => registry.registerModules(driveModule)).not.toThrow();
33
+ expect(registry.getAllModules()).toHaveLength(2);
34
+ });
35
+ });
36
+ describe("getModule", () => {
37
+ it("should return registered module", () => {
38
+ registry.registerModules(documentModelModule);
39
+ const module = registry.getModule(documentModelModule.documentModel.id);
40
+ expect(module).toBe(documentModelModule);
41
+ });
42
+ it("should return correct module when multiple are registered", () => {
43
+ registry.registerModules(documentModelModule, driveModule);
44
+ const docModule = registry.getModule(documentModelModule.documentModel.id);
45
+ expect(docModule).toBe(documentModelModule);
46
+ const drvModule = registry.getModule(driveModule.documentModel.id);
47
+ expect(drvModule).toBe(driveModule);
48
+ });
49
+ it("should throw ModuleNotFoundError for unregistered module", () => {
50
+ expect(() => registry.getModule("unknown.module.id")).toThrow(ModuleNotFoundError);
51
+ expect(() => registry.getModule("unknown.module.id")).toThrow("Document model module not found for type: unknown.module.id");
52
+ });
53
+ it("should throw ModuleNotFoundError after module is unregistered", () => {
54
+ registry.registerModules(documentModelModule);
55
+ registry.unregisterModules(documentModelModule.documentModel.id);
56
+ expect(() => registry.getModule(documentModelModule.documentModel.id)).toThrow(ModuleNotFoundError);
57
+ });
58
+ });
59
+ describe("unregisterModules", () => {
60
+ it("should unregister a single module successfully", () => {
61
+ registry.registerModules(documentModelModule);
62
+ const result = registry.unregisterModules(documentModelModule.documentModel.id);
63
+ expect(result).toBe(true);
64
+ expect(registry.getAllModules()).toHaveLength(0);
65
+ });
66
+ it("should unregister multiple modules successfully", () => {
67
+ registry.registerModules(documentModelModule, driveModule);
68
+ const result = registry.unregisterModules(documentModelModule.documentModel.id, driveModule.documentModel.id);
69
+ expect(result).toBe(true);
70
+ expect(registry.getAllModules()).toHaveLength(0);
71
+ });
72
+ it("should return false when module not found", () => {
73
+ const result = registry.unregisterModules("unknown.module.id");
74
+ expect(result).toBe(false);
75
+ });
76
+ it("should return false when some modules not found", () => {
77
+ registry.registerModules(documentModelModule);
78
+ const result = registry.unregisterModules(documentModelModule.documentModel.id, "unknown.module.id");
79
+ expect(result).toBe(false);
80
+ // But the found module should still be unregistered
81
+ expect(registry.getAllModules()).toHaveLength(0);
82
+ });
83
+ it("should only unregister specified modules", () => {
84
+ registry.registerModules(documentModelModule, driveModule);
85
+ const result = registry.unregisterModules(documentModelModule.documentModel.id);
86
+ expect(result).toBe(true);
87
+ expect(registry.getAllModules()).toHaveLength(1);
88
+ expect(registry.getAllModules()[0]).toBe(driveModule);
89
+ });
90
+ });
91
+ describe("getAllModules", () => {
92
+ it("should return empty array when no modules registered", () => {
93
+ const modules = registry.getAllModules();
94
+ expect(modules).toEqual([]);
95
+ });
96
+ it("should return all registered modules", () => {
97
+ registry.registerModules(documentModelModule, driveModule);
98
+ const modules = registry.getAllModules();
99
+ expect(modules).toHaveLength(2);
100
+ expect(modules).toContain(documentModelModule);
101
+ expect(modules).toContain(driveModule);
102
+ });
103
+ it("should return modules in registration order", () => {
104
+ registry.registerModules(documentModelModule);
105
+ registry.registerModules(driveModule);
106
+ const modules = registry.getAllModules();
107
+ expect(modules[0]).toBe(documentModelModule);
108
+ expect(modules[1]).toBe(driveModule);
109
+ });
110
+ });
111
+ describe("clear", () => {
112
+ it("should clear all registered modules", () => {
113
+ registry.registerModules(documentModelModule, driveModule);
114
+ registry.clear();
115
+ expect(registry.getAllModules()).toEqual([]);
116
+ });
117
+ it("should allow registering modules after clear", () => {
118
+ registry.registerModules(documentModelModule);
119
+ registry.clear();
120
+ expect(() => registry.registerModules(documentModelModule)).not.toThrow();
121
+ expect(registry.getAllModules()).toHaveLength(1);
122
+ });
123
+ it("should make getModule throw after clear", () => {
124
+ registry.registerModules(documentModelModule);
125
+ const moduleId = documentModelModule.documentModel.id;
126
+ // Module is accessible before clear
127
+ expect(() => registry.getModule(moduleId)).not.toThrow();
128
+ registry.clear();
129
+ // Module is not accessible after clear
130
+ expect(() => registry.getModule(moduleId)).toThrow(ModuleNotFoundError);
131
+ });
132
+ });
133
+ describe("Integration tests", () => {
134
+ it("should handle multiple operations in sequence", () => {
135
+ // Register modules
136
+ registry.registerModules(documentModelModule, driveModule);
137
+ expect(registry.getAllModules()).toHaveLength(2);
138
+ // Get modules
139
+ const docModule = registry.getModule(documentModelModule.documentModel.id);
140
+ expect(docModule).toBe(documentModelModule);
141
+ // Unregister one
142
+ registry.unregisterModules(driveModule.documentModel.id);
143
+ expect(registry.getAllModules()).toHaveLength(1);
144
+ // Try to get unregistered module
145
+ expect(() => registry.getModule(driveModule.documentModel.id)).toThrow(ModuleNotFoundError);
146
+ // Clear all
147
+ registry.clear();
148
+ expect(registry.getAllModules()).toHaveLength(0);
149
+ // Register again
150
+ registry.registerModules(driveModule);
151
+ expect(registry.getAllModules()).toHaveLength(1);
152
+ });
153
+ it("should maintain consistency after multiple register/unregister cycles", () => {
154
+ // First cycle
155
+ registry.registerModules(documentModelModule);
156
+ expect(registry.getAllModules()).toHaveLength(1);
157
+ registry.unregisterModules(documentModelModule.documentModel.id);
158
+ expect(registry.getAllModules()).toHaveLength(0);
159
+ // Second cycle
160
+ registry.registerModules(documentModelModule, driveModule);
161
+ expect(registry.getAllModules()).toHaveLength(2);
162
+ registry.unregisterModules(documentModelModule.documentModel.id);
163
+ expect(registry.getAllModules()).toHaveLength(1);
164
+ // Third cycle
165
+ registry.registerModules(documentModelModule);
166
+ expect(registry.getAllModules()).toHaveLength(2);
167
+ registry.clear();
168
+ expect(registry.getAllModules()).toHaveLength(0);
169
+ });
170
+ it("should properly handle edge cases", () => {
171
+ // Unregister from empty registry
172
+ expect(registry.unregisterModules("any.id")).toBe(false);
173
+ // Clear empty registry
174
+ expect(() => registry.clear()).not.toThrow();
175
+ // Register, clear, then try to get
176
+ registry.registerModules(documentModelModule);
177
+ registry.clear();
178
+ expect(() => registry.getModule(documentModelModule.documentModel.id)).toThrow(ModuleNotFoundError);
179
+ });
180
+ });
181
+ });
182
+ //# sourceMappingURL=registry.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.test.js","sourceRoot":"","sources":["../../test/registry.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=simple-job-executor-manager.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simple-job-executor-manager.test.d.ts","sourceRoot":"","sources":["../../test/simple-job-executor-manager.test.ts"],"names":[],"mappings":""}