document-drive 3.2.0-dev.9 → 3.2.0-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.
- package/dist/src/cache/memory.js +2 -2
- package/dist/src/cache/memory.js.map +1 -1
- package/dist/src/cache/redis.js +3 -3
- package/dist/src/cache/redis.js.map +1 -1
- package/dist/src/drive-document-model/gen/utils.d.ts.map +1 -1
- package/dist/src/drive-document-model/gen/utils.js +3 -8
- package/dist/src/drive-document-model/gen/utils.js.map +1 -1
- package/dist/src/drive-document-model/src/tests/document-model.test.js +1 -1
- package/dist/src/drive-document-model/src/tests/document-model.test.js.map +1 -1
- package/dist/src/read-mode/service.js +1 -1
- package/dist/src/read-mode/service.js.map +1 -1
- package/dist/src/server/base-server.d.ts +1 -1
- package/dist/src/server/base-server.d.ts.map +1 -1
- package/dist/src/server/base-server.js +35 -64
- package/dist/src/server/base-server.js.map +1 -1
- package/dist/src/server/sync-manager.d.ts.map +1 -1
- package/dist/src/server/sync-manager.js +5 -5
- package/dist/src/server/sync-manager.js.map +1 -1
- package/dist/src/server/types.d.ts +2 -2
- package/dist/src/server/types.d.ts.map +1 -1
- package/dist/src/storage/browser.d.ts +3 -3
- package/dist/src/storage/browser.d.ts.map +1 -1
- package/dist/src/storage/browser.js +18 -20
- package/dist/src/storage/browser.js.map +1 -1
- package/dist/src/storage/filesystem.d.ts +3 -3
- package/dist/src/storage/filesystem.d.ts.map +1 -1
- package/dist/src/storage/filesystem.js +18 -18
- package/dist/src/storage/filesystem.js.map +1 -1
- package/dist/src/storage/ipfs.d.ts +4 -4
- package/dist/src/storage/ipfs.d.ts.map +1 -1
- package/dist/src/storage/ipfs.js +9 -9
- package/dist/src/storage/ipfs.js.map +1 -1
- package/dist/src/storage/memory.d.ts +3 -3
- package/dist/src/storage/memory.d.ts.map +1 -1
- package/dist/src/storage/memory.js +15 -15
- package/dist/src/storage/memory.js.map +1 -1
- package/dist/src/storage/prisma/prisma.d.ts +6 -5
- package/dist/src/storage/prisma/prisma.d.ts.map +1 -1
- package/dist/src/storage/prisma/prisma.js +27 -37
- package/dist/src/storage/prisma/prisma.js.map +1 -1
- package/dist/src/storage/types.d.ts +5 -5
- package/dist/src/storage/types.d.ts.map +1 -1
- package/dist/src/utils/default-drives-manager.js +3 -3
- package/dist/src/utils/default-drives-manager.js.map +1 -1
- package/dist/src/utils/graphql.d.ts.map +1 -1
- package/dist/src/utils/graphql.js +19 -15
- package/dist/src/utils/graphql.js.map +1 -1
- package/dist/src/utils/misc.js +1 -1
- package/dist/src/utils/misc.js.map +1 -1
- package/dist/test/cache.test.js +21 -21
- package/dist/test/cache.test.js.map +1 -1
- package/dist/test/graphql.test.js +1 -1
- package/dist/test/graphql.test.js.map +1 -1
- package/dist/test/queue.test.js +6 -6
- package/dist/test/queue.test.js.map +1 -1
- package/dist/test/read-mode.test.js +16 -28
- package/dist/test/read-mode.test.js.map +1 -1
- package/dist/test/server/driveOperationsConflictResolution.test.js +362 -433
- package/dist/test/server/driveOperationsConflictResolution.test.js.map +1 -1
- package/dist/test/server.test.js +11 -11
- package/dist/test/server.test.js.map +1 -1
- package/dist/test/signature-migration.test.js +4 -8
- package/dist/test/signature-migration.test.js.map +1 -1
- package/dist/test/storage.test.js +69 -80
- package/dist/test/storage.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/dist/src/utils/gql-transformations.d.ts +0 -13
- package/dist/src/utils/gql-transformations.d.ts.map +0 -1
- package/dist/src/utils/gql-transformations.js +0 -25
- package/dist/src/utils/gql-transformations.js.map +0 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { existsSync, rmSync } from "fs";
|
|
2
|
+
import { createHelia } from "helia";
|
|
2
3
|
import path from "path";
|
|
3
4
|
import { describe, it } from "vitest";
|
|
4
5
|
import { createDocument, generateId, } from "../../document-model/index.js";
|
|
@@ -6,6 +7,7 @@ import InMemoryCache from "../src/cache/memory.js";
|
|
|
6
7
|
import { createDocument as createDriveDocument } from "../src/drive-document-model/gen/utils.js";
|
|
7
8
|
import { BrowserStorage } from "../src/storage/browser.js";
|
|
8
9
|
import { FilesystemStorage } from "../src/storage/filesystem.js";
|
|
10
|
+
import { IPFSStorage } from "../src/storage/ipfs.js";
|
|
9
11
|
import { MemoryStorage } from "../src/storage/memory.js";
|
|
10
12
|
import { PrismaClient } from "../src/storage/prisma/client/index.js";
|
|
11
13
|
import { PrismaStorage } from "../src/storage/prisma/prisma.js";
|
|
@@ -42,13 +44,13 @@ const storageImplementations = [
|
|
|
42
44
|
return new PrismaStorage(prisma, new InMemoryCache());
|
|
43
45
|
},
|
|
44
46
|
],
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
]
|
|
47
|
+
[
|
|
48
|
+
"IPFSStorage",
|
|
49
|
+
async () => {
|
|
50
|
+
const helia = await createHelia();
|
|
51
|
+
return new IPFSStorage(helia);
|
|
52
|
+
},
|
|
53
|
+
],
|
|
52
54
|
];
|
|
53
55
|
describe.each(storageImplementations)("%s", async (_, buildStorage) => {
|
|
54
56
|
it("should correctly check for non-existent document", async ({ expect }) => {
|
|
@@ -60,7 +62,7 @@ describe.each(storageImplementations)("%s", async (_, buildStorage) => {
|
|
|
60
62
|
it("should allow creating a document", async ({ expect }) => {
|
|
61
63
|
const storage = await buildStorage();
|
|
62
64
|
const document = createDocument();
|
|
63
|
-
const id = document.
|
|
65
|
+
const id = document.id;
|
|
64
66
|
await storage.create(document);
|
|
65
67
|
const result = await storage.exists(id);
|
|
66
68
|
expect(result).toBe(true);
|
|
@@ -68,13 +70,13 @@ describe.each(storageImplementations)("%s", async (_, buildStorage) => {
|
|
|
68
70
|
it("should disallow creating a document with an invalid id", async ({ expect, }) => {
|
|
69
71
|
const storage = await buildStorage();
|
|
70
72
|
const document = createDocument();
|
|
71
|
-
document.
|
|
73
|
+
document.id = "test!\\";
|
|
72
74
|
await expect(async () => await storage.create(document)).rejects.toThrow();
|
|
73
75
|
});
|
|
74
76
|
it("should not change the state of a document to match id", async ({ expect, }) => {
|
|
75
77
|
const storage = await buildStorage();
|
|
76
78
|
const document = createDocument();
|
|
77
|
-
const id = document.
|
|
79
|
+
const id = document.id;
|
|
78
80
|
document.initialState.state.global.id = "FOOOP";
|
|
79
81
|
await storage.create(document);
|
|
80
82
|
const result = await storage.get(id);
|
|
@@ -83,7 +85,7 @@ describe.each(storageImplementations)("%s", async (_, buildStorage) => {
|
|
|
83
85
|
it("should throw a DocumentAlreadyExistsError when creating a document if the document already exists", async ({ expect, }) => {
|
|
84
86
|
const storage = await buildStorage();
|
|
85
87
|
const document = createDocument();
|
|
86
|
-
const id = document.
|
|
88
|
+
const id = document.id;
|
|
87
89
|
await storage.create(document);
|
|
88
90
|
try {
|
|
89
91
|
await storage.create(document);
|
|
@@ -96,13 +98,13 @@ describe.each(storageImplementations)("%s", async (_, buildStorage) => {
|
|
|
96
98
|
it("should throw a DocumentAlreadyExistsError when creating a drive with a slug that already exists", async ({ expect, }) => {
|
|
97
99
|
const storage = await buildStorage();
|
|
98
100
|
const a = createDriveDocument();
|
|
99
|
-
a.
|
|
100
|
-
const idA = a.
|
|
101
|
+
a.slug = "test";
|
|
102
|
+
const idA = a.id;
|
|
101
103
|
await storage.create(a);
|
|
102
104
|
// different id, but same slug
|
|
103
105
|
const b = createDriveDocument();
|
|
104
|
-
b.
|
|
105
|
-
const idB = b.
|
|
106
|
+
b.slug = "test";
|
|
107
|
+
const idB = b.id;
|
|
106
108
|
try {
|
|
107
109
|
await storage.create(b);
|
|
108
110
|
throw new Error("Document should not be created");
|
|
@@ -114,7 +116,7 @@ describe.each(storageImplementations)("%s", async (_, buildStorage) => {
|
|
|
114
116
|
it("should allow getting a document", async ({ expect }) => {
|
|
115
117
|
const storage = await buildStorage();
|
|
116
118
|
const document = createDocument();
|
|
117
|
-
const id = document.
|
|
119
|
+
const id = document.id;
|
|
118
120
|
await storage.create(document);
|
|
119
121
|
const result = await storage.get(id);
|
|
120
122
|
// Storage implementations are free to return documents with or without populated state + meta.
|
|
@@ -125,10 +127,9 @@ describe.each(storageImplementations)("%s", async (_, buildStorage) => {
|
|
|
125
127
|
//
|
|
126
128
|
// Also: we give storage implementations authority to set the created timestamp (like a postgres timestamp).
|
|
127
129
|
// So we compare every field except for a few...
|
|
128
|
-
const { state,
|
|
129
|
-
const { state: _state,
|
|
130
|
+
const { state, created, meta, ...rest } = document;
|
|
131
|
+
const { state: _state, created: _created, meta: _meta, ...restResult } = result;
|
|
130
132
|
expect(restResult).toEqual(rest);
|
|
131
|
-
expect(headerRestResult).toEqual(headerRest);
|
|
132
133
|
});
|
|
133
134
|
it("should throw a DocumentNotFoundError if the document is not found", async ({ expect, }) => {
|
|
134
135
|
const storage = await buildStorage();
|
|
@@ -155,7 +156,7 @@ describe.each(storageImplementations)("%s", async (_, buildStorage) => {
|
|
|
155
156
|
it("should allow deleting a document", async ({ expect }) => {
|
|
156
157
|
const storage = await buildStorage();
|
|
157
158
|
const document = createDocument();
|
|
158
|
-
const id = document.
|
|
159
|
+
const id = document.id;
|
|
159
160
|
await storage.create(document);
|
|
160
161
|
const result = await storage.delete(id);
|
|
161
162
|
expect(result).toBe(true);
|
|
@@ -167,14 +168,14 @@ describe.each(storageImplementations)("%s", async (_, buildStorage) => {
|
|
|
167
168
|
it("should delete documents from all drives when deleted", async ({ expect, }) => {
|
|
168
169
|
const storage = await buildStorage();
|
|
169
170
|
const document = createDocument();
|
|
170
|
-
const documentId = document.
|
|
171
|
+
const documentId = document.id;
|
|
171
172
|
await storage.create(document);
|
|
172
173
|
const driveA = createDriveDocument();
|
|
173
|
-
const driveAId = driveA.
|
|
174
|
+
const driveAId = driveA.id;
|
|
174
175
|
await storage.create(driveA);
|
|
175
176
|
await storage.addChild(driveAId, documentId);
|
|
176
177
|
const driveB = createDriveDocument();
|
|
177
|
-
const driveBId = driveB.
|
|
178
|
+
const driveBId = driveB.id;
|
|
178
179
|
await storage.create(driveB);
|
|
179
180
|
await storage.addChild(driveBId, documentId);
|
|
180
181
|
const result = await storage.delete(documentId);
|
|
@@ -187,15 +188,15 @@ describe.each(storageImplementations)("%s", async (_, buildStorage) => {
|
|
|
187
188
|
it("should allow getting all parents of a document", async ({ expect }) => {
|
|
188
189
|
const storage = await buildStorage();
|
|
189
190
|
const document = createDocument();
|
|
190
|
-
const childId = document.
|
|
191
|
+
const childId = document.id;
|
|
191
192
|
await storage.create(document);
|
|
192
193
|
let parents = await storage.getParents(childId);
|
|
193
194
|
expect(parents).toEqual([]);
|
|
194
195
|
const driveA = createDriveDocument();
|
|
195
|
-
const driveAId = driveA.
|
|
196
|
+
const driveAId = driveA.id;
|
|
196
197
|
await storage.create(driveA);
|
|
197
198
|
const driveB = createDriveDocument();
|
|
198
|
-
const driveBId = driveB.
|
|
199
|
+
const driveBId = driveB.id;
|
|
199
200
|
await storage.create(driveB);
|
|
200
201
|
await storage.addChild(driveAId, childId);
|
|
201
202
|
await storage.addChild(driveBId, childId);
|
|
@@ -206,13 +207,13 @@ describe.each(storageImplementations)("%s", async (_, buildStorage) => {
|
|
|
206
207
|
it("should update the parents of a document when a parent is deleted", async ({ expect, }) => {
|
|
207
208
|
const storage = await buildStorage();
|
|
208
209
|
const document = createDocument();
|
|
209
|
-
const childId = document.
|
|
210
|
+
const childId = document.id;
|
|
210
211
|
await storage.create(document);
|
|
211
212
|
const driveA = createDriveDocument();
|
|
212
|
-
const driveAId = driveA.
|
|
213
|
+
const driveAId = driveA.id;
|
|
213
214
|
await storage.create(driveA);
|
|
214
215
|
const driveB = createDriveDocument();
|
|
215
|
-
const driveBId = driveB.
|
|
216
|
+
const driveBId = driveB.id;
|
|
216
217
|
await storage.create(driveB);
|
|
217
218
|
await storage.addChild(driveAId, childId);
|
|
218
219
|
await storage.addChild(driveBId, childId);
|
|
@@ -223,10 +224,10 @@ describe.each(storageImplementations)("%s", async (_, buildStorage) => {
|
|
|
223
224
|
it("should, when deleting a document, also delete all child documents that were only a child of that document", async ({ expect, }) => {
|
|
224
225
|
const storage = await buildStorage();
|
|
225
226
|
const child = createDocument();
|
|
226
|
-
const childId = child.
|
|
227
|
+
const childId = child.id;
|
|
227
228
|
await storage.create(child);
|
|
228
229
|
const drive = createDriveDocument();
|
|
229
|
-
const driveId = drive.
|
|
230
|
+
const driveId = drive.id;
|
|
230
231
|
await storage.create(drive);
|
|
231
232
|
await storage.addChild(driveId, childId);
|
|
232
233
|
await storage.delete(driveId);
|
|
@@ -237,17 +238,17 @@ describe.each(storageImplementations)("%s", async (_, buildStorage) => {
|
|
|
237
238
|
const storage = await buildStorage();
|
|
238
239
|
const slug = `test-slug-${generateId()}`;
|
|
239
240
|
const document = createDriveDocument();
|
|
240
|
-
const id = document.
|
|
241
|
-
document.
|
|
241
|
+
const id = document.id;
|
|
242
|
+
document.slug = slug;
|
|
242
243
|
await storage.create(document);
|
|
243
244
|
const result = await storage.getBySlug(slug);
|
|
244
|
-
expect(result.
|
|
245
|
+
expect(result.slug).toBe(slug);
|
|
245
246
|
});
|
|
246
247
|
it("the id should be used as the slug if no slug is provided", async ({ expect, }) => {
|
|
247
248
|
const storage = await buildStorage();
|
|
248
249
|
const document = createDriveDocument();
|
|
249
|
-
const id = document.
|
|
250
|
-
document.
|
|
250
|
+
const id = document.id;
|
|
251
|
+
document.slug = "";
|
|
251
252
|
await storage.create(document);
|
|
252
253
|
const result = await storage.getBySlug(id);
|
|
253
254
|
expect(result).toBeTruthy();
|
|
@@ -289,7 +290,7 @@ describe.each(storageImplementations)("%s", async (_, buildStorage) => {
|
|
|
289
290
|
];
|
|
290
291
|
for (const invalidSlug of invalidSlugs) {
|
|
291
292
|
const document = createDriveDocument();
|
|
292
|
-
document.
|
|
293
|
+
document.slug = invalidSlug;
|
|
293
294
|
await expect(async () => await storage.create(document)).rejects.toThrow();
|
|
294
295
|
}
|
|
295
296
|
const validSlugs = [
|
|
@@ -304,7 +305,7 @@ describe.each(storageImplementations)("%s", async (_, buildStorage) => {
|
|
|
304
305
|
];
|
|
305
306
|
for (const validSlug of validSlugs) {
|
|
306
307
|
const validDocument = createDriveDocument();
|
|
307
|
-
validDocument.
|
|
308
|
+
validDocument.slug = validSlug;
|
|
308
309
|
await storage.create(validDocument);
|
|
309
310
|
const result = await storage.getBySlug(validSlug);
|
|
310
311
|
expect(result).toBeTruthy();
|
|
@@ -314,13 +315,13 @@ describe.each(storageImplementations)("%s", async (_, buildStorage) => {
|
|
|
314
315
|
it("should allow removing a document and then adding a new document with the same id and slug", async ({ expect, }) => {
|
|
315
316
|
const storage = await buildStorage();
|
|
316
317
|
const document = createDocument();
|
|
317
|
-
const slug = (document.
|
|
318
|
-
const id = document.
|
|
318
|
+
const slug = (document.slug = "test-slug");
|
|
319
|
+
const id = document.id;
|
|
319
320
|
await storage.create(document);
|
|
320
321
|
await storage.delete(id);
|
|
321
322
|
const newDocument = createDocument();
|
|
322
|
-
newDocument.
|
|
323
|
-
newDocument.
|
|
323
|
+
newDocument.slug = slug;
|
|
324
|
+
newDocument.id = id;
|
|
324
325
|
await storage.create(newDocument);
|
|
325
326
|
const result = await storage.getBySlug(slug);
|
|
326
327
|
expect(result).toBeTruthy();
|
|
@@ -331,9 +332,9 @@ describe.each(storageImplementations)("%s", async (_, buildStorage) => {
|
|
|
331
332
|
const document1 = createDocument();
|
|
332
333
|
const document2 = createDriveDocument();
|
|
333
334
|
const document3 = createDocument();
|
|
334
|
-
const id1 = document1.
|
|
335
|
-
const id2 = document2.
|
|
336
|
-
const id3 = document3.
|
|
335
|
+
const id1 = document1.id;
|
|
336
|
+
const id2 = document2.id;
|
|
337
|
+
const id3 = document3.id;
|
|
337
338
|
await storage.create(document1);
|
|
338
339
|
await storage.create(document2);
|
|
339
340
|
await storage.create(document3);
|
|
@@ -351,7 +352,7 @@ describe.each(storageImplementations)("%s", async (_, buildStorage) => {
|
|
|
351
352
|
const documentIds = [];
|
|
352
353
|
for (let i = 0; i < 10; i++) {
|
|
353
354
|
const document = createDocument();
|
|
354
|
-
const id = document.
|
|
355
|
+
const id = document.id;
|
|
355
356
|
documentIds.push(id);
|
|
356
357
|
await storage.create(document);
|
|
357
358
|
}
|
|
@@ -379,10 +380,10 @@ describe.each(storageImplementations)("%s", async (_, buildStorage) => {
|
|
|
379
380
|
const storage = await buildStorage();
|
|
380
381
|
// for now, we only allow documents to be associated with drives
|
|
381
382
|
const drive = createDriveDocument();
|
|
382
|
-
const driveId = drive.
|
|
383
|
+
const driveId = drive.id;
|
|
383
384
|
await storage.create(drive);
|
|
384
385
|
const document = createDocument();
|
|
385
|
-
const documentId = document.
|
|
386
|
+
const documentId = document.id;
|
|
386
387
|
await storage.create(document);
|
|
387
388
|
await storage.addChild(driveId, documentId);
|
|
388
389
|
const children = await storage.getChildren(driveId);
|
|
@@ -391,17 +392,17 @@ describe.each(storageImplementations)("%s", async (_, buildStorage) => {
|
|
|
391
392
|
it("should not allow self associations", async ({ expect }) => {
|
|
392
393
|
const storage = await buildStorage();
|
|
393
394
|
const document = createDocument();
|
|
394
|
-
const documentId = document.
|
|
395
|
+
const documentId = document.id;
|
|
395
396
|
await storage.create(document);
|
|
396
397
|
await expect(storage.addChild(documentId, documentId)).rejects.toThrow();
|
|
397
398
|
});
|
|
398
399
|
it("should not allow circular associations", async ({ expect }) => {
|
|
399
400
|
const storage = await buildStorage();
|
|
400
401
|
const drive = createDriveDocument();
|
|
401
|
-
const driveId = drive.
|
|
402
|
+
const driveId = drive.id;
|
|
402
403
|
await storage.create(drive);
|
|
403
404
|
const document = createDocument();
|
|
404
|
-
const documentId = document.
|
|
405
|
+
const documentId = document.id;
|
|
405
406
|
await storage.create(document);
|
|
406
407
|
await storage.addChild(driveId, documentId);
|
|
407
408
|
await expect(storage.addChild(documentId, driveId)).rejects.toThrow();
|
|
@@ -409,10 +410,10 @@ describe.each(storageImplementations)("%s", async (_, buildStorage) => {
|
|
|
409
410
|
it("should allow removing a child from a drive", async ({ expect }) => {
|
|
410
411
|
const storage = await buildStorage();
|
|
411
412
|
const drive = createDriveDocument();
|
|
412
|
-
const driveId = drive.
|
|
413
|
+
const driveId = drive.id;
|
|
413
414
|
await storage.create(drive);
|
|
414
415
|
const document = createDocument();
|
|
415
|
-
const documentId = document.
|
|
416
|
+
const documentId = document.id;
|
|
416
417
|
await storage.create(document);
|
|
417
418
|
await storage.addChild(driveId, documentId);
|
|
418
419
|
const result = await storage.removeChild(driveId, documentId);
|
|
@@ -423,7 +424,7 @@ describe.each(storageImplementations)("%s", async (_, buildStorage) => {
|
|
|
423
424
|
it("should not allow removing a child from a non-existent drive", async ({ expect, }) => {
|
|
424
425
|
const storage = await buildStorage();
|
|
425
426
|
const document = createDocument();
|
|
426
|
-
const documentId = document.
|
|
427
|
+
const documentId = document.id;
|
|
427
428
|
await storage.create(document);
|
|
428
429
|
const driveId = generateId();
|
|
429
430
|
const result = await storage.removeChild(driveId, documentId);
|
|
@@ -433,7 +434,7 @@ describe.each(storageImplementations)("%s", async (_, buildStorage) => {
|
|
|
433
434
|
const storage = await buildStorage();
|
|
434
435
|
const documentId = generateId();
|
|
435
436
|
const drive = createDriveDocument();
|
|
436
|
-
const driveId = drive.
|
|
437
|
+
const driveId = drive.id;
|
|
437
438
|
await storage.create(drive);
|
|
438
439
|
const result = await storage.removeChild(driveId, documentId);
|
|
439
440
|
expect(result).toBe(false);
|
|
@@ -448,10 +449,10 @@ describe.each(storageImplementations)("%s", async (_, buildStorage) => {
|
|
|
448
449
|
it("parent/child relationship should be removed when the child is deleted", async ({ expect, }) => {
|
|
449
450
|
const storage = await buildStorage();
|
|
450
451
|
const drive = createDriveDocument();
|
|
451
|
-
const driveId = drive.
|
|
452
|
+
const driveId = drive.id;
|
|
452
453
|
await storage.create(drive);
|
|
453
454
|
const document = createDocument();
|
|
454
|
-
const documentId = document.
|
|
455
|
+
const documentId = document.id;
|
|
455
456
|
await storage.create(document);
|
|
456
457
|
await storage.addChild(driveId, documentId);
|
|
457
458
|
await storage.delete(documentId);
|
|
@@ -461,46 +462,34 @@ describe.each(storageImplementations)("%s", async (_, buildStorage) => {
|
|
|
461
462
|
it("parent/child relationship should be removed when the parent is deleted", async ({ expect, }) => {
|
|
462
463
|
const storage = await buildStorage();
|
|
463
464
|
const drive = createDriveDocument();
|
|
464
|
-
const driveId = drive.
|
|
465
|
+
const driveId = drive.id;
|
|
465
466
|
await storage.create(drive);
|
|
466
467
|
const document = createDocument();
|
|
467
|
-
const documentId = document.
|
|
468
|
+
const documentId = document.id;
|
|
468
469
|
await storage.create(document);
|
|
469
470
|
await storage.addChild(driveId, documentId);
|
|
470
471
|
await storage.delete(driveId);
|
|
471
472
|
const children = await storage.getChildren(driveId);
|
|
472
473
|
expect(children).toEqual([]);
|
|
473
474
|
});
|
|
474
|
-
it("should be able to upgrade a document stored as a PHDocument v1", async ({ expect, }) => {
|
|
475
|
-
// TODO
|
|
476
|
-
});
|
|
477
475
|
it("should allow resolving slugs from ids", async ({ expect }) => {
|
|
478
476
|
const storage = await buildStorage();
|
|
479
477
|
const drive = createDriveDocument();
|
|
480
|
-
drive.
|
|
481
|
-
const driveId = drive.
|
|
478
|
+
drive.slug = "test-drive";
|
|
479
|
+
const driveId = drive.id;
|
|
482
480
|
await storage.create(drive);
|
|
483
481
|
const result = await storage.resolveSlugs([driveId]);
|
|
484
|
-
expect(result).toEqual([drive.
|
|
482
|
+
expect(result).toEqual([drive.slug]);
|
|
485
483
|
});
|
|
486
|
-
it("should throw an error if any of the
|
|
484
|
+
it("should throw an error if any of the slugs are not found", async ({ expect, }) => {
|
|
487
485
|
const storage = await buildStorage();
|
|
488
486
|
await expect(async () => await storage.resolveSlugs(["not-found"])).rejects.toThrow();
|
|
489
487
|
});
|
|
490
|
-
it("should return the id if any of the slugs are not found", async ({ expect, }) => {
|
|
491
|
-
const storage = await buildStorage();
|
|
492
|
-
const drive = createDriveDocument();
|
|
493
|
-
drive.header.slug = "";
|
|
494
|
-
const driveId = drive.header.id;
|
|
495
|
-
await storage.create(drive);
|
|
496
|
-
const result = await storage.resolveSlugs([drive.header.slug]);
|
|
497
|
-
expect(result).toEqual([driveId]);
|
|
498
|
-
});
|
|
499
488
|
it("should throw an error if aborted", async ({ expect }) => {
|
|
500
489
|
const storage = await buildStorage();
|
|
501
490
|
const drive = createDriveDocument();
|
|
502
|
-
drive.
|
|
503
|
-
const driveId = drive.
|
|
491
|
+
drive.slug = "test-drive";
|
|
492
|
+
const driveId = drive.id;
|
|
504
493
|
await storage.create(drive);
|
|
505
494
|
const controller = new AbortController();
|
|
506
495
|
controller.abort();
|
|
@@ -509,10 +498,10 @@ describe.each(storageImplementations)("%s", async (_, buildStorage) => {
|
|
|
509
498
|
it("should allow resolving ids from slugs", async ({ expect }) => {
|
|
510
499
|
const storage = await buildStorage();
|
|
511
500
|
const drive = createDriveDocument();
|
|
512
|
-
drive.
|
|
513
|
-
const driveId = drive.
|
|
501
|
+
drive.slug = "test-drive";
|
|
502
|
+
const driveId = drive.id;
|
|
514
503
|
await storage.create(drive);
|
|
515
|
-
const result = await storage.resolveIds([drive.
|
|
504
|
+
const result = await storage.resolveIds([drive.slug]);
|
|
516
505
|
expect(result).toEqual([driveId]);
|
|
517
506
|
});
|
|
518
507
|
it("should throw an error if any of the ids are not found", async ({ expect, }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.test.js","sourceRoot":"","sources":["../../test/storage.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"storage.test.js","sourceRoot":"","sources":["../../test/storage.test.ts"],"names":[],"mappings":"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"}
|