@@ -7,6 +7,7 @@ import { invariant } from '../../jsutils/invariant';
7
7
import { Kind } from '../../language/kinds' ;
8
8
import { parse } from '../../language/parser' ;
9
9
10
+ import { GraphQLAggregateError } from '../../error/GraphQLAggregateError' ;
10
11
import { GraphQLSchema } from '../../type/schema' ;
11
12
import { GraphQLInt , GraphQLBoolean , GraphQLString } from '../../type/scalars' ;
12
13
import {
@@ -401,17 +402,22 @@ describe('Execute: Handles basic execution tasks', () => {
401
402
fields : {
402
403
sync : { type : GraphQLString } ,
403
404
syncError : { type : GraphQLString } ,
405
+ syncAggregateError : { type : GraphQLString } ,
404
406
syncRawError : { type : GraphQLString } ,
405
407
syncReturnError : { type : GraphQLString } ,
408
+ syncReturnAggregateError : { type : GraphQLString } ,
406
409
syncReturnErrorList : { type : new GraphQLList ( GraphQLString ) } ,
407
410
async : { type : GraphQLString } ,
408
411
asyncReject : { type : GraphQLString } ,
412
+ asyncRejectAggregate : { type : GraphQLString } ,
409
413
asyncRejectWithExtensions : { type : GraphQLString } ,
410
414
asyncRawReject : { type : GraphQLString } ,
411
415
asyncEmptyReject : { type : GraphQLString } ,
412
416
asyncError : { type : GraphQLString } ,
417
+ asyncAggregateError : { type : GraphQLString } ,
413
418
asyncRawError : { type : GraphQLString } ,
414
419
asyncReturnError : { type : GraphQLString } ,
420
+ asyncReturnAggregateError : { type : GraphQLString } ,
415
421
asyncReturnErrorWithExtensions : { type : GraphQLString } ,
416
422
} ,
417
423
} ) ,
@@ -421,16 +427,22 @@ describe('Execute: Handles basic execution tasks', () => {
421
427
{
422
428
sync
423
429
syncError
430
+ syncAggregateError
424
431
syncRawError
425
432
syncReturnError
433
+ syncReturnAggregateError
426
434
syncReturnErrorList
427
435
async
428
436
asyncReject
437
+ asyncRejectAggregate
429
438
asyncRawReject
439
+ asyncRawRejectAggregate
430
440
asyncEmptyReject
431
441
asyncError
442
+ asyncAggregateError
432
443
asyncRawError
433
444
asyncReturnError
445
+ asyncReturnAggregateError
434
446
asyncReturnErrorWithExtensions
435
447
}
436
448
` ) ;
@@ -442,13 +454,25 @@ describe('Execute: Handles basic execution tasks', () => {
442
454
syncError ( ) {
443
455
throw new Error ( 'Error getting syncError' ) ;
444
456
} ,
457
+ syncAggregateError ( ) {
458
+ throw new GraphQLAggregateError ( [
459
+ new Error ( 'Error1 getting syncAggregateError' ) ,
460
+ new Error ( 'Error2 getting syncAggregateError' ) ,
461
+ ] ) ;
462
+ } ,
445
463
syncRawError ( ) {
446
464
// eslint-disable-next-line @typescript-eslint/no-throw-literal
447
465
throw 'Error getting syncRawError' ;
448
466
} ,
449
467
syncReturnError ( ) {
450
468
return new Error ( 'Error getting syncReturnError' ) ;
451
469
} ,
470
+ syncReturnAggregateError ( ) {
471
+ return new GraphQLAggregateError ( [
472
+ new Error ( 'Error1 getting syncReturnAggregateError' ) ,
473
+ new Error ( 'Error2 getting syncReturnAggregateError' ) ,
474
+ ] ) ;
475
+ } ,
452
476
syncReturnErrorList ( ) {
453
477
return [
454
478
'sync0' ,
@@ -465,6 +489,16 @@ describe('Execute: Handles basic execution tasks', () => {
465
489
reject ( new Error ( 'Error getting asyncReject' ) ) ,
466
490
) ;
467
491
} ,
492
+ asyncRejectAggregate ( ) {
493
+ return new Promise ( ( _ , reject ) =>
494
+ reject (
495
+ new GraphQLAggregateError ( [
496
+ new Error ( 'Error1 getting asyncRejectAggregate' ) ,
497
+ new Error ( 'Error2 getting asyncRejectAggregate' ) ,
498
+ ] ) ,
499
+ ) ,
500
+ ) ;
501
+ } ,
468
502
asyncRawReject ( ) {
469
503
// eslint-disable-next-line prefer-promise-reject-errors
470
504
return Promise . reject ( 'Error getting asyncRawReject' ) ;
@@ -478,6 +512,14 @@ describe('Execute: Handles basic execution tasks', () => {
478
512
throw new Error ( 'Error getting asyncError' ) ;
479
513
} ) ;
480
514
} ,
515
+ asyncAggregateError ( ) {
516
+ return new Promise ( ( ) => {
517
+ throw new GraphQLAggregateError ( [
518
+ new Error ( 'Error1 getting asyncAggregateError' ) ,
519
+ new Error ( 'Error2 getting asyncAggregateError' ) ,
520
+ ] ) ;
521
+ } ) ;
522
+ } ,
481
523
asyncRawError ( ) {
482
524
return new Promise ( ( ) => {
483
525
// eslint-disable-next-line @typescript-eslint/no-throw-literal
@@ -487,6 +529,14 @@ describe('Execute: Handles basic execution tasks', () => {
487
529
asyncReturnError ( ) {
488
530
return Promise . resolve ( new Error ( 'Error getting asyncReturnError' ) ) ;
489
531
} ,
532
+ asyncReturnAggregateError ( ) {
533
+ return Promise . resolve (
534
+ new GraphQLAggregateError ( [
535
+ new Error ( 'Error1 getting asyncReturnAggregateError' ) ,
536
+ new Error ( 'Error2 getting asyncReturnAggregateError' ) ,
537
+ ] ) ,
538
+ ) ;
539
+ } ,
490
540
asyncReturnErrorWithExtensions ( ) {
491
541
const error = new Error ( 'Error getting asyncReturnErrorWithExtensions' ) ;
492
542
// @ts -expect-error
@@ -501,16 +551,21 @@ describe('Execute: Handles basic execution tasks', () => {
501
551
data : {
502
552
sync : 'sync' ,
503
553
syncError : null ,
554
+ syncAggregateError : null ,
504
555
syncRawError : null ,
505
556
syncReturnError : null ,
557
+ syncReturnAggregateError : null ,
506
558
syncReturnErrorList : [ 'sync0' , null , 'sync2' , null ] ,
507
559
async : 'async' ,
508
560
asyncReject : null ,
561
+ asyncRejectAggregate : null ,
509
562
asyncRawReject : null ,
510
563
asyncEmptyReject : null ,
511
564
asyncError : null ,
565
+ asyncAggregateError : null ,
512
566
asyncRawError : null ,
513
567
asyncReturnError : null ,
568
+ asyncReturnAggregateError : null ,
514
569
asyncReturnErrorWithExtensions : null ,
515
570
} ,
516
571
errors : [
@@ -520,58 +575,108 @@ describe('Execute: Handles basic execution tasks', () => {
520
575
path : [ 'syncError' ] ,
521
576
} ,
522
577
{
523
- message : 'Unexpected error value: "Error getting syncRawError"' ,
578
+ message : 'Error1 getting syncAggregateError' ,
579
+ locations : [ { line : 5 , column : 9 } ] ,
580
+ path : [ 'syncAggregateError' ] ,
581
+ } ,
582
+ {
583
+ message : 'Error2 getting syncAggregateError' ,
524
584
locations : [ { line : 5 , column : 9 } ] ,
585
+ path : [ 'syncAggregateError' ] ,
586
+ } ,
587
+ {
588
+ message : 'Unexpected error value: "Error getting syncRawError"' ,
589
+ locations : [ { line : 6 , column : 9 } ] ,
525
590
path : [ 'syncRawError' ] ,
526
591
} ,
527
592
{
528
593
message : 'Error getting syncReturnError' ,
529
- locations : [ { line : 6 , column : 9 } ] ,
594
+ locations : [ { line : 7 , column : 9 } ] ,
530
595
path : [ 'syncReturnError' ] ,
531
596
} ,
597
+ {
598
+ message : 'Error1 getting syncReturnAggregateError' ,
599
+ locations : [ { line : 8 , column : 9 } ] ,
600
+ path : [ 'syncReturnAggregateError' ] ,
601
+ } ,
602
+ {
603
+ message : 'Error2 getting syncReturnAggregateError' ,
604
+ locations : [ { line : 8 , column : 9 } ] ,
605
+ path : [ 'syncReturnAggregateError' ] ,
606
+ } ,
532
607
{
533
608
message : 'Error getting syncReturnErrorList1' ,
534
- locations : [ { line : 7 , column : 9 } ] ,
609
+ locations : [ { line : 9 , column : 9 } ] ,
535
610
path : [ 'syncReturnErrorList' , 1 ] ,
536
611
} ,
537
612
{
538
613
message : 'Error getting syncReturnErrorList3' ,
539
- locations : [ { line : 7 , column : 9 } ] ,
614
+ locations : [ { line : 9 , column : 9 } ] ,
540
615
path : [ 'syncReturnErrorList' , 3 ] ,
541
616
} ,
542
617
{
543
618
message : 'Error getting asyncReject' ,
544
- locations : [ { line : 9 , column : 9 } ] ,
619
+ locations : [ { line : 11 , column : 9 } ] ,
545
620
path : [ 'asyncReject' ] ,
546
621
} ,
622
+ {
623
+ message : 'Error1 getting asyncRejectAggregate' ,
624
+ locations : [ { line : 12 , column : 9 } ] ,
625
+ path : [ 'asyncRejectAggregate' ] ,
626
+ } ,
627
+ {
628
+ message : 'Error2 getting asyncRejectAggregate' ,
629
+ locations : [ { line : 12 , column : 9 } ] ,
630
+ path : [ 'asyncRejectAggregate' ] ,
631
+ } ,
547
632
{
548
633
message : 'Unexpected error value: "Error getting asyncRawReject"' ,
549
- locations : [ { line : 10 , column : 9 } ] ,
634
+ locations : [ { line : 13 , column : 9 } ] ,
550
635
path : [ 'asyncRawReject' ] ,
551
636
} ,
552
637
{
553
638
message : 'Unexpected error value: undefined' ,
554
- locations : [ { line : 11 , column : 9 } ] ,
639
+ locations : [ { line : 15 , column : 9 } ] ,
555
640
path : [ 'asyncEmptyReject' ] ,
556
641
} ,
557
642
{
558
643
message : 'Error getting asyncError' ,
559
- locations : [ { line : 12 , column : 9 } ] ,
644
+ locations : [ { line : 16 , column : 9 } ] ,
560
645
path : [ 'asyncError' ] ,
561
646
} ,
647
+ {
648
+ message : 'Error1 getting asyncAggregateError' ,
649
+ locations : [ { line : 17 , column : 9 } ] ,
650
+ path : [ 'asyncAggregateError' ] ,
651
+ } ,
652
+ {
653
+ message : 'Error2 getting asyncAggregateError' ,
654
+ locations : [ { line : 17 , column : 9 } ] ,
655
+ path : [ 'asyncAggregateError' ] ,
656
+ } ,
562
657
{
563
658
message : 'Unexpected error value: "Error getting asyncRawError"' ,
564
- locations : [ { line : 13 , column : 9 } ] ,
659
+ locations : [ { line : 18 , column : 9 } ] ,
565
660
path : [ 'asyncRawError' ] ,
566
661
} ,
567
662
{
568
663
message : 'Error getting asyncReturnError' ,
569
- locations : [ { line : 14 , column : 9 } ] ,
664
+ locations : [ { line : 19 , column : 9 } ] ,
570
665
path : [ 'asyncReturnError' ] ,
571
666
} ,
667
+ {
668
+ message : 'Error1 getting asyncReturnAggregateError' ,
669
+ locations : [ { line : 20 , column : 9 } ] ,
670
+ path : [ 'asyncReturnAggregateError' ] ,
671
+ } ,
672
+ {
673
+ message : 'Error2 getting asyncReturnAggregateError' ,
674
+ locations : [ { line : 20 , column : 9 } ] ,
675
+ path : [ 'asyncReturnAggregateError' ] ,
676
+ } ,
572
677
{
573
678
message : 'Error getting asyncReturnErrorWithExtensions' ,
574
- locations : [ { line : 15 , column : 9 } ] ,
679
+ locations : [ { line : 21 , column : 9 } ] ,
575
680
path : [ 'asyncReturnErrorWithExtensions' ] ,
576
681
extensions : { foo : 'bar' } ,
577
682
} ,
0 commit comments