@powerhousedao/reactor-api 4.1.0-dev.8 → 4.1.0-dev.80

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 (202) hide show
  1. package/README.md +16 -10
  2. package/dist/codegen.d.ts +4 -0
  3. package/dist/codegen.d.ts.map +1 -0
  4. package/dist/codegen.js +38 -0
  5. package/dist/codegen.js.map +1 -0
  6. package/dist/index.d.ts +5 -2
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +5 -2
  9. package/dist/index.js.map +1 -1
  10. package/dist/src/config.d.ts +3 -0
  11. package/dist/src/config.d.ts.map +1 -1
  12. package/dist/src/config.js +6 -0
  13. package/dist/src/config.js.map +1 -1
  14. package/dist/src/graphql/analytics-subgraph.d.ts +14 -0
  15. package/dist/src/graphql/analytics-subgraph.d.ts.map +1 -0
  16. package/dist/src/graphql/{analytics/index.js → analytics-subgraph.js} +4 -4
  17. package/dist/src/graphql/analytics-subgraph.js.map +1 -0
  18. package/dist/src/graphql/base-subgraph.d.ts +17 -0
  19. package/dist/src/graphql/base-subgraph.d.ts.map +1 -0
  20. package/dist/src/graphql/{base/index.js → base-subgraph.js} +4 -2
  21. package/dist/src/graphql/base-subgraph.js.map +1 -0
  22. package/dist/src/graphql/drive-subgraph.d.ts +13 -0
  23. package/dist/src/graphql/drive-subgraph.d.ts.map +1 -0
  24. package/dist/src/graphql/{drive/index.js → drive-subgraph.js} +41 -20
  25. package/dist/src/graphql/drive-subgraph.js.map +1 -0
  26. package/dist/src/graphql/graphql-manager.d.ts +10 -13
  27. package/dist/src/graphql/graphql-manager.d.ts.map +1 -1
  28. package/dist/src/graphql/graphql-manager.js +69 -35
  29. package/dist/src/graphql/graphql-manager.js.map +1 -1
  30. package/dist/src/graphql/index.d.ts +7 -8
  31. package/dist/src/graphql/index.d.ts.map +1 -1
  32. package/dist/src/graphql/index.js +7 -19
  33. package/dist/src/graphql/index.js.map +1 -1
  34. package/dist/src/graphql/reactor/adapters.d.ts +28 -0
  35. package/dist/src/graphql/reactor/adapters.d.ts.map +1 -0
  36. package/dist/src/graphql/reactor/adapters.js +92 -0
  37. package/dist/src/graphql/reactor/adapters.js.map +1 -0
  38. package/dist/src/graphql/reactor/factory.d.ts +84 -0
  39. package/dist/src/graphql/reactor/factory.d.ts.map +1 -0
  40. package/dist/src/graphql/reactor/factory.js +7 -0
  41. package/dist/src/graphql/reactor/factory.js.map +1 -0
  42. package/dist/src/graphql/reactor/gen/graphql.d.ts +979 -0
  43. package/dist/src/graphql/reactor/gen/graphql.d.ts.map +1 -0
  44. package/dist/src/graphql/reactor/gen/graphql.js +383 -0
  45. package/dist/src/graphql/reactor/gen/graphql.js.map +1 -0
  46. package/dist/src/graphql/reactor/index.d.ts +4 -0
  47. package/dist/src/graphql/reactor/index.d.ts.map +1 -0
  48. package/dist/src/graphql/reactor/index.js +4 -0
  49. package/dist/src/graphql/reactor/index.js.map +1 -0
  50. package/dist/src/graphql/reactor/requester.d.ts +4 -0
  51. package/dist/src/graphql/reactor/requester.d.ts.map +1 -0
  52. package/dist/src/graphql/reactor/requester.js +22 -0
  53. package/dist/src/graphql/reactor/requester.js.map +1 -0
  54. package/dist/src/graphql/reactor/requester.with-zod.d.ts +4 -0
  55. package/dist/src/graphql/reactor/requester.with-zod.d.ts.map +1 -0
  56. package/dist/src/graphql/reactor/requester.with-zod.js +53 -0
  57. package/dist/src/graphql/reactor/requester.with-zod.js.map +1 -0
  58. package/dist/src/graphql/reactor/resolvers.d.ts +60 -0
  59. package/dist/src/graphql/reactor/resolvers.d.ts.map +1 -0
  60. package/dist/src/graphql/reactor/resolvers.js +173 -0
  61. package/dist/src/graphql/reactor/resolvers.js.map +1 -0
  62. package/dist/src/graphql/reactor/subgraph.d.ts +12 -0
  63. package/dist/src/graphql/reactor/subgraph.d.ts.map +1 -0
  64. package/dist/src/graphql/reactor/subgraph.js +159 -0
  65. package/dist/src/graphql/reactor/subgraph.js.map +1 -0
  66. package/dist/src/graphql/reactor/validation.d.ts +374 -0
  67. package/dist/src/graphql/reactor/validation.d.ts.map +1 -0
  68. package/dist/src/graphql/reactor/validation.js +73 -0
  69. package/dist/src/graphql/reactor/validation.js.map +1 -0
  70. package/dist/src/graphql/system/index.d.ts +2 -30
  71. package/dist/src/graphql/system/index.d.ts.map +1 -1
  72. package/dist/src/graphql/system/index.js +2 -95
  73. package/dist/src/graphql/system/index.js.map +1 -1
  74. package/dist/src/graphql/system/system-subgraph.d.ts +33 -0
  75. package/dist/src/graphql/system/system-subgraph.d.ts.map +1 -0
  76. package/dist/src/graphql/system/system-subgraph.js +96 -0
  77. package/dist/src/graphql/system/system-subgraph.js.map +1 -0
  78. package/dist/src/graphql/system/types.d.ts +1 -2
  79. package/dist/src/graphql/system/types.d.ts.map +1 -1
  80. package/dist/src/graphql/{drive/temp-hack-rwa-type-defs.d.ts → temp-hack-rwa-type-defs.d.ts} +2 -2
  81. package/dist/src/graphql/temp-hack-rwa-type-defs.d.ts.map +1 -0
  82. package/dist/src/graphql/temp-hack-rwa-type-defs.js.map +1 -0
  83. package/dist/src/graphql/types.d.ts +8 -5
  84. package/dist/src/graphql/types.d.ts.map +1 -1
  85. package/dist/src/graphql/utils.d.ts +3 -0
  86. package/dist/src/graphql/utils.d.ts.map +1 -0
  87. package/dist/src/graphql/utils.js +13 -0
  88. package/dist/src/graphql/utils.js.map +1 -0
  89. package/dist/src/packages/import-loader.d.ts +4 -4
  90. package/dist/src/packages/import-loader.d.ts.map +1 -1
  91. package/dist/src/packages/import-loader.js +7 -6
  92. package/dist/src/packages/import-loader.js.map +1 -1
  93. package/dist/src/packages/import-resolver.d.ts +5 -0
  94. package/dist/src/packages/import-resolver.d.ts.map +1 -0
  95. package/dist/src/packages/import-resolver.js +127 -0
  96. package/dist/src/packages/import-resolver.js.map +1 -0
  97. package/dist/src/packages/package-manager.d.ts +3 -3
  98. package/dist/src/packages/package-manager.d.ts.map +1 -1
  99. package/dist/src/packages/package-manager.js +26 -10
  100. package/dist/src/packages/package-manager.js.map +1 -1
  101. package/dist/src/packages/types.d.ts +3 -3
  102. package/dist/src/packages/types.d.ts.map +1 -1
  103. package/dist/src/packages/util.d.ts +21 -2
  104. package/dist/src/packages/util.d.ts.map +1 -1
  105. package/dist/src/packages/util.js +54 -5
  106. package/dist/src/packages/util.js.map +1 -1
  107. package/dist/src/packages/vite-loader.d.ts +22 -0
  108. package/dist/src/packages/vite-loader.d.ts.map +1 -0
  109. package/dist/src/packages/vite-loader.js +147 -0
  110. package/dist/src/packages/vite-loader.js.map +1 -0
  111. package/dist/src/server.d.ts +13 -7
  112. package/dist/src/server.d.ts.map +1 -1
  113. package/dist/src/server.js +52 -84
  114. package/dist/src/server.js.map +1 -1
  115. package/dist/src/services/auth.service.d.ts +64 -0
  116. package/dist/src/services/auth.service.d.ts.map +1 -0
  117. package/dist/src/services/auth.service.js +154 -0
  118. package/dist/src/services/auth.service.js.map +1 -0
  119. package/dist/src/sync/types.d.ts +10 -0
  120. package/dist/src/sync/types.d.ts.map +1 -0
  121. package/dist/src/sync/types.js +2 -0
  122. package/dist/src/sync/types.js.map +1 -0
  123. package/dist/src/sync/utils.d.ts +2 -10
  124. package/dist/src/sync/utils.d.ts.map +1 -1
  125. package/dist/src/sync/utils.js +1 -1
  126. package/dist/src/sync/utils.js.map +1 -1
  127. package/dist/src/types.d.ts +5 -6
  128. package/dist/src/types.d.ts.map +1 -1
  129. package/dist/src/utils/create-schema.d.ts +3 -3
  130. package/dist/src/utils/create-schema.d.ts.map +1 -1
  131. package/dist/src/utils/create-schema.js +27 -8
  132. package/dist/src/utils/create-schema.js.map +1 -1
  133. package/dist/src/utils/db.d.ts +1 -1
  134. package/dist/src/utils/db.d.ts.map +1 -1
  135. package/dist/src/utils/db.js.map +1 -1
  136. package/dist/test/benchmarks/load.bench.d.ts +2 -0
  137. package/dist/test/benchmarks/load.bench.d.ts.map +1 -0
  138. package/dist/test/benchmarks/load.bench.js +73 -0
  139. package/dist/test/benchmarks/load.bench.js.map +1 -0
  140. package/dist/test/benchmarks/sync.bench.d.ts +2 -0
  141. package/dist/test/benchmarks/sync.bench.d.ts.map +1 -0
  142. package/dist/test/benchmarks/sync.bench.js +119 -0
  143. package/dist/test/benchmarks/sync.bench.js.map +1 -0
  144. package/dist/test/drive-handlers.d.ts +4 -0
  145. package/dist/test/drive-handlers.d.ts.map +1 -0
  146. package/dist/test/drive-handlers.js +39 -0
  147. package/dist/test/drive-handlers.js.map +1 -0
  148. package/dist/test/drive.test.d.ts +2 -0
  149. package/dist/test/drive.test.d.ts.map +1 -0
  150. package/dist/test/drive.test.js +142 -0
  151. package/dist/test/drive.test.js.map +1 -0
  152. package/dist/test/index.d.ts +3 -0
  153. package/dist/test/index.d.ts.map +1 -0
  154. package/dist/test/index.js +3 -0
  155. package/dist/test/index.js.map +1 -0
  156. package/dist/test/pull-responder-transmitter.test.d.ts +2 -0
  157. package/dist/test/pull-responder-transmitter.test.d.ts.map +1 -0
  158. package/dist/test/pull-responder-transmitter.test.js +220 -0
  159. package/dist/test/pull-responder-transmitter.test.js.map +1 -0
  160. package/dist/test/push-transmitter.test.d.ts +2 -0
  161. package/dist/test/push-transmitter.test.d.ts.map +1 -0
  162. package/dist/test/push-transmitter.test.js +179 -0
  163. package/dist/test/push-transmitter.test.js.map +1 -0
  164. package/dist/test/reactor-client.test.d.ts +2 -0
  165. package/dist/test/reactor-client.test.d.ts.map +1 -0
  166. package/dist/test/reactor-client.test.js +212 -0
  167. package/dist/test/reactor-client.test.js.map +1 -0
  168. package/dist/test/reactor-resolvers.test.d.ts +2 -0
  169. package/dist/test/reactor-resolvers.test.d.ts.map +1 -0
  170. package/dist/test/reactor-resolvers.test.js +523 -0
  171. package/dist/test/reactor-resolvers.test.js.map +1 -0
  172. package/dist/test/router.test.d.ts +2 -0
  173. package/dist/test/router.test.d.ts.map +1 -0
  174. package/dist/test/router.test.js +38 -0
  175. package/dist/test/router.test.js.map +1 -0
  176. package/dist/test/system.test.d.ts +2 -0
  177. package/dist/test/system.test.d.ts.map +1 -0
  178. package/dist/test/system.test.js +211 -0
  179. package/dist/test/system.test.js.map +1 -0
  180. package/dist/test/utils.d.ts +10 -0
  181. package/dist/test/utils.d.ts.map +1 -0
  182. package/dist/test/utils.js +23 -0
  183. package/dist/test/utils.js.map +1 -0
  184. package/dist/tsconfig.tsbuildinfo +1 -0
  185. package/dist/vitest.config.d.ts +3 -0
  186. package/dist/vitest.config.d.ts.map +1 -0
  187. package/dist/vitest.config.js +24 -0
  188. package/dist/vitest.config.js.map +1 -0
  189. package/package.json +38 -22
  190. package/dist/src/graphql/analytics/index.d.ts +0 -14
  191. package/dist/src/graphql/analytics/index.d.ts.map +0 -1
  192. package/dist/src/graphql/analytics/index.js.map +0 -1
  193. package/dist/src/graphql/base/index.d.ts +0 -17
  194. package/dist/src/graphql/base/index.d.ts.map +0 -1
  195. package/dist/src/graphql/base/index.js.map +0 -1
  196. package/dist/src/graphql/drive/index.d.ts +0 -13
  197. package/dist/src/graphql/drive/index.d.ts.map +0 -1
  198. package/dist/src/graphql/drive/index.js.map +0 -1
  199. package/dist/src/graphql/drive/temp-hack-rwa-type-defs.d.ts.map +0 -1
  200. package/dist/src/graphql/drive/temp-hack-rwa-type-defs.js.map +0 -1
  201. package/dist/tsconfig.lib.tsbuildinfo +0 -1
  202. /package/dist/src/graphql/{drive/temp-hack-rwa-type-defs.js → temp-hack-rwa-type-defs.js} +0 -0
