@editframe/api 0.11.0-beta.9 → 0.12.0-beta.10

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 (58) hide show
  1. package/dist/ProgressIterator.d.ts +25 -0
  2. package/dist/ProgressIterator.test.d.ts +1 -0
  3. package/dist/StreamEventSource.d.ts +50 -0
  4. package/dist/StreamEventSource.test.d.ts +1 -0
  5. package/dist/{CHUNK_SIZE_BYTES.js → api/src/CHUNK_SIZE_BYTES.js} +1 -1
  6. package/dist/api/src/ProgressIterator.js +99 -0
  7. package/dist/api/src/StreamEventSource.js +130 -0
  8. package/dist/api/src/client.js +49 -0
  9. package/dist/api/src/index.js +49 -0
  10. package/dist/{resources → api/src/resources}/caption-file.js +22 -2
  11. package/dist/{resources → api/src/resources}/image-file.js +24 -4
  12. package/dist/api/src/resources/isobmff-file.js +102 -0
  13. package/dist/{resources → api/src/resources}/isobmff-track.js +44 -1
  14. package/dist/api/src/resources/process-isobmff.js +22 -0
  15. package/dist/{resources → api/src/resources}/renders.js +21 -2
  16. package/dist/api/src/resources/transcriptions.js +45 -0
  17. package/dist/api/src/resources/unprocessed-file.js +114 -0
  18. package/dist/api/src/streamChunker.js +28 -0
  19. package/dist/{uploadChunks.js → api/src/uploadChunks.js} +1 -4
  20. package/dist/cli/src/utils/createReadableStreamFromReadable.js +82 -0
  21. package/dist/client.d.ts +6 -3
  22. package/dist/index.d.ts +7 -5
  23. package/dist/readableFromBuffers.d.ts +1 -2
  24. package/dist/resources/caption-file.d.ts +7 -3
  25. package/dist/resources/image-file.d.ts +15 -5
  26. package/dist/resources/isobmff-file.d.ts +29 -3
  27. package/dist/resources/isobmff-track.d.ts +13 -15
  28. package/dist/resources/process-isobmff.d.ts +12 -0
  29. package/dist/resources/process-isobmff.test.d.ts +1 -0
  30. package/dist/resources/renders.d.ts +10 -5
  31. package/dist/resources/transcriptions.d.ts +24 -0
  32. package/dist/resources/transcriptions.test.d.ts +1 -0
  33. package/dist/resources/unprocessed-file.d.ts +15 -53
  34. package/dist/streamChunker.d.ts +1 -2
  35. package/dist/uploadChunks.d.ts +1 -2
  36. package/package.json +3 -2
  37. package/src/resources/caption-file.test.ts +57 -6
  38. package/src/resources/caption-file.ts +34 -5
  39. package/src/resources/image-file.test.ts +59 -11
  40. package/src/resources/image-file.ts +75 -9
  41. package/src/resources/isobmff-file.test.ts +57 -6
  42. package/src/resources/isobmff-file.ts +96 -5
  43. package/src/resources/isobmff-track.test.ts +3 -3
  44. package/src/resources/isobmff-track.ts +50 -5
  45. package/src/resources/process-isobmff.test.ts +62 -0
  46. package/src/resources/process-isobmff.ts +33 -0
  47. package/src/resources/renders.test.ts +51 -6
  48. package/src/resources/renders.ts +34 -5
  49. package/src/resources/transcriptions.test.ts +49 -0
  50. package/src/resources/transcriptions.ts +64 -0
  51. package/src/resources/unprocessed-file.test.ts +24 -437
  52. package/src/resources/unprocessed-file.ts +90 -160
  53. package/dist/client.js +0 -35
  54. package/dist/index.js +0 -36
  55. package/dist/resources/isobmff-file.js +0 -47
  56. package/dist/resources/unprocessed-file.js +0 -180
  57. package/dist/streamChunker.js +0 -17
  58. /package/dist/{resources → api/src/resources}/url-token.js +0 -0
@@ -1,27 +1,19 @@
1
- import { join } from "node:path";
2
-
3
1
  import { http, HttpResponse } from "msw";
4
2
  import { setupServer } from "msw/node";
5
3
  import { afterAll, afterEach, beforeAll, describe, expect, test } from "vitest";
6
4
  import { ZodError } from "zod";
7
5
 
8
6
  import { Client } from "../client.ts";
