@powerhousedao/reactor 5.0.0-staging.8 → 5.0.1-staging.1

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 (248) hide show
  1. package/dist/src/cache/buffer/ring-buffer.d.ts +37 -0
  2. package/dist/src/cache/buffer/ring-buffer.d.ts.map +1 -0
  3. package/dist/src/cache/buffer/ring-buffer.js +69 -0
  4. package/dist/src/cache/buffer/ring-buffer.js.map +1 -0
  5. package/dist/src/cache/kysely-write-cache.d.ts +133 -0
  6. package/dist/src/cache/kysely-write-cache.d.ts.map +1 -0
  7. package/dist/src/cache/kysely-write-cache.js +375 -0
  8. package/dist/src/cache/kysely-write-cache.js.map +1 -0
  9. package/dist/src/cache/lru/lru-tracker.d.ts +15 -0
  10. package/dist/src/cache/lru/lru-tracker.d.ts.map +1 -0
  11. package/dist/src/cache/lru/lru-tracker.js +96 -0
  12. package/dist/src/cache/lru/lru-tracker.js.map +1 -0
  13. package/dist/src/cache/types.d.ts +42 -0
  14. package/dist/src/cache/types.d.ts.map +1 -0
  15. package/dist/src/cache/types.js +2 -0
  16. package/dist/src/cache/types.js.map +1 -0
  17. package/dist/src/cache/write/interfaces.d.ts +83 -0
  18. package/dist/src/cache/write/interfaces.d.ts.map +1 -0
  19. package/dist/src/cache/write/interfaces.js +2 -0
  20. package/dist/src/cache/write/interfaces.js.map +1 -0
  21. package/dist/src/client/reactor-client.d.ts +103 -0
  22. package/dist/src/client/reactor-client.d.ts.map +1 -0
  23. package/dist/src/client/reactor-client.js +184 -0
  24. package/dist/src/client/reactor-client.js.map +1 -0
  25. package/dist/src/client/types.d.ts +213 -0
  26. package/dist/src/client/types.d.ts.map +1 -0
  27. package/dist/src/client/types.js +14 -0
  28. package/dist/src/client/types.js.map +1 -0
  29. package/dist/src/core/builder.d.ts +20 -0
  30. package/dist/src/core/builder.d.ts.map +1 -0
  31. package/dist/src/core/builder.js +47 -0
  32. package/dist/src/core/builder.js.map +1 -0
  33. package/dist/src/{reactor.d.ts → core/reactor.d.ts} +13 -30
  34. package/dist/src/core/reactor.d.ts.map +1 -0
  35. package/dist/src/{reactor.js → core/reactor.js} +147 -111
  36. package/dist/src/core/reactor.js.map +1 -0
  37. package/dist/src/{interfaces/reactor.d.ts → core/types.d.ts} +7 -7
  38. package/dist/src/core/types.d.ts.map +1 -0
  39. package/dist/src/core/types.js +2 -0
  40. package/dist/src/core/types.js.map +1 -0
  41. package/dist/src/{utils.d.ts → core/utils.d.ts} +2 -2
  42. package/dist/src/core/utils.d.ts.map +1 -0
  43. package/dist/src/core/utils.js.map +1 -0
  44. package/dist/src/events/event-bus.d.ts +2 -2
  45. package/dist/src/events/event-bus.d.ts.map +1 -1
  46. package/dist/src/events/event-bus.js +1 -1
  47. package/dist/src/events/event-bus.js.map +1 -1
  48. package/dist/src/events/interfaces.d.ts +1 -1
  49. package/dist/src/events/interfaces.d.ts.map +1 -1
  50. package/dist/src/events/types.d.ts +14 -0
  51. package/dist/src/events/types.d.ts.map +1 -1
  52. package/dist/src/events/types.js +6 -0
  53. package/dist/src/events/types.js.map +1 -1
  54. package/dist/src/executor/interfaces.d.ts +2 -2
  55. package/dist/src/executor/interfaces.d.ts.map +1 -1
  56. package/dist/src/executor/simple-job-executor-manager.d.ts +5 -1
  57. package/dist/src/executor/simple-job-executor-manager.d.ts.map +1 -1
  58. package/dist/src/executor/simple-job-executor-manager.js +98 -36
  59. package/dist/src/executor/simple-job-executor-manager.js.map +1 -1
  60. package/dist/src/executor/simple-job-executor.d.ts +32 -3
  61. package/dist/src/executor/simple-job-executor.d.ts.map +1 -1
  62. package/dist/src/executor/simple-job-executor.js +436 -17
  63. package/dist/src/executor/simple-job-executor.js.map +1 -1
  64. package/dist/src/executor/types.d.ts +10 -3
  65. package/dist/src/executor/types.d.ts.map +1 -1
  66. package/dist/src/executor/types.js.map +1 -1
  67. package/dist/src/executor/util.d.ts +47 -0
  68. package/dist/src/executor/util.d.ts.map +1 -0
  69. package/dist/src/executor/util.js +113 -0
  70. package/dist/src/executor/util.js.map +1 -0
  71. package/dist/src/index.d.ts +23 -3
  72. package/dist/src/index.d.ts.map +1 -1
  73. package/dist/src/index.js +30 -2
  74. package/dist/src/index.js.map +1 -1
  75. package/dist/src/job-tracker/in-memory-job-tracker.d.ts +15 -0
  76. package/dist/src/job-tracker/in-memory-job-tracker.d.ts.map +1 -0
  77. package/dist/src/job-tracker/in-memory-job-tracker.js +78 -0
  78. package/dist/src/job-tracker/in-memory-job-tracker.js.map +1 -0
  79. package/dist/src/job-tracker/index.d.ts +3 -0
  80. package/dist/src/job-tracker/index.d.ts.map +1 -0
  81. package/dist/src/job-tracker/index.js +2 -0
  82. package/dist/src/job-tracker/index.js.map +1 -0
  83. package/dist/src/job-tracker/interfaces.d.ts +41 -0
  84. package/dist/src/job-tracker/interfaces.d.ts.map +1 -0
  85. package/dist/src/job-tracker/interfaces.js +2 -0
  86. package/dist/src/job-tracker/interfaces.js.map +1 -0
  87. package/dist/src/queue/interfaces.d.ts +1 -1
  88. package/dist/src/queue/interfaces.d.ts.map +1 -1
  89. package/dist/src/queue/job-execution-handle.d.ts +2 -1
  90. package/dist/src/queue/job-execution-handle.d.ts.map +1 -1
  91. package/dist/src/queue/job-execution-handle.js.map +1 -1
  92. package/dist/src/queue/queue.d.ts +3 -3
  93. package/dist/src/queue/queue.d.ts.map +1 -1
  94. package/dist/src/queue/queue.js +47 -25
  95. package/dist/src/queue/queue.js.map +1 -1
  96. package/dist/src/queue/types.d.ts +7 -5
  97. package/dist/src/queue/types.d.ts.map +1 -1
  98. package/dist/src/queue/types.js.map +1 -1
  99. package/dist/src/read-models/coordinator.d.ts +38 -0
  100. package/dist/src/read-models/coordinator.d.ts.map +1 -0
  101. package/dist/src/read-models/coordinator.js +62 -0
  102. package/dist/src/read-models/coordinator.js.map +1 -0
  103. package/dist/src/read-models/document-view.d.ts +20 -0
  104. package/dist/src/read-models/document-view.d.ts.map +1 -0
  105. package/dist/src/read-models/document-view.js +365 -0
  106. package/dist/src/read-models/document-view.js.map +1 -0
  107. package/dist/src/read-models/interfaces.d.ts +29 -0
  108. package/dist/src/read-models/interfaces.d.ts.map +1 -0
  109. package/dist/src/read-models/interfaces.js +2 -0
  110. package/dist/src/read-models/interfaces.js.map +1 -0
  111. package/dist/src/read-models/types.d.ts +46 -0
  112. package/dist/src/read-models/types.d.ts.map +1 -0
  113. package/dist/src/read-models/types.js +2 -0
  114. package/dist/src/read-models/types.js.map +1 -0
  115. package/dist/src/registry/implementation.js +1 -1
  116. package/dist/src/registry/implementation.js.map +1 -1
  117. package/dist/src/shared/awaiter.d.ts +32 -0
  118. package/dist/src/shared/awaiter.d.ts.map +1 -0
  119. package/dist/src/shared/awaiter.js +132 -0
  120. package/dist/src/shared/awaiter.js.map +1 -0
  121. package/dist/src/shared/errors.d.ts +17 -0
  122. package/dist/src/shared/errors.d.ts.map +1 -0
  123. package/dist/src/shared/errors.js +33 -0
  124. package/dist/src/shared/errors.js.map +1 -0
  125. package/dist/src/shared/factories.d.ts +1 -1
  126. package/dist/src/shared/factories.d.ts.map +1 -1
  127. package/dist/src/shared/types.d.ts +8 -0
  128. package/dist/src/shared/types.d.ts.map +1 -1
  129. package/dist/src/shared/types.js +5 -0
  130. package/dist/src/shared/types.js.map +1 -1
  131. package/dist/src/signer/passthrough-signer.d.ts +6 -0
  132. package/dist/src/signer/passthrough-signer.d.ts.map +1 -0
  133. package/dist/src/signer/passthrough-signer.js +6 -0
  134. package/dist/src/signer/passthrough-signer.js.map +1 -0
  135. package/dist/src/signer/types.d.ts +15 -0
  136. package/dist/src/signer/types.d.ts.map +1 -0
  137. package/dist/src/signer/types.js +2 -0
  138. package/dist/src/signer/types.js.map +1 -0
  139. package/dist/src/storage/interfaces.d.ts +121 -0
  140. package/dist/src/storage/interfaces.d.ts.map +1 -0
  141. package/dist/src/storage/interfaces.js +19 -0
  142. package/dist/src/storage/interfaces.js.map +1 -0
  143. package/dist/src/storage/kysely/keyframe-store.d.ts +15 -0
  144. package/dist/src/storage/kysely/keyframe-store.d.ts.map +1 -0
  145. package/dist/src/storage/kysely/keyframe-store.js +71 -0
  146. package/dist/src/storage/kysely/keyframe-store.js.map +1 -0
  147. package/dist/src/storage/kysely/store.d.ts +15 -0
  148. package/dist/src/storage/kysely/store.d.ts.map +1 -0
  149. package/dist/src/storage/kysely/store.js +196 -0
  150. package/dist/src/storage/kysely/store.js.map +1 -0
  151. package/dist/src/storage/kysely/types.d.ts +39 -0
  152. package/dist/src/storage/kysely/types.d.ts.map +1 -0
  153. package/dist/src/storage/kysely/types.js +2 -0
  154. package/dist/src/storage/kysely/types.js.map +1 -0
  155. package/dist/src/storage/txn.d.ts +15 -0
  156. package/dist/src/storage/txn.d.ts.map +1 -0
  157. package/dist/src/storage/txn.js +41 -0
  158. package/dist/src/storage/txn.js.map +1 -0
  159. package/dist/src/subs/default-error-handler.d.ts +13 -0
  160. package/dist/src/subs/default-error-handler.d.ts.map +1 -0
  161. package/dist/src/subs/default-error-handler.js +27 -0
  162. package/dist/src/subs/default-error-handler.js.map +1 -0
  163. package/dist/src/subs/react-subscription-manager.d.ts +45 -0
  164. package/dist/src/subs/react-subscription-manager.d.ts.map +1 -0
  165. package/dist/src/subs/react-subscription-manager.js +185 -0
  166. package/dist/src/subs/react-subscription-manager.js.map +1 -0
  167. package/dist/src/subs/types.d.ts +64 -0
  168. package/dist/src/subs/types.d.ts.map +1 -0
  169. package/dist/src/subs/types.js +2 -0
  170. package/dist/src/subs/types.js.map +1 -0
  171. package/dist/src/utils/reshuffle.d.ts +30 -0
  172. package/dist/src/utils/reshuffle.d.ts.map +1 -0
  173. package/dist/src/utils/reshuffle.js +47 -0
  174. package/dist/src/utils/reshuffle.js.map +1 -0
  175. package/package.json +15 -9
  176. package/dist/bench/event-bus.bench.d.ts +0 -2
  177. package/dist/bench/event-bus.bench.d.ts.map +0 -1
  178. package/dist/bench/event-bus.bench.js +0 -228
  179. package/dist/bench/event-bus.bench.js.map +0 -1
  180. package/dist/bench/queue-only.bench.d.ts +0 -2
  181. package/dist/bench/queue-only.bench.d.ts.map +0 -1
  182. package/dist/bench/queue-only.bench.js +0 -46
  183. package/dist/bench/queue-only.bench.js.map +0 -1
  184. package/dist/bench/reactor-throughput.bench.d.ts +0 -2
  185. package/dist/bench/reactor-throughput.bench.d.ts.map +0 -1
  186. package/dist/bench/reactor-throughput.bench.js +0 -144
  187. package/dist/bench/reactor-throughput.bench.js.map +0 -1
  188. package/dist/src/interfaces/reactor.d.ts.map +0 -1
  189. package/dist/src/interfaces/reactor.js +0 -2
  190. package/dist/src/interfaces/reactor.js.map +0 -1
  191. package/dist/src/reactor.d.ts.map +0 -1
  192. package/dist/src/reactor.js.map +0 -1
  193. package/dist/src/utils.d.ts.map +0 -1
  194. package/dist/src/utils.js.map +0 -1
  195. package/dist/test/event-bus.test.d.ts +0 -2
  196. package/dist/test/event-bus.test.d.ts.map +0 -1
  197. package/dist/test/event-bus.test.js +0 -541
  198. package/dist/test/event-bus.test.js.map +0 -1
  199. package/dist/test/executor/executor-integration.test.d.ts +0 -2
  200. package/dist/test/executor/executor-integration.test.d.ts.map +0 -1
  201. package/dist/test/executor/executor-integration.test.js +0 -287
  202. package/dist/test/executor/executor-integration.test.js.map +0 -1
  203. package/dist/test/executor/job-execution-handle.test.d.ts +0 -2
  204. package/dist/test/executor/job-execution-handle.test.d.ts.map +0 -1
  205. package/dist/test/executor/job-execution-handle.test.js +0 -272
  206. package/dist/test/executor/job-execution-handle.test.js.map +0 -1
  207. package/dist/test/executor/simple-job-executor-manager.test.d.ts +0 -2
  208. package/dist/test/executor/simple-job-executor-manager.test.d.ts.map +0 -1
  209. package/dist/test/executor/simple-job-executor-manager.test.js +0 -132
  210. package/dist/test/executor/simple-job-executor-manager.test.js.map +0 -1
  211. package/dist/test/executor/simple-job-executor.test.d.ts +0 -2
  212. package/dist/test/executor/simple-job-executor.test.d.ts.map +0 -1
  213. package/dist/test/executor/simple-job-executor.test.js +0 -139
  214. package/dist/test/executor/simple-job-executor.test.js.map +0 -1
  215. package/dist/test/factories.d.ts +0 -122
  216. package/dist/test/factories.d.ts.map +0 -1
  217. package/dist/test/factories.js +0 -319
  218. package/dist/test/factories.js.map +0 -1
  219. package/dist/test/integration/document-drive-integration.test.d.ts +0 -2
  220. package/dist/test/integration/document-drive-integration.test.d.ts.map +0 -1
  221. package/dist/test/integration/document-drive-integration.test.js +0 -1102
  222. package/dist/test/integration/document-drive-integration.test.js.map +0 -1
  223. package/dist/test/integration/reactor-read.test.d.ts +0 -2
  224. package/dist/test/integration/reactor-read.test.d.ts.map +0 -1
  225. package/dist/test/integration/reactor-read.test.js +0 -300
  226. package/dist/test/integration/reactor-read.test.js.map +0 -1
  227. package/dist/test/queue/queue-integration.test.d.ts +0 -2
  228. package/dist/test/queue/queue-integration.test.d.ts.map +0 -1
  229. package/dist/test/queue/queue-integration.test.js +0 -322
  230. package/dist/test/queue/queue-integration.test.js.map +0 -1
  231. package/dist/test/queue/queue.test.d.ts +0 -2
  232. package/dist/test/queue/queue.test.d.ts.map +0 -1
  233. package/dist/test/queue/queue.test.js +0 -770
  234. package/dist/test/queue/queue.test.js.map +0 -1
  235. package/dist/test/registry/registry.test.d.ts +0 -2
  236. package/dist/test/registry/registry.test.d.ts.map +0 -1
  237. package/dist/test/registry/registry.test.js +0 -182
  238. package/dist/test/registry/registry.test.js.map +0 -1
  239. package/dist/test/utils.test.d.ts +0 -2
  240. package/dist/test/utils.test.d.ts.map +0 -1
  241. package/dist/test/utils.test.js +0 -66
  242. package/dist/test/utils.test.js.map +0 -1
  243. package/dist/tsconfig.tsbuildinfo +0 -1
  244. package/dist/vitest.config.d.ts +0 -3
  245. package/dist/vitest.config.d.ts.map +0 -1
  246. package/dist/vitest.config.js +0 -11
  247. package/dist/vitest.config.js.map +0 -1
  248. /package/dist/src/{utils.js → core/utils.js} +0 -0