@@ -0,0 +1,523 @@
1
+ import { JobStatus, } from "@powerhousedao/reactor";
2
+ import { documentModelDocumentModelModule, } from "document-model";
3
+ import { beforeEach, describe, expect, it, vi } from "vitest";
4
+ import * as resolvers from "../src/graphql/reactor/resolvers.js";
5
+ describe("ReactorSubgraph Query Resolvers", () => {
6
+ let mockReactorClient;
7
+ beforeEach(() => {
8
+ vi.clearAllMocks();
9
+ // Create fresh mock for each test
10
+ mockReactorClient = {
11
+ getDocumentModels: vi.fn(),
12
+ get: vi.fn(),
13
+ getChildren: vi.fn(),
14
+ getParents: vi.fn(),
15
+ find: vi.fn(),
16
+ getJobStatus: vi.fn(),
17
+ waitForJob: vi.fn(),
18
+ create: vi.fn(),
19
+ createEmpty: vi.fn(),
20
+ mutate: vi.fn(),
21
+ mutateAsync: vi.fn(),
22
+ rename: vi.fn(),
23
+ addChildren: vi.fn(),
24
+ removeChildren: vi.fn(),
25
+ moveChildren: vi.fn(),
26
+ deleteDocument: vi.fn(),
27
+ deleteDocuments: vi.fn(),
28
+ subscribe: vi.fn(),
29
+ };
30
+ });
31
+ describe("documentModels", () => {
32
+ it("should transform document models to GraphQL format", async () => {
33
+ const mockDocumentModels = {
34
+ results: [
35
+ documentModelDocumentModelModule,
36
+ ],
37
+ options: {
38
+ cursor: "test-cursor",
39
+ limit: 10,
40
+ },
41
+ };
42
+ vi.mocked(mockReactorClient.getDocumentModels).mockResolvedValue(mockDocumentModels);
43
+ const result = await resolvers.documentModels(mockReactorClient, {
44
+ namespace: "powerhouse",
45
+ paging: { cursor: "test-cursor", limit: 10 },
46
+ });
47
+ expect(result).toEqual({
48
+ cursor: "test-cursor",
49
+ hasNextPage: false,
50
+ hasPreviousPage: false,
51
+ items: [
52
+ {
53
+ id: "powerhouse/document-model",
54
+ name: "DocumentModel",
55
+ namespace: "DocumentModel",
56
+ specification: mockDocumentModels.results[0].documentModel.global
57
+ .specifications[0],
58
+ version: null,
59
+ },
60
+ ],
61
+ totalCount: 1,
62
+ });
63
+ });
64
+ it("should extract namespace from model name", async () => {
65
+ const mockDocumentModels = {
66
+ results: [
67
+ {
68
+ documentModel: {
69
+ global: {
70
+ id: "model-1",
71
+ name: "custom-namespace/my-model",
72
+ author: { name: "Author", website: null },
73
+ description: "Description",
74
+ extension: "ext",
75
+ specifications: [],
76
+ },
77
+ local: {},
78
+ },
79
+ },
80
+ ],
81
+ options: { cursor: "", limit: 10 },
82
+ };
83
+ vi.mocked(mockReactorClient.getDocumentModels).mockResolvedValue(mockDocumentModels);
84
+ const result = await resolvers.documentModels(mockReactorClient, {});
85
+ expect(result.items[0].namespace).toBe("custom-namespace");
86
+ });
87
+ });
88
+ describe("document", () => {
89
+ it("should transform document to GraphQL format with revision list", async () => {
90
+ const mockDocument = {
91
+ header: {
92
+ id: "doc-1",
93
+ name: "Test Document",
94
+ documentType: "powerhouse/document-model",
95
+ slug: "test-doc",
96
+ createdAtUtcIso: "2024-01-01T00:00:00Z",
97
+ lastModifiedAtUtcIso: "2024-01-02T00:00:00Z",
98
+ branch: "main",
99
+ sig: {
100
+ publicKey: {},
101
+ nonce: "test-nonce",
102
+ },
103
+ revision: {
104
+ global: 5,
105
+ local: 2,
106
+ custom: 3,
107
+ },
108
+ },
109
+ state: { data: "test-state" },
110
+ history: {},
111
+ initialState: {},
112
+ operations: {},
113
+ clipboard: [],
114
+ };
115
+ vi.mocked(mockReactorClient.get).mockResolvedValue({
116
+ document: mockDocument,
117
+ childIds: ["child-1", "child-2"],
118
+ });
119
+ const result = await resolvers.document(mockReactorClient, {
120
+ identifier: "doc-1",
121
+ });
122
+ expect(result).toEqual({
123
+ document: {
124
+ id: "doc-1",
125
+ name: "Test Document",
126
+ documentType: "powerhouse/document-model",
127
+ slug: "test-doc",
128
+ createdAtUtcIso: "2024-01-01T00:00:00Z",
129
+ lastModifiedAtUtcIso: "2024-01-02T00:00:00Z",
130
+ revisionsList: [
131
+ { scope: "global", revision: 5 },
132
+ { scope: "local", revision: 2 },
133
+ { scope: "custom", revision: 3 },
134
+ ],
135
+ state: { data: "test-state" },
136
+ },
137
+ childIds: ["child-1", "child-2"],
138
+ });
139
+ });
140
+ it("should handle empty revision object", async () => {
141
+ const mockDocument = {
142
+ header: {
143
+ id: "doc-1",
144
+ name: "Test Document",
145
+ documentType: "powerhouse/document-model",
146
+ slug: "test-doc",
147
+ createdAtUtcIso: "2024-01-01T00:00:00Z",
148
+ lastModifiedAtUtcIso: "2024-01-02T00:00:00Z",
149
+ branch: "main",
150
+ sig: {
151
+ publicKey: {},
152
+ nonce: "test-nonce",
153
+ },
154
+ revision: {},
155
+ },
156
+ state: {},
157
+ history: {},
158
+ initialState: {},
159
+ operations: {},
160
+ clipboard: [],
161
+ };
162
+ vi.mocked(mockReactorClient.get).mockResolvedValue({
163
+ document: mockDocument,
164
+ childIds: [],
165
+ });
166
+ const result = await resolvers.document(mockReactorClient, {
167
+ identifier: "doc-1",
168
+ });
169
+ expect(result.document.revisionsList).toEqual([]);
170
+ });
171
+ });
172
+ describe("documentChildren", () => {
173
+ it("should transform children documents to GraphQL format", async () => {
174
+ const mockChildren = {
175
+ results: [
176
+ {
177
+ header: {
178
+ id: "child-1",
179
+ name: "Child 1",
180
+ documentType: "type-1",
181
+ slug: "child-1",
182
+ createdAtUtcIso: "2024-01-01T00:00:00Z",
183
+ lastModifiedAtUtcIso: "2024-01-01T00:00:00Z",
184
+ branch: "main",
185
+ sig: {
186
+ publicKey: {},
187
+ nonce: "test-nonce",
188
+ },
189
+ revision: { global: 1 },
190
+ },
191
+ state: { childData: "test" },
192
+ history: {},
193
+ initialState: {},
194
+ operations: {},
195
+ clipboard: [],
196
+ },
197
+ {
198
+ header: {
199
+ id: "child-2",
200
+ name: "Child 2",
201
+ documentType: "type-2",
202
+ slug: "child-2",
203
+ createdAtUtcIso: "2024-01-02T00:00:00Z",
204
+ lastModifiedAtUtcIso: "2024-01-02T00:00:00Z",
205
+ branch: "main",
206
+ sig: {
207
+ publicKey: {},
208
+ nonce: "test-nonce",
209
+ },
210
+ revision: { global: 2, local: 1 },
211
+ },
212
+ state: { childData: "test2" },
213
+ history: {},
214
+ initialState: {},
215
+ operations: {},
216
+ clipboard: [],
217
+ },
218
+ ],
219
+ options: {
220
+ cursor: "child-cursor",
221
+ limit: 10,
222
+ },
223
+ };
224
+ vi.mocked(mockReactorClient.getChildren).mockResolvedValue(mockChildren);
225
+ const result = await resolvers.documentChildren(mockReactorClient, {
226
+ parentIdentifier: "parent-1",
227
+ });
228
+ expect(result).toEqual({
229
+ cursor: "child-cursor",
230
+ hasNextPage: false,
231
+ hasPreviousPage: false,
232
+ items: [
233
+ {
234
+ id: "child-1",
235
+ name: "Child 1",
236
+ documentType: "type-1",
237
+ slug: "child-1",
238
+ createdAtUtcIso: "2024-01-01T00:00:00Z",
239
+ lastModifiedAtUtcIso: "2024-01-01T00:00:00Z",
240
+ revisionsList: [{ scope: "global", revision: 1 }],
241
+ state: { childData: "test" },
242
+ },
243
+ {
244
+ id: "child-2",
245
+ name: "Child 2",
246
+ documentType: "type-2",
247
+ slug: "child-2",
248
+ createdAtUtcIso: "2024-01-02T00:00:00Z",
249
+ lastModifiedAtUtcIso: "2024-01-02T00:00:00Z",
250
+ revisionsList: [
251
+ { scope: "global", revision: 2 },
252
+ { scope: "local", revision: 1 },
253
+ ],
254
+ state: { childData: "test2" },
255
+ },
256
+ ],
257
+ totalCount: 2,
258
+ });
259
+ });
260
+ it("should handle empty cursor as null", async () => {
261
+ const mockChildren = {
262
+ results: [],
263
+ options: {
264
+ cursor: "",
265
+ limit: 5,
266
+ },
267
+ };
268
+ vi.mocked(mockReactorClient.getChildren).mockResolvedValue(mockChildren);
269
+ const result = await resolvers.documentChildren(mockReactorClient, {
270
+ parentIdentifier: "parent-1",
271
+ });
272
+ expect(result.cursor).toBeNull();
273
+ });
274
+ });
275
+ describe("documentParents", () => {
276
+ it("should transform parent documents to GraphQL format", async () => {
277
+ const mockParents = {
278
+ results: [
279
+ {
280
+ header: {
281
+ id: "parent-1",
282
+ name: "Parent 1",
283
+ documentType: "folder",
284
+ slug: "parent-1",
285
+ createdAtUtcIso: "2024-01-01T00:00:00Z",
286
+ lastModifiedAtUtcIso: "2024-01-01T00:00:00Z",
287
+ branch: "main",
288
+ sig: {
289
+ publicKey: {},
290
+ nonce: "test-nonce",
291
+ },
292
+ revision: { global: 10, local: 5, branch: 2 },
293
+ },
294
+ state: { parentData: "test" },
295
+ history: {},
296
+ initialState: {},
297
+ operations: {},
298
+ clipboard: [],
299
+ },
300
+ ],
301
+ options: {
302
+ cursor: "parent-cursor",
303
+ limit: 10,
304
+ },
305
+ };
306
+ vi.mocked(mockReactorClient.getParents).mockResolvedValue(mockParents);
307
+ const result = await resolvers.documentParents(mockReactorClient, {
308
+ childIdentifier: "child-1",
309
+ });
310
+ expect(result).toEqual({
311
+ cursor: "parent-cursor",
312
+ hasNextPage: false,
313
+ hasPreviousPage: false,
314
+ items: [
315
+ {
316
+ id: "parent-1",
317
+ name: "Parent 1",
318
+ documentType: "folder",
319
+ slug: "parent-1",
320
+ createdAtUtcIso: "2024-01-01T00:00:00Z",
321
+ lastModifiedAtUtcIso: "2024-01-01T00:00:00Z",
322
+ revisionsList: [
323
+ { scope: "global", revision: 10 },
324
+ { scope: "local", revision: 5 },
325
+ { scope: "branch", revision: 2 },
326
+ ],
327
+ state: { parentData: "test" },
328
+ },
329
+ ],
330
+ totalCount: 1,
331
+ });
332
+ });
333
+ });
334
+ describe("findDocuments", () => {
335
+ it("should transform found documents to GraphQL format", async () => {
336
+ const mockDocuments = {
337
+ results: [
338
+ {
339
+ header: {
340
+ id: "doc-1",
341
+ name: "Document 1",
342
+ documentType: "powerhouse/document-model",
343
+ slug: "doc-1",
344
+ createdAtUtcIso: "2024-01-01T00:00:00Z",
345
+ lastModifiedAtUtcIso: "2024-01-01T00:00:00Z",
346
+ branch: "main",
347
+ sig: {
348
+ publicKey: {},
349
+ nonce: "test-nonce",
350
+ },
351
+ revision: { global: 1 },
352
+ },
353
+ state: { doc1Data: "test" },
354
+ history: {},
355
+ initialState: {},
356
+ operations: {},
357
+ clipboard: [],
358
+ },
359
+ {
360
+ header: {
361
+ id: "doc-2",
362
+ name: "Document 2",
363
+ documentType: "powerhouse/document-model",
364
+ slug: "doc-2",
365
+ createdAtUtcIso: "2024-01-02T00:00:00Z",
366
+ lastModifiedAtUtcIso: "2024-01-02T00:00:00Z",
367
+ branch: "main",
368
+ sig: {
369
+ publicKey: {},
370
+ nonce: "test-nonce",
371
+ },
372
+ revision: { global: 2 },
373
+ },
374
+ state: { doc2Data: "test" },
375
+ history: {},
376
+ initialState: {},
377
+ operations: {},
378
+ clipboard: [],
379
+ },
380
+ ],
381
+ options: {
382
+ cursor: "search-cursor",
383
+ limit: 10,
384
+ },
385
+ };
386
+ vi.mocked(mockReactorClient.find).mockResolvedValue(mockDocuments);
387
+ const result = await resolvers.findDocuments(mockReactorClient, {
388
+ search: {
389
+ type: "powerhouse/document-model",
390
+ parentId: "parent-1",
391
+ },
392
+ });
393
+ expect(result).toEqual({
394
+ cursor: "search-cursor",
395
+ hasNextPage: false,
396
+ hasPreviousPage: false,
397
+ items: [
398
+ {
399
+ id: "doc-1",
400
+ name: "Document 1",
401
+ documentType: "powerhouse/document-model",
402
+ slug: "doc-1",
403
+ createdAtUtcIso: "2024-01-01T00:00:00Z",
404
+ lastModifiedAtUtcIso: "2024-01-01T00:00:00Z",
405
+ revisionsList: [{ scope: "global", revision: 1 }],
406
+ state: { doc1Data: "test" },
407
+ },
408
+ {
409
+ id: "doc-2",
410
+ name: "Document 2",
411
+ documentType: "powerhouse/document-model",
412
+ slug: "doc-2",
413
+ createdAtUtcIso: "2024-01-02T00:00:00Z",
414
+ lastModifiedAtUtcIso: "2024-01-02T00:00:00Z",
415
+ revisionsList: [{ scope: "global", revision: 2 }],
416
+ state: { doc2Data: "test" },
417
+ },
418
+ ],
419
+ totalCount: 2,
420
+ });
421
+ });
422
+ });
423
+ describe("jobStatus", () => {
424
+ it("should transform completed job with all fields", async () => {
425
+ const mockJobInfo = {
426
+ id: "job-123",
427
+ status: JobStatus.COMPLETED,
428
+ createdAtUtcIso: "2024-01-01T00:00:00Z",
429
+ completedAtUtcIso: "2024-01-01T00:05:00Z",
430
+ result: { success: true, data: "test" },
431
+ };
432
+ vi.mocked(mockReactorClient.getJobStatus).mockResolvedValue(mockJobInfo);
433
+ const result = await resolvers.jobStatus(mockReactorClient, {
434
+ jobId: "job-123",
435
+ });
436
+ expect(result).toEqual({
437
+ id: "job-123",
438
+ status: JobStatus.COMPLETED,
439
+ createdAt: "2024-01-01T00:00:00Z",
440
+ completedAt: "2024-01-01T00:05:00Z",
441
+ error: null,
442
+ result: { success: true, data: "test" },
443
+ });
444
+ });
445
+ it("should transform failed job with error", async () => {
446
+ const mockJobInfo = {
447
+ id: "job-456",
448
+ status: JobStatus.FAILED,
449
+ createdAtUtcIso: "2024-01-01T00:00:00Z",
450
+ error: "Job failed due to timeout",
451
+ };
452
+ vi.mocked(mockReactorClient.getJobStatus).mockResolvedValue(mockJobInfo);
453
+ const result = await resolvers.jobStatus(mockReactorClient, {
454
+ jobId: "job-456",
455
+ });
456
+ expect(result).toEqual({
457
+ id: "job-456",
458
+ status: JobStatus.FAILED,
459
+ createdAt: "2024-01-01T00:00:00Z",
460
+ completedAt: null,
461
+ error: "Job failed due to timeout",
462
+ result: null,
463
+ });
464
+ });
465
+ it("should transform pending job with minimal fields", async () => {
466
+ const mockJobInfo = {
467
+ id: "job-789",
468
+ status: JobStatus.PENDING,
469
+ createdAtUtcIso: "2024-01-01T00:00:00Z",
470
+ };
471
+ vi.mocked(mockReactorClient.getJobStatus).mockResolvedValue(mockJobInfo);
472
+ const result = await resolvers.jobStatus(mockReactorClient, {
473
+ jobId: "job-789",
474
+ });
475
+ expect(result).toEqual({
476
+ id: "job-789",
477
+ status: JobStatus.PENDING,
478
+ createdAt: "2024-01-01T00:00:00Z",
479
+ completedAt: null,
480
+ error: null,
481
+ result: null,
482
+ });
483
+ });
484
+ it("should handle undefined optional fields as null", async () => {
485
+ const mockJobInfo = {
486
+ id: "job-999",
487
+ status: JobStatus.RUNNING,
488
+ createdAtUtcIso: "2024-01-01T00:00:00Z",
489
+ completedAtUtcIso: undefined,
490
+ error: undefined,
491
+ result: undefined,
492
+ };
493
+ vi.mocked(mockReactorClient.getJobStatus).mockResolvedValue(mockJobInfo);
494
+ const result = await resolvers.jobStatus(mockReactorClient, {
495
+ jobId: "job-999",
496
+ });
497
+ expect(result.completedAt).toBeNull();
498
+ expect(result.error).toBeNull();
499
+ expect(result.result).toBeNull();
500
+ });
501
+ });
502
+ describe("Error handling", () => {
503
+ it("should wrap ReactorClient errors with descriptive messages", async () => {
504
+ vi.mocked(mockReactorClient.getDocumentModels).mockRejectedValue(new Error("Network timeout"));
505
+ await expect(resolvers.documentModels(mockReactorClient, {})).rejects.toThrow("Failed to fetch document models: Network timeout");
506
+ });
507
+ it("should handle unknown error types", async () => {
508
+ vi.mocked(mockReactorClient.get).mockRejectedValue("String error");
509
+ await expect(resolvers.document(mockReactorClient, { identifier: "doc-1" })).rejects.toThrow("Failed to fetch document: Unknown error");
510
+ });
511
+ it("should handle conversion errors separately from fetch errors", async () => {
512
+ const invalidDocument = {
513
+ header: null, // Invalid structure
514
+ };
515
+ vi.mocked(mockReactorClient.get).mockResolvedValue({
516
+ document: invalidDocument,
517
+ childIds: [],
518
+ });
519
+ await expect(resolvers.document(mockReactorClient, { identifier: "doc-1" })).rejects.toThrow("Failed to convert document to GraphQL");
520
+ });
521
+ });
522
+ });
523
+ //# sourceMappingURL=reactor-resolvers.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactor-resolvers.test.js","sourceRoot":"","sources":["../../test/reactor-resolvers.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=router.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.test.d.ts","sourceRoot":"","sources":["../../test/router.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,38 @@
1
+ import { documentModelDocumentModelModule } from "document-model";
2
+ import { describe, expect, it } from "vitest";
3
+ const documentModels = [
4
+ documentModelDocumentModelModule,
5
+ ];
6
+ describe.skip("Reactor Router", () => {
7
+ it("should be initialized", () => {
8
+ // const app = express();
9
+ // const knex = getDbClient();
10
+ // const reactor = new ReactorBuilder(documentModels).build();
11
+ // const reactorRouter = new GraphQLManager("/", app, reactor, knex);
12
+ expect(true).toBe(true);
13
+ });
14
+ // it("should be able to add a new subgraph", async () => {
15
+ // const driveServer = new ReactorBuilder(documentModels).build();
16
+ // await driveServer.initialize();
17
+ // const newSubgraph = {
18
+ // name: "newSubgraph",
19
+ // getSchema: (documentDriveServer: IDocumentDriveServer) =>
20
+ // buildSubgraphSchema([
21
+ // {
22
+ // typeDefs: getDocumentModelTypeDefs(
23
+ // documentDriveServer,
24
+ // `
25
+ // type Query {
26
+ // hello: String
27
+ // }
28
+ // `,
29
+ // ),
30
+ // resolvers: { Query: { hello: () => "world" } },
31
+ // },
32
+ // ]),
33
+ // };
34
+ // await addSubgraph(newSubgraph);
35
+ // expect(reactorRouter.stack.length).gte(3);
36
+ // });
37
+ });
38
+ //# sourceMappingURL=router.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.test.js","sourceRoot":"","sources":["../../test/router.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gCAAgC,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,MAAM,cAAc,GAAG;IACrB,gCAAgC;CACG,CAAC;AAEtC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,EAAE;IACnC,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,yBAAyB;QACzB,8BAA8B;QAC9B,8DAA8D;QAC9D,qEAAqE;QACrE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,2DAA2D;IAC3D,oEAAoE;IACpE,oCAAoC;IACpC,0BAA0B;IAC1B,2BAA2B;IAC3B,gEAAgE;IAChE,8BAA8B;IAC9B,YAAY;IACZ,gDAAgD;IAChD,mCAAmC;IACnC,gBAAgB;IAChB,2BAA2B;IAC3B,8BAA8B;IAC9B,gBAAgB;IAChB,eAAe;IACf,eAAe;IACf,4DAA4D;IAC5D,aAAa;IACb,YAAY;IACZ,OAAO;IAEP,oCAAoC;IACpC,+CAA+C;IAC/C,MAAM;AACR,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=system.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system.test.d.ts","sourceRoot":"","sources":["../../test/system.test.ts"],"names":[],"mappings":""}