9
- import { readableFromBuffers } from "../readableFromBuffers.ts";
7
+ import { webReadableFromBuffers } from "../readableFromBuffers.ts";
10
8
  import {
11
9
  createUnprocessedFile,
12
- processAVFile,
13
- processAVFileBuffer,
14
- processImageFile,
15
- processImageFileBuffer,
16
- updateUnprocessedFile,
17
- uploadUnprocessedFile,
10
+ lookupUnprocessedFileByMd5,
11
+ uploadUnprocessedReadableStream,
18
12
  } from "./unprocessed-file.ts";
19
13
 
20
14
  const server = setupServer();
21
15
  const client = new Client("ef_TEST_TOKEN", "http://localhost");
22
16
 
23
- const TEST_AV_FILE = join(__dirname, "test-av-file.txt");
24
-
25
17
  const UploadMustContinue = (id = "test-file") =>
26
18
  http.get(`http://localhost/api/v1/unprocessed_files/${id}/upload`, () =>
27
19
  HttpResponse.json({}, { status: 202 }),
@@ -38,7 +30,6 @@ describe("Unprocessed File", () => {
38
30
  createUnprocessedFile(client, {
39
31
  md5: "test-file",
40
32
  filename: "test-file",
41
- processes: [],
42
33
  byte_size: 1024 * 1024 * 1025,
43
34
  }),
44
35
  ).rejects.toThrowError(
@@ -67,7 +58,6 @@ describe("Unprocessed File", () => {
67
58
  createUnprocessedFile(client, {
68
59
  md5: "test-file",
69
60
  filename: "test-file",
70
- processes: [],
71
61
  byte_size: 1024 * 1024,
72
62
  }),
73
63
  ).rejects.toThrowError(
@@ -88,7 +78,6 @@ describe("Unprocessed File", () => {
88
78
  const result = await createUnprocessedFile(client, {
89
79
  md5: "test-file",
90
80
  filename: "test-file",
91
- processes: [],
92
81
  byte_size: 1024 * 1024,
93
82
  });
94
83
 
@@ -96,41 +85,6 @@ describe("Unprocessed File", () => {
96
85
  });
97
86
  });
98
87
 
99
- describe("updateUnprocessedFile", () => {
100
- test("Throws when server responds with an error", async () => {
101
- server.use(
102
- http.post("http://localhost/api/v1/unprocessed_files/test-file", () =>
103
- HttpResponse.text("Internal Server Error", { status: 500 }),
104
- ),
105
- );
106
-
107
- await expect(
108
- updateUnprocessedFile(client, "test-file", {
109
- processes: [],
110
- }),
111
- ).rejects.toThrowError(
112
- "Failed to update unprocessed file 500 Internal Server Error",
113
- );
114
- });
115
-
116
- test("Returns json data from the http response", async () => {
117
- server.use(
118
- http.post("http://localhost/api/v1/unprocessed_files/test-file", () =>
119
- HttpResponse.json(
120
- { testResponse: "test" },
121
- { status: 200, statusText: "OK" },
122
- ),
123
- ),
124
- );
125
-
126
- const result = await updateUnprocessedFile(client, "test-file", {
127
- processes: [],
128
- });
129
-
130
- expect(result).toEqual({ testResponse: "test" });
131
- });
132
- });
133
-
134
88
  describe("uploadUnprocessedFile", () => {
135
89
  test("Throws when server responds with an error", async () => {
136
90
  server.use(
@@ -142,11 +96,10 @@ describe("Unprocessed File", () => {
142
96
  );
143
97
 
144
98
  await expect(
145
- uploadUnprocessedFile(
99
+ uploadUnprocessedReadableStream(
146
100
  client,
147
- "test-file",
148
- readableFromBuffers(Buffer.from("test")),
149
- 4,
101
+ { id: "test-file", byte_size: 4 },
102
+ webReadableFromBuffers(Buffer.from("test")),
150
103
  ).whenUploaded(),
151
104
  ).rejects.toThrowError(
152
105
  "Failed to upload chunk 0 for /api/v1/unprocessed_files/test-file/upload 500 Internal Server Error",
@@ -163,11 +116,10 @@ describe("Unprocessed File", () => {
163
116
  );
164
117
 
165
118
  await expect(
166
- uploadUnprocessedFile(
119
+ uploadUnprocessedReadableStream(
167
120
  client,
168
- "test-file",
169
- readableFromBuffers(Buffer.from("test")),
170
- 4,
121
+ { id: "test-file", byte_size: 4 },
122
+ webReadableFromBuffers(Buffer.from("test")),
171
123
  ).whenUploaded(),
172
124
  ).resolves.toEqual([
173
125
  { type: "progress", progress: 0 },
@@ -176,408 +128,43 @@ describe("Unprocessed File", () => {
176
128
  });
177
129
  });
178
130
 
179
- describe("processAVFileBuffer", () => {
180
- test("Throws when server responds with an error when creating file", async () => {
181
- server.use(
182
- UploadMustContinue(),
183
- http.post("http://localhost/api/v1/unprocessed_files", () =>
184
- HttpResponse.text("Internal Server Error", { status: 500 }),
185
- ),
186
- );
187
-
188
- await expect(
189
- processAVFileBuffer(client, Buffer.from("test"), "test-file").file(),
190
- ).rejects.toThrowError(
191
- "Failed to create unprocessed file 500 Internal Server Error",
192
- );
193
- });
194
-
195
- test("Throws when server responds with an error when uploading file", async () => {
196
- server.use(
197
- http.post("http://localhost/api/v1/unprocessed_files", () =>
198
- HttpResponse.json(
199
- {
200
- complete: false,
201
- id: "098f6bcd-4621-d373-cade-4e832627b4f6",
202
- processes: [],
203
- },
204
- { status: 200 },
205
- ),
206
- ),
207
- UploadMustContinue("098f6bcd-4621-d373-cade-4e832627b4f6"),
208
- http.post(
209
- "http://localhost/api/v1/unprocessed_files/098f6bcd-4621-d373-cade-4e832627b4f6/upload",
210
- () => HttpResponse.text("Internal Server Error", { status: 500 }),
211
- ),
212
- );
213
-
214
- await expect(
215
- processAVFileBuffer(client, Buffer.from("test"), "test-file").file(),
216
- ).rejects.toThrowError(
217
- "Failed to upload chunk 0 for /api/v1/unprocessed_files/098f6bcd-4621-d373-cade-4e832627b4f6/upload 500 Internal Server Error",
218
- );
219
- });
220
-
221
- test("Throws when server responds with an error when updating file", async () => {
222
- server.use(
223
- http.post("http://localhost/api/v1/unprocessed_files", () =>
224
- HttpResponse.json(
225
- {
226
- complete: false,
227
- id: "098f6bcd-4621-d373-cade-4e832627b4f6",
228
- processes: [],
229
- },
230
- { status: 200 },
231
- ),
232
- ),
233
- UploadMustContinue("098f6bcd-4621-d373-cade-4e832627b4f6"),
234
- http.post(
235
- "http://localhost/api/v1/unprocessed_files/098f6bcd-4621-d373-cade-4e832627b4f6/upload",
236
- () => HttpResponse.json({ test }, { status: 201 }),
237
- ),
238
- http.post(
239
- "http://localhost/api/v1/unprocessed_files/098f6bcd-4621-d373-cade-4e832627b4f6",
240
- () => HttpResponse.text("Internal Server Error", { status: 500 }),
241
- ),
242
- );
243
-
244
- await expect(
245
- processAVFileBuffer(client, Buffer.from("test"), "test-file").file(),
246
- ).rejects.toThrowError(
247
- "Failed to update unprocessed file 500 Internal Server Error",
248
- );
249
- });
250
-
251
- test("Returns json data when upload is successful", async () => {
252
- server.use(
253
- http.post("http://localhost/api/v1/unprocessed_files", () =>
254
- HttpResponse.json(
255
- {
256
- complete: false,
257
- id: "098f6bcd-4621-d373-cade-4e832627b4f6",
258
- processes: [],
259
- },
260
- { status: 200 },
261
- ),
262
- ),
263
- UploadMustContinue("098f6bcd-4621-d373-cade-4e832627b4f6"),
264
- http.post(
265
- "http://localhost/api/v1/unprocessed_files/098f6bcd-4621-d373-cade-4e832627b4f6/upload",
266
- () => HttpResponse.json({}, { status: 201 }),
267
- ),
268
- http.post(
269
- "http://localhost/api/v1/unprocessed_files/098f6bcd-4621-d373-cade-4e832627b4f6",
270
- () => HttpResponse.json({ test: "response" }, { status: 200 }),
271
- ),
272
- );
273
-
274
- await expect(
275
- processAVFileBuffer(client, Buffer.from("test"), "test-file").file(),
276
- ).resolves.toEqual({ test: "response" });
277
- });
278
- });
279
-
280
- describe("processAVFile", () => {
281
- test("Throws when server responds with an error when creating file", async () => {
282
- server.use(
283
- http.post("http://localhost/api/v1/unprocessed_files", () =>
284
- HttpResponse.text("Internal Server Error", { status: 500 }),
285
- ),
286
- );
287
-
288
- await expect(
289
- processAVFile(client, TEST_AV_FILE).file(),
290
- ).rejects.toThrowError(
291
- "Failed to create unprocessed file 500 Internal Server Error",
292
- );
293
- });
294
-
295
- test("Throws when server responds with an error when uploading file", async () => {
296
- server.use(
297
- http.post("http://localhost/api/v1/unprocessed_files", () =>
298
- HttpResponse.json(
299
- {
300
- complete: false,
301
- id: "098f6bcd-4621-d373-cade-4e832627b4f6",
302
- processes: [],
303
- },
304
- { status: 200 },
305
- ),
306
- ),
307
- UploadMustContinue("098f6bcd-4621-d373-cade-4e832627b4f6"),
308
- http.post(
309
- "http://localhost/api/v1/unprocessed_files/098f6bcd-4621-d373-cade-4e832627b4f6/upload",
310
- () => HttpResponse.text("Internal Server Error", { status: 500 }),
311
- ),
312
- );
313
-
314
- await expect(
315
- processAVFile(client, TEST_AV_FILE).file(),
316
- ).rejects.toThrowError(
317
- "Failed to upload chunk 0 for /api/v1/unprocessed_files/098f6bcd-4621-d373-cade-4e832627b4f6/upload 500 Internal Server Error",
318
- );
319
- });
320
-
321
- test("Throws when server responds with an error when updating file", async () => {
322
- server.use(
323
- http.post("http://localhost/api/v1/unprocessed_files", () =>
324
- HttpResponse.json(
325
- {
326
- complete: false,
327
- id: "098f6bcd-4621-d373-cade-4e832627b4f6",
328
- processes: [],
329
- },
330
- { status: 200 },
331
- ),
332
- ),
333
- UploadMustContinue("098f6bcd-4621-d373-cade-4e832627b4f6"),
334
- http.post(
335
- "http://localhost/api/v1/unprocessed_files/098f6bcd-4621-d373-cade-4e832627b4f6/upload",
336
- () => HttpResponse.json({ test }, { status: 201 }),
337
- ),
338
- http.post(
339
- "http://localhost/api/v1/unprocessed_files/098f6bcd-4621-d373-cade-4e832627b4f6",
340
- () => HttpResponse.text("Internal Server Error", { status: 500 }),
341
- ),
342
- );
343
-
344
- await expect(
345
- processAVFile(client, TEST_AV_FILE).file(),
346
- ).rejects.toThrowError(
347
- "Failed to update unprocessed file 500 Internal Server Error",
348
- );
349
- });
350
-
351
- test("Returns json data when upload is successful", async () => {
352
- server.use(
353
- http.post("http://localhost/api/v1/unprocessed_files", () =>
354
- HttpResponse.json(
355
- {
356
- complete: false,
357
- id: "098f6bcd-4621-d373-cade-4e832627b4f6",
358
- processes: [],
359
- },
360
- { status: 200 },
361
- ),
362
- ),
363
- UploadMustContinue("098f6bcd-4621-d373-cade-4e832627b4f6"),
364
- http.post(
365
- "http://localhost/api/v1/unprocessed_files/098f6bcd-4621-d373-cade-4e832627b4f6/upload",
366
- () => HttpResponse.json({}, { status: 201 }),
367
- ),
368
- http.post(
369
- "http://localhost/api/v1/unprocessed_files/098f6bcd-4621-d373-cade-4e832627b4f6",
370
- () => HttpResponse.json({ test: "response" }, { status: 200 }),
371
- ),
372
- );
373
-
374
- await expect(processAVFile(client, TEST_AV_FILE).file()).resolves.toEqual(
375
- {
376
- test: "response",
377
- },
378
- );
379
- });
380
- });
381
-
382
- describe("processImageFileBuffer", () => {
383
- test("Throws when server responds with an error when creating file", async () => {
131
+ describe("lookupUnprocessedFileByMd5", () => {
132
+ test("Returns json data from the http response", async () => {
384
133
  server.use(
385
- http.post("http://localhost/api/v1/unprocessed_files", () =>
386
- HttpResponse.text("Internal Server Error", { status: 500 }),
134
+ http.get("http://localhost/api/v1/unprocessed_files/md5/test-md5", () =>
135
+ HttpResponse.json({ test: "response" }, { status: 200 }),
387
136
  ),
388
137
  );
389
138
 
390
- await expect(
391
- processImageFileBuffer(client, Buffer.from("test"), "test-file").file(),
392
- ).rejects.toThrowError(
393
- "Failed to create unprocessed file 500 Internal Server Error",
394
- );
395
- });
396
-
397
- test("Throws when server responds with an error when uploading file", async () => {
398
- server.use(
399
- http.post("http://localhost/api/v1/unprocessed_files", () =>
400
- HttpResponse.json(
401
- {
402
- complete: false,
403
- id: "098f6bcd-4621-d373-cade-4e832627b4f6",
404
- processes: [],
405
- },
406
- { status: 200 },
407
- ),
408
- ),
409
- UploadMustContinue("098f6bcd-4621-d373-cade-4e832627b4f6"),
410
- http.post(
411
- "http://localhost/api/v1/unprocessed_files/098f6bcd-4621-d373-cade-4e832627b4f6/upload",
412
- () => HttpResponse.text("Internal Server Error", { status: 500 }),
413
- ),
414
- );
139
+ const response = await lookupUnprocessedFileByMd5(client, "test-md5");
415
140
 
416
- await expect(
417
- processImageFileBuffer(client, Buffer.from("test"), "test-file").file(),
418
- ).rejects.toThrowError(
419
- "Failed to upload chunk 0 for /api/v1/unprocessed_files/098f6bcd-4621-d373-cade-4e832627b4f6/upload 500 Internal Server Error",
420
- );
141
+ expect(response).toEqual({ test: "response" });
421
142
  });
422
143
 
423
- test("Throws when server responds with an error when updating file", async () => {
144
+ test("Returns null when file is not found", async () => {
424
145
  server.use(
425
- http.post("http://localhost/api/v1/unprocessed_files", () =>
426
- HttpResponse.json(
427
- {
428
- complete: false,
429
- id: "098f6bcd-4621-d373-cade-4e832627b4f6",
430
- processes: [],
431
- },
432
- { status: 200 },
433
- ),
434
- ),
435
- UploadMustContinue("098f6bcd-4621-d373-cade-4e832627b4f6"),
436
- http.post(
437
- "http://localhost/api/v1/unprocessed_files/098f6bcd-4621-d373-cade-4e832627b4f6/upload",
438
- () => HttpResponse.json({ test }, { status: 201 }),
439
- ),
440
- http.post(
441
- "http://localhost/api/v1/unprocessed_files/098f6bcd-4621-d373-cade-4e832627b4f6",
442
- () => HttpResponse.text("Internal Server Error", { status: 500 }),
146
+ http.get("http://localhost/api/v1/unprocessed_files/md5/test-md5", () =>
147
+ HttpResponse.json({}, { status: 404 }),
443
148
  ),
444
149
  );
445
150
 
446
- await expect(
447
- processImageFileBuffer(client, Buffer.from("test"), "test-file").file(),
448
- ).rejects.toThrowError(
449
- "Failed to update unprocessed file 500 Internal Server Error",
450
- );
451
- });
452
-
453
- test("Returns json data when upload is successful", async () => {
454
- server.use(
455
- http.post("http://localhost/api/v1/unprocessed_files", () =>
456
- HttpResponse.json(
457
- {
458
- complete: false,
459
- id: "098f6bcd-4621-d373-cade-4e832627b4f6",
460
- processes: [],
461
- },
462
- { status: 200 },
463
- ),
464
- ),
465
- UploadMustContinue("098f6bcd-4621-d373-cade-4e832627b4f6"),
466
- http.post(
467
- "http://localhost/api/v1/unprocessed_files/098f6bcd-4621-d373-cade-4e832627b4f6/upload",
468
- () => HttpResponse.json({}, { status: 201 }),
469
- ),
470
- http.post(
471
- "http://localhost/api/v1/unprocessed_files/098f6bcd-4621-d373-cade-4e832627b4f6",
472
- () => HttpResponse.json({ test: "response" }, { status: 200 }),
473
- ),
474
- );
151
+ const response = await lookupUnprocessedFileByMd5(client, "test-md5");
475
152
 
476
- await expect(
477
- processImageFileBuffer(client, Buffer.from("test"), "test-file").file(),
478
- ).resolves.toEqual({ test: "response" });
153
+ expect(response).toBeNull();
479
154
  });
480
- });
481
155
 
482
- describe("ProcessImageFile", () => {
483
- test("Throws when server responds with an error when creating file", async () => {
156
+ test("Throws when server returns an error", async () => {
484
157
  server.use(
485
- http.post("http://localhost/api/v1/unprocessed_files", () =>
158
+ http.get("http://localhost/api/v1/unprocessed_files/md5/test-md5", () =>
486
159
  HttpResponse.text("Internal Server Error", { status: 500 }),
487
160
  ),
488
161
  );
489
162
 
490
163
  await expect(
491
- processImageFile(client, TEST_AV_FILE).file(),
492
- ).rejects.toThrowError(
493
- "Failed to create unprocessed file 500 Internal Server Error",
494
- );
495
- });
496
-
497
- test("Throws when server responds with an error when uploading file", async () => {
498
- server.use(
499
- http.post("http://localhost/api/v1/unprocessed_files", () =>
500
- HttpResponse.json(
501
- {
502
- complete: false,
503
- id: "098f6bcd-4621-d373-cade-4e832627b4f6",
504
- processes: [],
505
- },
506
- { status: 200 },
507
- ),
508
- ),
509
- UploadMustContinue("098f6bcd-4621-d373-cade-4e832627b4f6"),
510
- http.post(
511
- "http://localhost/api/v1/unprocessed_files/098f6bcd-4621-d373-cade-4e832627b4f6/upload",
512
- () => HttpResponse.text("Internal Server Error", { status: 500 }),
513
- ),
514
- );
515
-
516
- await expect(
517
- processImageFile(client, TEST_AV_FILE).file(),
518
- ).rejects.toThrowError(
519
- "Failed to upload chunk 0 for /api/v1/unprocessed_files/098f6bcd-4621-d373-cade-4e832627b4f6/upload 500 Internal Server Error",
520
- );
521
- });
522
-
523
- test("Throws when server responds with an error when updating file", async () => {
524
- server.use(
525
- http.post("http://localhost/api/v1/unprocessed_files", () =>
526
- HttpResponse.json(
527
- {
528
- complete: false,
529
- id: "098f6bcd-4621-d373-cade-4e832627b4f6",
530
- processes: [],
531
- },
532
- { status: 200 },
533
- ),
534
- ),
535
- UploadMustContinue("098f6bcd-4621-d373-cade-4e832627b4f6"),
536
- http.post(
537
- "http://localhost/api/v1/unprocessed_files/098f6bcd-4621-d373-cade-4e832627b4f6/upload",
538
- () => HttpResponse.json({ test }, { status: 201 }),
539
- ),
540
- http.post(
541
- "http://localhost/api/v1/unprocessed_files/098f6bcd-4621-d373-cade-4e832627b4f6",
542
- () => HttpResponse.text("Internal Server Error", { status: 500 }),
543
- ),
544
- );
545
-
546
- await expect(
547
- processImageFile(client, TEST_AV_FILE).file(),
164
+ lookupUnprocessedFileByMd5(client, "test-md5"),
548
165
  ).rejects.toThrowError(
549
- "Failed to update unprocessed file 500 Internal Server Error",
166
+ "Failed to lookup unprocessed file by md5 test-md5 500 Internal Server Error",
550
167
  );
551
168
  });
552
-
553
- test("Returns json data when upload is successful", async () => {
554
- server.use(
555
- http.post("http://localhost/api/v1/unprocessed_files", () =>
556
- HttpResponse.json(
557
- {
558
- complete: false,
559
- id: "098f6bcd-4621-d373-cade-4e832627b4f6",
560
- processes: [],
561
- },
562
- { status: 200 },
563
- ),
564
- ),
565
- UploadMustContinue("098f6bcd-4621-d373-cade-4e832627b4f6"),
566
- http.post(
567
- "http://localhost/api/v1/unprocessed_files/098f6bcd-4621-d373-cade-4e832627b4f6/upload",
568
- () => HttpResponse.json({}, { status: 201 }),
569
- ),
570
- http.post(
571
- "http://localhost/api/v1/unprocessed_files/098f6bcd-4621-d373-cade-4e832627b4f6",
572
- () => HttpResponse.json({ test: "response" }, { status: 200 }),
573
- ),
574
- );
575
-
576
- await expect(
577
- processImageFile(client, TEST_AV_FILE).file(),
578
- ).resolves.toEqual({
579
- test: "response",
580
- });
581
- });
582
169
  });
583
170
  });