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