|
8 | 8 | isGraphQLArgumentType,
|
9 | 9 | uploadTypeIdentifier,
|
10 | 10 | normaliseArguments,
|
| 11 | + processor as uploadPorcessor, |
11 | 12 | } from './'
|
12 | 13 |
|
13 | 14 | // Helpers
|
@@ -435,3 +436,72 @@ test('Normalizes response correctly', async t => {
|
435 | 436 | arg2: { value: 'z' },
|
436 | 437 | })
|
437 | 438 | })
|
| 439 | + |
| 440 | +test('Processor handles single file correctly', async t => { |
| 441 | + const uploadHandler = ({ stream, filename, mimetype, encoding }) => |
| 442 | + new Promise(resolve => |
| 443 | + setTimeout( |
| 444 | + () => resolve(`${stream}${filename}${mimetype}${encoding}`), |
| 445 | + 10, |
| 446 | + ), |
| 447 | + ) |
| 448 | + |
| 449 | + const res = await uploadPorcessor(uploadHandler)({ |
| 450 | + argumentName: 'test', |
| 451 | + upload: new Promise(resolve => |
| 452 | + resolve({ stream: 's', filename: 'f', mimetype: 'm', encoding: 'e' }), |
| 453 | + ), |
| 454 | + }) |
| 455 | + |
| 456 | + t.deepEqual(res, { |
| 457 | + argumentName: 'test', |
| 458 | + upload: 'sfme', |
| 459 | + }) |
| 460 | +}) |
| 461 | + |
| 462 | +test('Processor handles multiple files correctly', async t => { |
| 463 | + const uploadHandler = ({ stream, filename, mimetype, encoding }) => |
| 464 | + new Promise(resolve => |
| 465 | + setTimeout( |
| 466 | + () => resolve(`${stream}${filename}${mimetype}${encoding}`), |
| 467 | + 10, |
| 468 | + ), |
| 469 | + ) |
| 470 | + |
| 471 | + const file = x => |
| 472 | + new Promise(resolve => |
| 473 | + resolve({ |
| 474 | + stream: `s${x}`, |
| 475 | + filename: `f${x}`, |
| 476 | + mimetype: `m${x}`, |
| 477 | + encoding: `e${x}`, |
| 478 | + }), |
| 479 | + ) |
| 480 | + |
| 481 | + const res = await uploadPorcessor(uploadHandler)({ |
| 482 | + argumentName: 'test', |
| 483 | + upload: [file(1), file(2)], |
| 484 | + }) |
| 485 | + |
| 486 | + t.deepEqual(res, { |
| 487 | + argumentName: 'test', |
| 488 | + upload: ['s1f1m1e1', 's2f2m2e2'], |
| 489 | + }) |
| 490 | +}) |
| 491 | + |
| 492 | +test('Processor handles no file correctly', async t => { |
| 493 | + const uploadHandler = ({ stream, filename, mimetype, encoding }) => |
| 494 | + new Promise(resolve => |
| 495 | + setTimeout( |
| 496 | + () => resolve(`${stream}${filename}${mimetype}${encoding}`), |
| 497 | + 10, |
| 498 | + ), |
| 499 | + ) |
| 500 | + |
| 501 | + const res = await uploadPorcessor(uploadHandler)({ |
| 502 | + argumentName: 'test', |
| 503 | + upload: null, |
| 504 | + }) |
| 505 | + |
| 506 | + t.is(res, null) |
| 507 | +}) |
0 commit comments