braid-text 0.2.67 → 0.2.69
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/index.js +507 -292
- package/package.json +2 -2
- package/test/test.html +492 -149
package/test/test.html
CHANGED
|
@@ -96,105 +96,443 @@ async function runTest(testName, testFunction, expectedResult) {
|
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
99
|
+
runTest(
|
|
100
|
+
"test subscribe update with body_text",
|
|
101
|
+
async () => {
|
|
102
|
+
var key = 'test' + Math.random().toString(36).slice(2)
|
|
103
|
+
|
|
104
|
+
var r = await braid_fetch(`/${key}`, {
|
|
105
|
+
method: 'PUT',
|
|
106
|
+
body: 'hi'
|
|
107
|
+
})
|
|
108
|
+
if (!r.ok) return 'got: ' + r.status
|
|
109
|
+
|
|
110
|
+
var r1p = braid_fetch(`/eval`, {
|
|
111
|
+
method: 'PUT',
|
|
112
|
+
body: `void (async () => {
|
|
113
|
+
var x = await new Promise(done => {
|
|
114
|
+
braid_text.get(new URL('http://localhost:8889/${key}'), {
|
|
115
|
+
subscribe: update => {
|
|
116
|
+
if (update.body_text === 'yo') done(update.body_text)
|
|
117
|
+
}
|
|
118
|
+
})
|
|
119
|
+
})
|
|
120
|
+
res.end(x)
|
|
121
|
+
})()`
|
|
122
|
+
})
|
|
123
|
+
|
|
124
|
+
var r2 = await braid_fetch(`/${key}`, {
|
|
125
|
+
method: 'PUT',
|
|
126
|
+
body: 'yo'
|
|
127
|
+
})
|
|
128
|
+
|
|
129
|
+
var r1 = await r1p
|
|
130
|
+
if (!r1.ok) return 'got: ' + r.status
|
|
131
|
+
|
|
132
|
+
return await r1.text()
|
|
133
|
+
},
|
|
134
|
+
'yo'
|
|
135
|
+
)
|
|
136
|
+
|
|
137
|
+
runTest(
|
|
138
|
+
"test braid_text.sync, key to url, where url breaks",
|
|
139
|
+
async () => {
|
|
140
|
+
var key = 'test' + Math.random().toString(36).slice(2)
|
|
141
|
+
|
|
142
|
+
var r = await braid_fetch(`/eval`, {
|
|
143
|
+
method: 'PUT',
|
|
144
|
+
body: `void (async () => {
|
|
145
|
+
var count = 0
|
|
146
|
+
var ops
|
|
147
|
+
braid_text.sync('/${key}', new URL('http://localhost:8889/have_error'), ops = {
|
|
148
|
+
on_connect: () => {
|
|
149
|
+
count++
|
|
150
|
+
if (count === 2) {
|
|
151
|
+
res.end('it reconnected!')
|
|
152
|
+
ops.my_unsync()
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
})
|
|
156
|
+
})()`
|
|
157
|
+
})
|
|
158
|
+
return await r.text()
|
|
159
|
+
|
|
160
|
+
},
|
|
161
|
+
'it reconnected!'
|
|
162
|
+
)
|
|
163
|
+
|
|
164
|
+
runTest(
|
|
165
|
+
"test braid_text.sync, url to key",
|
|
166
|
+
async () => {
|
|
167
|
+
var key_a = 'test-a-' + Math.random().toString(36).slice(2)
|
|
168
|
+
var key_b = 'test-b-' + Math.random().toString(36).slice(2)
|
|
169
|
+
|
|
170
|
+
var r = await braid_fetch(`/${key_a}`, {
|
|
171
|
+
method: 'PUT',
|
|
172
|
+
body: 'hi'
|
|
173
|
+
})
|
|
174
|
+
if (!r.ok) return 'got: ' + r.status
|
|
175
|
+
|
|
176
|
+
var r = await braid_fetch(`/eval`, {
|
|
177
|
+
method: 'PUT',
|
|
178
|
+
body: `void (async () => {
|
|
179
|
+
braid_text.sync(new URL('http://localhost:8889/${key_a}'), '/${key_b}')
|
|
180
|
+
res.end('')
|
|
181
|
+
})()`
|
|
182
|
+
})
|
|
183
|
+
if (!r.ok) return 'got: ' + r.status
|
|
184
|
+
|
|
185
|
+
await new Promise(done => setTimeout(done, 100))
|
|
186
|
+
|
|
187
|
+
var r = await braid_fetch(`/${key_b}`)
|
|
188
|
+
return 'got: ' + (await r.text())
|
|
189
|
+
},
|
|
190
|
+
'got: hi'
|
|
191
|
+
)
|
|
192
|
+
|
|
193
|
+
runTest(
|
|
194
|
+
"test braid_text.sync, url to resource",
|
|
195
|
+
async () => {
|
|
196
|
+
var key_a = 'test-a-' + Math.random().toString(36).slice(2)
|
|
197
|
+
var key_b = 'test-b-' + Math.random().toString(36).slice(2)
|
|
198
|
+
|
|
199
|
+
var r = await braid_fetch(`/${key_a}`, {
|
|
200
|
+
method: 'PUT',
|
|
201
|
+
body: 'hi'
|
|
202
|
+
})
|
|
203
|
+
if (!r.ok) return 'got: ' + r.status
|
|
204
|
+
|
|
205
|
+
var r = await braid_fetch(`/eval`, {
|
|
206
|
+
method: 'PUT',
|
|
207
|
+
body: `void (async () => {
|
|
208
|
+
var resource = await braid_text.get_resource('/${key_b}')
|
|
209
|
+
braid_text.sync(new URL('http://localhost:8889/${key_a}'), resource)
|
|
210
|
+
res.end('')
|
|
211
|
+
})()`
|
|
212
|
+
})
|
|
213
|
+
if (!r.ok) return 'got: ' + r.status
|
|
214
|
+
|
|
215
|
+
await new Promise(done => setTimeout(done, 100))
|
|
216
|
+
|
|
217
|
+
var r = await braid_fetch(`/${key_b}`)
|
|
218
|
+
return 'got: ' + (await r.text())
|
|
219
|
+
},
|
|
220
|
+
'got: hi'
|
|
221
|
+
)
|
|
222
|
+
|
|
223
|
+
runTest(
|
|
224
|
+
"test braid_text.sync, with two urls",
|
|
225
|
+
async () => {
|
|
226
|
+
var key_a = 'test-a-' + Math.random().toString(36).slice(2)
|
|
227
|
+
var key_b = 'test-b-' + Math.random().toString(36).slice(2)
|
|
228
|
+
|
|
229
|
+
var r = await braid_fetch(`/${key_a}`, {
|
|
230
|
+
method: 'PUT',
|
|
231
|
+
body: 'hi'
|
|
232
|
+
})
|
|
233
|
+
if (!r.ok) return 'got: ' + r.status
|
|
234
|
+
|
|
235
|
+
var r = await braid_fetch(`/eval`, {
|
|
236
|
+
method: 'PUT',
|
|
237
|
+
body: `void (async () => {
|
|
238
|
+
braid_text.sync(new URL('http://localhost:8889/${key_a}'),
|
|
239
|
+
new URL('http://localhost:8889/${key_b}'))
|
|
240
|
+
res.end('')
|
|
241
|
+
})()`
|
|
242
|
+
})
|
|
243
|
+
if (!r.ok) return 'got: ' + r.status
|
|
244
|
+
|
|
245
|
+
await new Promise(done => setTimeout(done, 100))
|
|
246
|
+
|
|
247
|
+
var r = await braid_fetch(`/${key_b}`)
|
|
248
|
+
return 'got: ' + (await r.text())
|
|
249
|
+
},
|
|
250
|
+
'got: hi'
|
|
251
|
+
)
|
|
252
|
+
|
|
253
|
+
runTest(
|
|
254
|
+
"test braid_text.sync, key to url",
|
|
255
|
+
async () => {
|
|
256
|
+
var key_a = 'test-a-' + Math.random().toString(36).slice(2)
|
|
257
|
+
var key_b = 'test-b-' + Math.random().toString(36).slice(2)
|
|
258
|
+
|
|
259
|
+
var r = await braid_fetch(`/${key_a}`, {
|
|
260
|
+
method: 'PUT',
|
|
261
|
+
body: 'hi'
|
|
262
|
+
})
|
|
263
|
+
if (!r.ok) return 'got: ' + r.status
|
|
264
|
+
|
|
265
|
+
var r = await braid_fetch(`/eval`, {
|
|
266
|
+
method: 'PUT',
|
|
267
|
+
body: `void (async () => {
|
|
268
|
+
braid_text.sync('/${key_a}', new URL('http://localhost:8889/${key_b}'))
|
|
269
|
+
res.end('')
|
|
270
|
+
})()`
|
|
271
|
+
})
|
|
272
|
+
if (!r.ok) return 'got: ' + r.status
|
|
273
|
+
|
|
274
|
+
await new Promise(done => setTimeout(done, 100))
|
|
275
|
+
|
|
276
|
+
var r = await braid_fetch(`/${key_b}`)
|
|
277
|
+
return 'got: ' + (await r.text())
|
|
278
|
+
},
|
|
279
|
+
'got: hi'
|
|
280
|
+
)
|
|
281
|
+
|
|
282
|
+
runTest(
|
|
283
|
+
"test braid_text.sync, key to url, when HEAD fails",
|
|
284
|
+
async () => {
|
|
285
|
+
var key_a = 'test-a-' + Math.random().toString(36).slice(2)
|
|
286
|
+
|
|
287
|
+
var r = await braid_fetch(`/${key_a}`, {
|
|
288
|
+
method: 'PUT',
|
|
289
|
+
body: 'hi'
|
|
290
|
+
})
|
|
291
|
+
if (!r.ok) return 'got: ' + r.status
|
|
292
|
+
|
|
293
|
+
var r = await braid_fetch(`/eval`, {
|
|
294
|
+
method: 'PUT',
|
|
295
|
+
body: `void (async () => {
|
|
296
|
+
var count = 0
|
|
297
|
+
var ops
|
|
298
|
+
braid_text.sync('/${key_a}', new URL('http://localhost:8889/have_error'), ops = {
|
|
299
|
+
on_connect: () => {
|
|
300
|
+
count++
|
|
301
|
+
if (count === 2) {
|
|
302
|
+
res.end('it reconnected!')
|
|
303
|
+
ops.my_unsync()
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
})
|
|
307
|
+
})()`
|
|
308
|
+
})
|
|
309
|
+
if (!r.ok) return 'got: ' + r.status
|
|
310
|
+
|
|
311
|
+
return await r.text()
|
|
312
|
+
},
|
|
313
|
+
'it reconnected!'
|
|
314
|
+
)
|
|
315
|
+
|
|
316
|
+
runTest(
|
|
317
|
+
"test when remote doesn't have a fork-point that we think they have",
|
|
318
|
+
async () => {
|
|
319
|
+
var key_a = 'test-a-' + Math.random().toString(36).slice(2)
|
|
320
|
+
var key_b = 'test-b-' + Math.random().toString(36).slice(2)
|
|
321
|
+
var key_c = 'test-c-' + Math.random().toString(36).slice(2)
|
|
322
|
+
|
|
323
|
+
var r = await braid_fetch(`/${key_a}`, {
|
|
324
|
+
method: 'PUT',
|
|
325
|
+
body: 'hi'
|
|
326
|
+
})
|
|
327
|
+
if (!r.ok) return 'got: ' + r.status
|
|
328
|
+
|
|
329
|
+
var r = await braid_fetch(`/eval`, {
|
|
330
|
+
method: 'PUT',
|
|
331
|
+
body: `void (async () => {
|
|
332
|
+
braid_text.sync('/${key_a}', new URL('http://localhost:8889/${key_b}'))
|
|
333
|
+
await new Promise(done => setTimeout(done, 100))
|
|
334
|
+
braid_text.sync('/${key_a}', new URL('http://localhost:8889/${key_c}'))
|
|
335
|
+
await new Promise(done => setTimeout(done, 100))
|
|
336
|
+
res.end('')
|
|
337
|
+
})()`
|
|
338
|
+
})
|
|
339
|
+
if (!r.ok) return 'got: ' + r.status
|
|
340
|
+
|
|
341
|
+
return await (await braid_fetch(`/${key_c}`)).text()
|
|
342
|
+
},
|
|
343
|
+
'hi'
|
|
344
|
+
)
|
|
345
|
+
|
|
346
|
+
runTest(
|
|
347
|
+
"test when we don't have a fork-point with remote, but they do have a shared version",
|
|
348
|
+
async () => {
|
|
349
|
+
var key_a = 'test-a-' + Math.random().toString(36).slice(2)
|
|
350
|
+
var key_b = 'test-b-' + Math.random().toString(36).slice(2)
|
|
351
|
+
|
|
352
|
+
var r = await braid_fetch(`/${key_a}`, {
|
|
353
|
+
method: 'PUT',
|
|
354
|
+
body: 'hi'
|
|
355
|
+
})
|
|
356
|
+
if (!r.ok) return 'got: ' + r.status
|
|
357
|
+
|
|
358
|
+
var r = await braid_fetch(`/eval`, {
|
|
359
|
+
method: 'PUT',
|
|
360
|
+
body: `void (async () => {
|
|
361
|
+
var ops = {}
|
|
362
|
+
braid_text.sync('/${key_a}', '/${key_b}', ops)
|
|
363
|
+
await new Promise(done => setTimeout(done, 100))
|
|
364
|
+
ops.my_unsync()
|
|
365
|
+
res.end('')
|
|
366
|
+
})()`
|
|
367
|
+
})
|
|
368
|
+
if (!r.ok) return 'got: ' + r.status
|
|
369
|
+
|
|
370
|
+
var r = await braid_fetch(`/${key_a}`, {
|
|
371
|
+
method: 'PUT',
|
|
372
|
+
body: 'yo'
|
|
373
|
+
})
|
|
374
|
+
if (!r.ok) return 'got: ' + r.status
|
|
375
|
+
|
|
376
|
+
var r = await braid_fetch(`/eval`, {
|
|
377
|
+
method: 'PUT',
|
|
378
|
+
body: `void (async () => {
|
|
379
|
+
var ops = {}
|
|
380
|
+
braid_text.sync('/${key_a}', new URL('http://localhost:8889/${key_b}'), ops)
|
|
381
|
+
await new Promise(done => setTimeout(done, 100))
|
|
382
|
+
ops.my_unsync()
|
|
383
|
+
res.end('')
|
|
384
|
+
})()`
|
|
385
|
+
})
|
|
386
|
+
if (!r.ok) return 'got: ' + r.status
|
|
387
|
+
|
|
388
|
+
return await (await braid_fetch(`/${key_b}`)).text()
|
|
389
|
+
},
|
|
390
|
+
'yo'
|
|
391
|
+
)
|
|
392
|
+
|
|
393
|
+
runTest(
|
|
394
|
+
"test braid_text.sync, with two keys",
|
|
395
|
+
async () => {
|
|
396
|
+
var key_a = 'test-a-' + Math.random().toString(36).slice(2)
|
|
397
|
+
var key_b = 'test-b-' + Math.random().toString(36).slice(2)
|
|
398
|
+
|
|
399
|
+
var r = await braid_fetch(`/${key_a}`, {
|
|
400
|
+
method: 'PUT',
|
|
401
|
+
body: 'hi'
|
|
402
|
+
})
|
|
403
|
+
if (!r.ok) return 'got: ' + r.status
|
|
404
|
+
|
|
405
|
+
var r = await braid_fetch(`/eval`, {
|
|
406
|
+
method: 'PUT',
|
|
407
|
+
body: `void (async () => {
|
|
408
|
+
braid_text.sync('/${key_a}', '/${key_b}')
|
|
409
|
+
res.end('')
|
|
410
|
+
})()`
|
|
411
|
+
})
|
|
412
|
+
if (!r.ok) return 'got: ' + r.status
|
|
413
|
+
|
|
414
|
+
await new Promise(done => setTimeout(done, 100))
|
|
415
|
+
|
|
416
|
+
var r = await braid_fetch(`/${key_b}`)
|
|
417
|
+
return 'got: ' + (await r.text())
|
|
418
|
+
},
|
|
419
|
+
'got: hi'
|
|
420
|
+
)
|
|
421
|
+
|
|
422
|
+
runTest(
|
|
423
|
+
"test putting version with multiple event ids, should have error",
|
|
424
|
+
async () => {
|
|
425
|
+
var key_a = 'test-a-' + Math.random().toString(36).slice(2)
|
|
426
|
+
|
|
427
|
+
var r = await braid_fetch(`/${key_a}`, {
|
|
428
|
+
method: 'PUT',
|
|
429
|
+
version: ['abc-1', 'xyz-2'],
|
|
430
|
+
body: 'hi'
|
|
431
|
+
})
|
|
432
|
+
return '' + (await r.text()).includes('cannot put a version with multiple ids')
|
|
433
|
+
},
|
|
434
|
+
'true'
|
|
435
|
+
)
|
|
436
|
+
|
|
437
|
+
runTest(
|
|
438
|
+
"test braid_text.get(url), with no options",
|
|
439
|
+
async () => {
|
|
440
|
+
var key = 'test-' + Math.random().toString(36).slice(2)
|
|
441
|
+
let r = await braid_fetch(`/${key}`, {
|
|
442
|
+
method: 'PUT',
|
|
443
|
+
body: 'hi'
|
|
444
|
+
})
|
|
445
|
+
if (!r.ok) return 'got: ' + r.status
|
|
446
|
+
|
|
447
|
+
var r1 = await braid_fetch(`/eval`, {
|
|
448
|
+
method: 'PUT',
|
|
449
|
+
body: `void (async () => {
|
|
450
|
+
res.end(await braid_text.get(new URL('http://localhost:8889/${key}')))
|
|
451
|
+
})()`
|
|
452
|
+
})
|
|
453
|
+
|
|
454
|
+
return 'got: ' + (await r1.text())
|
|
455
|
+
},
|
|
456
|
+
'got: hi'
|
|
457
|
+
)
|
|
458
|
+
|
|
459
|
+
runTest(
|
|
460
|
+
"test braid_text.get(url), with headers",
|
|
461
|
+
async () => {
|
|
462
|
+
var key = 'test-' + Math.random().toString(36).slice(2)
|
|
463
|
+
let r = await braid_fetch(`/${key}`, {
|
|
464
|
+
method: 'PUT',
|
|
465
|
+
version: ['xyz-1'],
|
|
466
|
+
body: 'hi'
|
|
467
|
+
})
|
|
468
|
+
if (!r.ok) return 'got: ' + r.status
|
|
469
|
+
|
|
470
|
+
var r1 = await braid_fetch(`/eval`, {
|
|
471
|
+
method: 'PUT',
|
|
472
|
+
body: `void (async () => {
|
|
473
|
+
res.end(await braid_text.get(new URL('http://localhost:8889/${key}'), {
|
|
474
|
+
headers: {
|
|
475
|
+
version: '"xyz-0"'
|
|
476
|
+
}
|
|
477
|
+
}))
|
|
478
|
+
})()`
|
|
479
|
+
})
|
|
480
|
+
|
|
481
|
+
return 'got: ' + (await r1.text())
|
|
482
|
+
},
|
|
483
|
+
'got: h'
|
|
484
|
+
)
|
|
485
|
+
|
|
486
|
+
runTest(
|
|
487
|
+
"test braid_text.get(url), with parents",
|
|
488
|
+
async () => {
|
|
489
|
+
var key = 'test-' + Math.random().toString(36).slice(2)
|
|
490
|
+
let r = await braid_fetch(`/${key}`, {
|
|
491
|
+
method: 'PUT',
|
|
492
|
+
version: ['xyz-1'],
|
|
493
|
+
body: 'hi'
|
|
494
|
+
})
|
|
495
|
+
if (!r.ok) return 'got: ' + r.status
|
|
496
|
+
|
|
497
|
+
var r1 = await braid_fetch(`/eval`, {
|
|
498
|
+
method: 'PUT',
|
|
499
|
+
body: `void (async () => {
|
|
500
|
+
res.end(await braid_text.get(new URL('http://localhost:8889/${key}'), {
|
|
501
|
+
parents: ['xyz-0']
|
|
502
|
+
}))
|
|
503
|
+
})()`
|
|
504
|
+
})
|
|
505
|
+
|
|
506
|
+
return 'got: ' + (await r1.text())
|
|
507
|
+
},
|
|
508
|
+
'got: h'
|
|
509
|
+
)
|
|
510
|
+
|
|
511
|
+
runTest(
|
|
512
|
+
"test braid_text.get(url), with version and peer",
|
|
513
|
+
async () => {
|
|
514
|
+
var key = 'test-' + Math.random().toString(36).slice(2)
|
|
515
|
+
let r = await braid_fetch(`/${key}`, {
|
|
516
|
+
method: 'PUT',
|
|
517
|
+
version: ['xyz-1'],
|
|
518
|
+
body: 'hi'
|
|
519
|
+
})
|
|
520
|
+
if (!r.ok) return 'got: ' + r.status
|
|
521
|
+
|
|
522
|
+
var r1 = await braid_fetch(`/eval`, {
|
|
523
|
+
method: 'PUT',
|
|
524
|
+
body: `void (async () => {
|
|
525
|
+
res.end(await braid_text.get(new URL('http://localhost:8889/${key}'), {
|
|
526
|
+
version: ['xyz-0'],
|
|
527
|
+
peer: 'xyz'
|
|
528
|
+
}))
|
|
529
|
+
})()`
|
|
530
|
+
})
|
|
531
|
+
|
|
532
|
+
return 'got: ' + (await r1.text())
|
|
533
|
+
},
|
|
534
|
+
'got: h'
|
|
535
|
+
)
|
|
198
536
|
|
|
199
537
|
runTest(
|
|
200
538
|
"test braid_text.get(url) with subscription",
|
|
@@ -220,7 +558,7 @@ runTest(
|
|
|
220
558
|
}
|
|
221
559
|
braid_text.get(url, o)
|
|
222
560
|
})
|
|
223
|
-
res.end(update.
|
|
561
|
+
res.end(update.body)
|
|
224
562
|
})()`
|
|
225
563
|
})
|
|
226
564
|
|
|
@@ -318,44 +656,6 @@ runTest(
|
|
|
318
656
|
'got: yo -- version: "xyz-1"'
|
|
319
657
|
)
|
|
320
658
|
|
|
321
|
-
runTest(
|
|
322
|
-
"test updating meta data",
|
|
323
|
-
async () => {
|
|
324
|
-
var key = 'test-' + Math.random().toString(36).slice(2)
|
|
325
|
-
|
|
326
|
-
var r1 = await braid_fetch(`/eval`, {
|
|
327
|
-
method: 'PUT',
|
|
328
|
-
body: `void (async () => {
|
|
329
|
-
var resource = await braid_text.get_resource('/${key}')
|
|
330
|
-
resource.update_meta({ test_meta_info: 42 })
|
|
331
|
-
res.end(JSON.stringify(resource.meta))
|
|
332
|
-
})()`
|
|
333
|
-
})
|
|
334
|
-
|
|
335
|
-
return (await r1.text())
|
|
336
|
-
},
|
|
337
|
-
'{"test_meta_info":42}'
|
|
338
|
-
)
|
|
339
|
-
|
|
340
|
-
runTest(
|
|
341
|
-
"test updating meta data when do db_folder set",
|
|
342
|
-
async () => {
|
|
343
|
-
var key = 'test-' + Math.random().toString(36).slice(2)
|
|
344
|
-
|
|
345
|
-
var r1 = await braid_fetch(`/eval`, {
|
|
346
|
-
method: 'PUT',
|
|
347
|
-
body: `void (async () => {
|
|
348
|
-
var resource = await braid_text2.get_resource('/${key}')
|
|
349
|
-
resource.update_meta({ test_meta_info: 42 })
|
|
350
|
-
res.end(JSON.stringify(resource.meta))
|
|
351
|
-
})()`
|
|
352
|
-
})
|
|
353
|
-
|
|
354
|
-
return (await r1.text())
|
|
355
|
-
},
|
|
356
|
-
'{"test_meta_info":42}'
|
|
357
|
-
)
|
|
358
|
-
|
|
359
659
|
runTest(
|
|
360
660
|
"test loading a meta file from disk",
|
|
361
661
|
async () => {
|
|
@@ -365,7 +665,8 @@ runTest(
|
|
|
365
665
|
method: 'PUT',
|
|
366
666
|
body: `void (async () => {
|
|
367
667
|
var resource = await braid_text.get_resource('/${key}')
|
|
368
|
-
resource.
|
|
668
|
+
resource.meta = { test_meta_info: 42 }
|
|
669
|
+
resource.change_meta()
|
|
369
670
|
|
|
370
671
|
await new Promise(done => setTimeout(done, 200))
|
|
371
672
|
|
|
@@ -612,7 +913,9 @@ runTest(
|
|
|
612
913
|
})
|
|
613
914
|
if (!r.ok) throw 'got: ' + r.statusCode
|
|
614
915
|
|
|
916
|
+
var a = new AbortController()
|
|
615
917
|
let r2 = await braid_fetch(`/${key}`, {
|
|
918
|
+
signal: a.signal,
|
|
616
919
|
version: ['hi-0'],
|
|
617
920
|
subscribe: true
|
|
618
921
|
})
|
|
@@ -620,7 +923,10 @@ runTest(
|
|
|
620
923
|
var p = new Promise(async (done, fail) => {
|
|
621
924
|
r2.subscribe(update => {
|
|
622
925
|
parts.push(update.extra_headers['repr-digest'])
|
|
623
|
-
if (parts.length > 1)
|
|
926
|
+
if (parts.length > 1) {
|
|
927
|
+
done()
|
|
928
|
+
a.abort()
|
|
929
|
+
}
|
|
624
930
|
}, fail)
|
|
625
931
|
})
|
|
626
932
|
|
|
@@ -652,7 +958,9 @@ runTest(
|
|
|
652
958
|
})
|
|
653
959
|
if (!r.ok) throw 'got: ' + r.statusCode
|
|
654
960
|
|
|
961
|
+
var a = new AbortController()
|
|
655
962
|
let r2 = await braid_fetch(`/${key}`, {
|
|
963
|
+
signal: a.signal,
|
|
656
964
|
version: ['hi-0'],
|
|
657
965
|
headers: { 'merge-type': 'dt' },
|
|
658
966
|
subscribe: true
|
|
@@ -661,7 +969,10 @@ runTest(
|
|
|
661
969
|
var p = new Promise(async (done, fail) => {
|
|
662
970
|
r2.subscribe(update => {
|
|
663
971
|
parts.push(update.extra_headers['repr-digest'])
|
|
664
|
-
if (parts.length > 1)
|
|
972
|
+
if (parts.length > 1) {
|
|
973
|
+
done()
|
|
974
|
+
a.abort()
|
|
975
|
+
}
|
|
665
976
|
}, fail)
|
|
666
977
|
})
|
|
667
978
|
|
|
@@ -905,12 +1216,16 @@ runTest(
|
|
|
905
1216
|
var p_done
|
|
906
1217
|
var p = new Promise(done => p_done = done)
|
|
907
1218
|
|
|
1219
|
+
var a = new AbortController()
|
|
908
1220
|
var r = await braid_fetch(`/${key}`, {
|
|
1221
|
+
signal: a.signal,
|
|
909
1222
|
subscribe: true
|
|
910
1223
|
})
|
|
911
1224
|
r.subscribe(update => {
|
|
912
|
-
if (update.version[0] === 'hi-0')
|
|
1225
|
+
if (update.version[0] === 'hi-0') {
|
|
913
1226
|
p_done(update.patches[0].content_text)
|
|
1227
|
+
a.abort()
|
|
1228
|
+
}
|
|
914
1229
|
})
|
|
915
1230
|
|
|
916
1231
|
var r = await braid_fetch(`/${key}`, {
|
|
@@ -947,10 +1262,10 @@ runTest(
|
|
|
947
1262
|
body: 'x'
|
|
948
1263
|
})
|
|
949
1264
|
|
|
950
|
-
if (!r.ok) throw 'got: ' + r.
|
|
1265
|
+
if (!r.ok) throw 'got: ' + r.status
|
|
951
1266
|
|
|
952
1267
|
r = await f
|
|
953
|
-
if (!r.ok) throw 'got: ' + r.
|
|
1268
|
+
if (!r.ok) throw 'got: ' + r.status
|
|
954
1269
|
|
|
955
1270
|
var r2 = await braid_fetch(`/${key}`)
|
|
956
1271
|
return await r2.text()
|
|
@@ -1463,13 +1778,16 @@ runTest(
|
|
|
1463
1778
|
})
|
|
1464
1779
|
if (!r.ok) throw 'got: ' + r.statusCode
|
|
1465
1780
|
|
|
1781
|
+
var a = new AbortController()
|
|
1466
1782
|
let r2 = await braid_fetch(`/${key}`, {
|
|
1783
|
+
signal: a.signal,
|
|
1467
1784
|
version: ['hi-0'],
|
|
1468
1785
|
subscribe: true
|
|
1469
1786
|
})
|
|
1470
1787
|
return await new Promise(async (done, fail) => {
|
|
1471
1788
|
r2.subscribe(update => {
|
|
1472
1789
|
done(JSON.stringify(update.parents))
|
|
1790
|
+
a.abort()
|
|
1473
1791
|
}, fail)
|
|
1474
1792
|
})
|
|
1475
1793
|
},
|
|
@@ -1489,7 +1807,9 @@ runTest(
|
|
|
1489
1807
|
})
|
|
1490
1808
|
if (!r.ok) throw 'got: ' + r.statusCode
|
|
1491
1809
|
|
|
1810
|
+
var a = new AbortController()
|
|
1492
1811
|
let r2 = await braid_fetch(`/${key}`, {
|
|
1812
|
+
signal: a.signal,
|
|
1493
1813
|
version: ['hi-0'],
|
|
1494
1814
|
subscribe: true,
|
|
1495
1815
|
headers: {
|
|
@@ -1499,6 +1819,7 @@ runTest(
|
|
|
1499
1819
|
return r2.headers.get('merge-type') + ':' + await new Promise(async (done, fail) => {
|
|
1500
1820
|
r2.subscribe(update => {
|
|
1501
1821
|
done(JSON.stringify(update.parents))
|
|
1822
|
+
a.abort()
|
|
1502
1823
|
}, fail)
|
|
1503
1824
|
})
|
|
1504
1825
|
},
|
|
@@ -1518,7 +1839,9 @@ runTest(
|
|
|
1518
1839
|
})
|
|
1519
1840
|
if (!r.ok) throw 'got: ' + r.statusCode
|
|
1520
1841
|
|
|
1842
|
+
var a = new AbortController()
|
|
1521
1843
|
let r2 = await braid_fetch(`/${key}`, {
|
|
1844
|
+
signal: a.signal,
|
|
1522
1845
|
version: ['hi-1'],
|
|
1523
1846
|
subscribe: true,
|
|
1524
1847
|
headers: {
|
|
@@ -1526,8 +1849,14 @@ runTest(
|
|
|
1526
1849
|
}
|
|
1527
1850
|
})
|
|
1528
1851
|
return await new Promise(async (done, fail) => {
|
|
1529
|
-
r2.subscribe(update =>
|
|
1530
|
-
|
|
1852
|
+
r2.subscribe(update => {
|
|
1853
|
+
done('got something')
|
|
1854
|
+
a.abort()
|
|
1855
|
+
}, fail)
|
|
1856
|
+
setTimeout(() => {
|
|
1857
|
+
done('got nothing')
|
|
1858
|
+
a.abort()
|
|
1859
|
+
}, 1500)
|
|
1531
1860
|
})
|
|
1532
1861
|
},
|
|
1533
1862
|
'got nothing'
|
|
@@ -1546,7 +1875,9 @@ runTest(
|
|
|
1546
1875
|
})
|
|
1547
1876
|
if (!r.ok) throw 'got: ' + r.statusCode
|
|
1548
1877
|
|
|
1878
|
+
var a = new AbortController()
|
|
1549
1879
|
let r2 = await braid_fetch(`/${key}`, {
|
|
1880
|
+
signal: a.signal,
|
|
1550
1881
|
subscribe: true,
|
|
1551
1882
|
headers: {
|
|
1552
1883
|
'Merge-Type': 'dt'
|
|
@@ -1554,7 +1885,10 @@ runTest(
|
|
|
1554
1885
|
})
|
|
1555
1886
|
return r2.headers.get('merge-type') + ':' + await new Promise(async (done, fail) => {
|
|
1556
1887
|
r2.subscribe(update => {
|
|
1557
|
-
if (update.version[0] === 'hi-1')
|
|
1888
|
+
if (update.version[0] === 'hi-1') {
|
|
1889
|
+
done('got it!')
|
|
1890
|
+
a.abort()
|
|
1891
|
+
}
|
|
1558
1892
|
}, fail)
|
|
1559
1893
|
})
|
|
1560
1894
|
},
|
|
@@ -1609,11 +1943,16 @@ runTest(
|
|
|
1609
1943
|
body: JSON.stringify({a: 5, b: 6}, null, 4)
|
|
1610
1944
|
})
|
|
1611
1945
|
|
|
1946
|
+
var a = new AbortController()
|
|
1612
1947
|
let r = await braid_fetch(`/${key}`, {
|
|
1948
|
+
signal: a.signal,
|
|
1613
1949
|
subscribe: true
|
|
1614
1950
|
})
|
|
1615
1951
|
|
|
1616
|
-
r.subscribe(update =>
|
|
1952
|
+
r.subscribe(update => {
|
|
1953
|
+
done(update.body_text)
|
|
1954
|
+
a.abort()
|
|
1955
|
+
}, fail)
|
|
1617
1956
|
})
|
|
1618
1957
|
},
|
|
1619
1958
|
JSON.stringify({a: 5, b: 6}, null, 4)
|
|
@@ -1840,10 +2179,14 @@ runTest(
|
|
|
1840
2179
|
})
|
|
1841
2180
|
if (!r.ok) throw 'got: ' + r.statusCode
|
|
1842
2181
|
|
|
2182
|
+
var a = new AbortController()
|
|
1843
2183
|
var r = await braid_fetch(`/${key}`, {
|
|
2184
|
+
signal: a.signal,
|
|
1844
2185
|
subscribe: true
|
|
1845
2186
|
})
|
|
1846
|
-
|
|
2187
|
+
var result = r.headers.get('current-version')
|
|
2188
|
+
a.abort()
|
|
2189
|
+
return result
|
|
1847
2190
|
},
|
|
1848
2191
|
'"hi-11"'
|
|
1849
2192
|
)
|