@@ -1,322 +0,0 @@
1
- import { driveDocumentModelModule } from "document-drive";
2
- import { documentModelDocumentModelModule } from "document-model";
3
- import { v4 as uuidv4 } from "uuid";
4
- import { beforeEach, describe, expect, it, vi } from "vitest";
5
- import { JobStatus } from "../../src/shared/types.js";
6
- import { createDocModelDocument, createDocumentModelAction, createTestActions, createTestReactorSetup, } from "../factories.js";
7
- describe("Reactor <> Queue Integration", () => {
8
- let reactor;
9
- let driveServer;
10
- let queue;
11
- const documentModels = [
12
- documentModelDocumentModelModule,
13
- driveDocumentModelModule,
14
- ];
15
- beforeEach(async () => {
16
- const setup = await createTestReactorSetup(documentModels);
17
- reactor = setup.reactor;
18
- driveServer = setup.driveServer;
19
- queue = setup.queue;
20
- });
21
- describe("mutate", () => {
22
- it("should enqueue jobs for document mutations", async () => {
23
- // Create a test document
24
- const testDoc = createDocModelDocument({
25
- id: "test-doc-1",
26
- slug: "test-doc",
27
- });
28
- // Add the document to the drive server
29
- await driveServer.addDocument(testDoc);
30
- // Create a mock action for the documentmodel document type
31
- const action = createDocumentModelAction("SET_NAME", {
32
- input: { name: "Updated Document Model" },
33
- });
34
- // Spy on the queue's enqueue method
35
- const enqueueSpy = vi.spyOn(queue, "enqueue");
36
- const result = await reactor.mutate(testDoc.header.id, [action]);
37
- // Verify that the queue's enqueue method was called
38
- expect(enqueueSpy).toHaveBeenCalledTimes(1);
39
- // Verify the job structure
40
- const enqueuedJob = enqueueSpy.mock.calls[0][0];
41
- expect(enqueuedJob.documentId).toBe(testDoc.header.id);
42
- expect(enqueuedJob.operation.action).toEqual(action);
43
- expect(enqueuedJob.scope).toBe(action.scope || "global");
44
- expect(enqueuedJob.branch).toBe("main");
45
- // Verify the result
46
- expect(result).toBeDefined();
47
- expect(result.id).toBeDefined();
48
- expect(result.status).toBe(JobStatus.PENDING);
49
- });
50
- it("should create proper Job objects from actions", async () => {
51
- // Create a test document
52
- const testDoc = createDocModelDocument({
53
- id: "test-doc-2",
54
- slug: "test-doc-2",
55
- });
56
- // Add the document to the drive server
57
- await driveServer.addDocument(testDoc);
58
- // Create multiple actions
59
- const actions = [
60
- createDocumentModelAction("SET_NAME", {
61
- input: { name: "First Update" },
62
- }),
63
- createDocumentModelAction("SET_DESCRIPTION", {
64
- input: { description: "Test description" },
65
- timestampUtcMs: String(Date.now() + 1000),
66
- }),
67
- ];
68
- // Capture the jobs that are enqueued
69
- const enqueuedJobs = [];
70
- vi.spyOn(queue, "enqueue").mockImplementation((job) => {
71
- enqueuedJobs.push(job);
72
- return Promise.resolve();
73
- });
74
- const result = await reactor.mutate(testDoc.header.id, actions);
75
- // Verify jobs were enqueued
76
- expect(enqueuedJobs).toHaveLength(actions.length);
77
- enqueuedJobs.forEach((job, index) => {
78
- expect(job.documentId).toBe(testDoc.header.id);
79
- expect(job.operation.action).toEqual(actions[index]);
80
- expect(job.scope).toBe(actions[index].scope || "global");
81
- expect(job.branch).toBe("main");
82
- expect(job.operation.index).toBe(index);
83
- });
84
- // Verify the result
85
- expect(result.status).toBe(JobStatus.PENDING);
86
- });
87
- it("should start the job executor when jobs are enqueued", async () => {
88
- // Create a test document
89
- const testDoc = createDocModelDocument({
90
- id: "test-doc-3",
91
- slug: "test-doc-3",
92
- });
93
- // Add the document to the drive server
94
- await driveServer.addDocument(testDoc);
95
- const action = createDocumentModelAction("SET_NAME", {
96
- input: { name: "Test Name" },
97
- });
98
- await reactor.mutate(testDoc.header.id, [action]);
99
- // The executor's internal start should have been triggered
100
- // In the shim, start is called automatically on first mutate
101
- // We can't directly test this with the simplified design
102
- });
103
- it("should return JobInfo with pending status when jobs are enqueued", async () => {
104
- // Create a test document
105
- const testDoc = createDocModelDocument({
106
- id: "test-doc-4",
107
- slug: "test-doc-4",
108
- });
109
- // Add the document to the drive server
110
- await driveServer.addDocument(testDoc);
111
- const action = createDocumentModelAction("SET_NAME", {
112
- input: { name: "Test Name" },
113
- });
114
- const result = await reactor.mutate(testDoc.header.id, [action]);
115
- // Now that we use the queue, it should return PENDING
116
- expect(result).toBeDefined();
117
- expect(result.id).toBeDefined();
118
- expect(result.status).toBe(JobStatus.PENDING);
119
- });
120
- it("should handle multiple actions in sequence", async () => {
121
- // Create a test document
122
- const testDoc = createDocModelDocument({
123
- id: "test-doc-5",
124
- slug: "test-doc-5",
125
- });
126
- // Add the document to the drive server
127
- await driveServer.addDocument(testDoc);
128
- const actions = createTestActions(3, "SET_NAME");
129
- // Track enqueued jobs
130
- const enqueuedJobs = [];
131
- vi.spyOn(queue, "enqueue").mockImplementation((job) => {
132
- enqueuedJobs.push(job);
133
- return Promise.resolve();
134
- });
135
- const result = await reactor.mutate(testDoc.header.id, actions);
136
- expect(result).toBeDefined();
137
- expect(result.id).toBeDefined();
138
- expect(result.status).toBe(JobStatus.PENDING);
139
- // Verify all jobs were enqueued in order
140
- expect(enqueuedJobs).toHaveLength(3);
141
- // Verify jobs maintain order
142
- enqueuedJobs.forEach((job, index) => {
143
- expect(job.operation.index).toBe(index);
144
- const actionInput = job.operation.action.input;
145
- expect(actionInput.name).toBe(`Action ${index + 1}`);
146
- });
147
- });
148
- describe("serial execution per document", () => {
149
- it("should not dequeue jobs for a document that has executing jobs", async () => {
150
- // Create two test documents
151
- const testDoc1 = createDocModelDocument({
152
- id: "test-doc-serial-1",
153
- slug: "test-doc-serial-1",
154
- });
155
- const testDoc2 = createDocModelDocument({
156
- id: "test-doc-serial-2",
157
- slug: "test-doc-serial-2",
158
- });
159
- // Add documents to the drive server
160
- await driveServer.addDocument(testDoc1);
161
- await driveServer.addDocument(testDoc2);
162
- // Create actions for both documents
163
- const action1 = {
164
- id: uuidv4(),
165
- type: "SET_NAME",
166
- scope: "global",
167
- input: { name: "Doc 1 Action 1" },
168
- timestampUtcMs: String(Date.now()),
169
- };
170
- const action2 = {
171
- id: uuidv4(),
172
- type: "SET_NAME",
173
- scope: "global",
174
- input: { name: "Doc 1 Action 2" },
175
- timestampUtcMs: String(Date.now() + 1000),
176
- };
177
- const action3 = {
178
- id: uuidv4(),
179
- type: "SET_NAME",
180
- scope: "global",
181
- input: { name: "Doc 2 Action 1" },
182
- timestampUtcMs: String(Date.now() + 2000),
183
- };
184
- // Enqueue jobs for both documents
185
- await reactor.mutate(testDoc1.header.id, [action1, action2]);
186
- await reactor.mutate(testDoc2.header.id, [action3]);
187
- // First dequeue should get a job from document 1
188
- const job1 = await queue.dequeueNext();
189
- expect(job1).toBeDefined();
190
- expect(job1?.job.documentId).toBe(testDoc1.header.id);
191
- // Second dequeue should get the job from document 2 (not doc 1's second job)
192
- const job2 = await queue.dequeueNext();
193
- expect(job2).toBeDefined();
194
- expect(job2?.job.documentId).toBe(testDoc2.header.id);
195
- // Third dequeue should return null since doc 1 is still executing
196
- const job3 = await queue.dequeueNext();
197
- expect(job3).toBeNull();
198
- // Complete the first job
199
- if (job1) {
200
- await queue.completeJob(job1.job.id);
201
- }
202
- // Now we should be able to dequeue the second job from document 1
203
- const job4 = await queue.dequeueNext();
204
- expect(job4).toBeDefined();
205
- expect(job4?.job.documentId).toBe(testDoc1.header.id);
206
- });
207
- it("should allow concurrent execution of jobs from different documents", async () => {
208
- // Create three test documents
209
- const docs = await Promise.all([
210
- createDocModelDocument({ id: "concurrent-1", slug: "concurrent-1" }),
211
- createDocModelDocument({ id: "concurrent-2", slug: "concurrent-2" }),
212
- createDocModelDocument({ id: "concurrent-3", slug: "concurrent-3" }),
213
- ]);
214
- // Add documents to the drive server
215
- for (const doc of docs) {
216
- await driveServer.addDocument(doc);
217
- }
218
- // Create actions for each document
219
- const actions = docs.map((doc, index) => ({
220
- id: uuidv4(),
221
- type: "SET_NAME",
222
- scope: "global",
223
- input: { name: `Doc ${index + 1} Action` },
224
- timestampUtcMs: String(Date.now() + index * 1000),
225
- }));
226
- // Enqueue one job per document
227
- for (let i = 0; i < docs.length; i++) {
228
- await reactor.mutate(docs[i].header.id, [actions[i]]);
229
- }
230
- // Should be able to dequeue all three jobs since they're from different documents
231
- const dequeuedJobs = [];
232
- for (let i = 0; i < docs.length; i++) {
233
- const job = await queue.dequeueNext();
234
- expect(job).toBeDefined();
235
- dequeuedJobs.push(job);
236
- }
237
- // Verify we got one job from each document
238
- const documentIds = dequeuedJobs
239
- .map((job) => job.job.documentId)
240
- .sort();
241
- const expectedIds = docs.map((doc) => doc.header.id).sort();
242
- expect(documentIds).toEqual(expectedIds);
243
- // Fourth dequeue should return null since all documents are executing
244
- const noMoreJobs = await queue.dequeueNext();
245
- expect(noMoreJobs).toBeNull();
246
- });
247
- it("should resume processing after job completion", async () => {
248
- // Create a test document
249
- const testDoc = createDocModelDocument({
250
- id: "test-resume",
251
- slug: "test-resume",
252
- });
253
- await driveServer.addDocument(testDoc);
254
- // Create multiple actions for the same document
255
- const actions = [1, 2, 3].map((i) => ({
256
- id: uuidv4(),
257
- type: "SET_NAME",
258
- scope: "global",
259
- input: { name: `Action ${i}` },
260
- timestampUtcMs: String(Date.now() + i * 1000),
261
- }));
262
- // Enqueue all actions
263
- await reactor.mutate(testDoc.header.id, actions);
264
- // Dequeue first job
265
- const job1 = await queue.dequeueNext();
266
- expect(job1).toBeDefined();
267
- expect(job1?.job.operation.index).toBe(0);
268
- // Should not be able to dequeue another job for this document
269
- const blockedJob = await queue.dequeueNext();
270
- expect(blockedJob).toBeNull();
271
- // Complete the first job
272
- if (job1) {
273
- await queue.completeJob(job1.job.id);
274
- }
275
- // Now should be able to dequeue the second job
276
- const job2 = await queue.dequeueNext();
277
- expect(job2).toBeDefined();
278
- expect(job2?.job.operation.index).toBe(1);
279
- // Complete second job and get third
280
- if (job2) {
281
- await queue.completeJob(job2.job.id);
282
- }
283
- const job3 = await queue.dequeueNext();
284
- expect(job3).toBeDefined();
285
- expect(job3?.job.operation.index).toBe(2);
286
- });
287
- it("should handle job failure and allow next job to proceed", async () => {
288
- // Create a test document
289
- const testDoc = createDocModelDocument({
290
- id: "test-failure",
291
- slug: "test-failure",
292
- });
293
- await driveServer.addDocument(testDoc);
294
- // Create two actions
295
- const actions = [1, 2].map((i) => ({
296
- id: uuidv4(),
297
- type: "SET_NAME",
298
- scope: "global",
299
- input: { name: `Action ${i}` },
300
- timestampUtcMs: String(Date.now() + i * 1000),
301
- }));
302
- // Enqueue actions
303
- await reactor.mutate(testDoc.header.id, actions);
304
- // Dequeue first job
305
- const job1 = await queue.dequeueNext();
306
- expect(job1).toBeDefined();
307
- // Should not be able to dequeue second job
308
- const blockedJob = await queue.dequeueNext();
309
- expect(blockedJob).toBeNull();
310
- // Fail the first job
311
- if (job1) {
312
- await queue.failJob(job1.job.id, "Test failure");
313
- }
314
- // Now should be able to dequeue the second job
315
- const job2 = await queue.dequeueNext();
316
- expect(job2).toBeDefined();
317
- expect(job2?.job.operation.index).toBe(1);
318
- });
319
- });
320
- });
321
- });
322
- //# sourceMappingURL=queue-integration.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"queue-integration.test.js","sourceRoot":"","sources":["../../../test/queue/queue-integration.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=queue.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"queue.test.d.ts","sourceRoot":"","sources":["../../../test/queue/queue.test.ts"],"names":[],"mappings":""}