@@ -437,7 +437,11 @@ describe('MultiProvider', () => {
437
437
] ) ;
438
438
const context = { } ;
439
439
await callBeforeHook ( multiProvider , context , 'flag' , 'string' , 'default' ) ;
440
- expect ( await multiProvider . resolveStringEvaluation ( 'flag' , 'default' , context ) ) . toEqual ( { value : 'value' } ) ;
440
+ expect ( await multiProvider . resolveStringEvaluation ( 'flag' , 'default' , context ) ) . toEqual ( {
441
+ value : 'value' ,
442
+ flagKey : 'flag' ,
443
+ flagMetadata : { } ,
444
+ } ) ;
441
445
} ) ;
442
446
443
447
it ( 'evaluates a number variable' , async ( ) => {
@@ -453,7 +457,11 @@ describe('MultiProvider', () => {
453
457
454
458
await callBeforeHook ( multiProvider , context , 'flag' , 'number' , 0 ) ;
455
459
456
- expect ( await multiProvider . resolveNumberEvaluation ( 'flag' , 0 , context ) ) . toEqual ( { value : 1 } ) ;
460
+ expect ( await multiProvider . resolveNumberEvaluation ( 'flag' , 0 , context ) ) . toEqual ( {
461
+ value : 1 ,
462
+ flagKey : 'flag' ,
463
+ flagMetadata : { } ,
464
+ } ) ;
457
465
} ) ;
458
466
459
467
it ( 'evaluates a boolean variable' , async ( ) => {
@@ -467,7 +475,11 @@ describe('MultiProvider', () => {
467
475
] ) ;
468
476
const context = { } ;
469
477
await callBeforeHook ( multiProvider , context , 'flag' , 'boolean' , false ) ;
470
- expect ( await multiProvider . resolveBooleanEvaluation ( 'flag' , false , context ) ) . toEqual ( { value : true } ) ;
478
+ expect ( await multiProvider . resolveBooleanEvaluation ( 'flag' , false , context ) ) . toEqual ( {
479
+ value : true ,
480
+ flagKey : 'flag' ,
481
+ flagMetadata : { } ,
482
+ } ) ;
471
483
} ) ;
472
484
473
485
it ( 'evaluates an object variable' , async ( ) => {
@@ -481,7 +493,11 @@ describe('MultiProvider', () => {
481
493
] ) ;
482
494
const context = { } ;
483
495
await callBeforeHook ( multiProvider , context , 'flag' , 'object' , { } ) ;
484
- expect ( await multiProvider . resolveObjectEvaluation ( 'flag' , { } , context ) ) . toEqual ( { value : { test : true } } ) ;
496
+ expect ( await multiProvider . resolveObjectEvaluation ( 'flag' , { } , context ) ) . toEqual ( {
497
+ flagKey : 'flag' ,
498
+ flagMetadata : { } ,
499
+ value : { test : true } ,
500
+ } ) ;
485
501
} ) ;
486
502
} ) ;
487
503
describe ( 'first match strategy' , ( ) => {
@@ -554,7 +570,7 @@ describe('MultiProvider', () => {
554
570
new FirstMatchStrategy ( ) ,
555
571
) ;
556
572
const result = await callEvaluation ( multiProvider , { } , logger ) ;
557
- expect ( result ) . toEqual ( { value : true } ) ;
573
+ expect ( result ) . toEqual ( { value : true , flagKey : 'flag' , flagMetadata : { } } ) ;
558
574
expect ( provider2 . resolveBooleanEvaluation ) . toHaveBeenCalled ( ) ;
559
575
expect ( provider3 . resolveBooleanEvaluation ) . not . toHaveBeenCalled ( ) ;
560
576
} ) ;
@@ -582,7 +598,7 @@ describe('MultiProvider', () => {
582
598
new FirstMatchStrategy ( ) ,
583
599
) ;
584
600
const result = await callEvaluation ( multiProvider , { } , logger ) ;
585
- expect ( result ) . toEqual ( { value : true } ) ;
601
+ expect ( result ) . toEqual ( { value : true , flagKey : 'flag' , flagMetadata : { } } ) ;
586
602
expect ( provider2 . resolveBooleanEvaluation ) . toHaveBeenCalled ( ) ;
587
603
expect ( provider3 . resolveBooleanEvaluation ) . not . toHaveBeenCalled ( ) ;
588
604
} ) ;
@@ -615,7 +631,7 @@ describe('MultiProvider', () => {
615
631
new FirstSuccessfulStrategy ( ) ,
616
632
) ;
617
633
const result = await callEvaluation ( multiProvider , { } , logger ) ;
618
- expect ( result ) . toEqual ( { value : true } ) ;
634
+ expect ( result ) . toEqual ( { value : true , flagKey : 'flag' , flagMetadata : { } } ) ;
619
635
expect ( provider2 . resolveBooleanEvaluation ) . toHaveBeenCalled ( ) ;
620
636
expect ( provider3 . resolveBooleanEvaluation ) . not . toHaveBeenCalled ( ) ;
621
637
} ) ;
@@ -659,7 +675,7 @@ describe('MultiProvider', () => {
659
675
expect ( provider2 . resolveBooleanEvaluation ) . toHaveBeenCalled ( ) ;
660
676
expect ( provider3 . resolveBooleanEvaluation ) . toHaveBeenCalled ( ) ;
661
677
662
- expect ( await resultPromise ) . toEqual ( { value : true } ) ;
678
+ expect ( await resultPromise ) . toEqual ( { value : true , flagKey : 'flag' , flagMetadata : { } } ) ;
663
679
} ) ;
664
680
665
681
it ( 'calls every provider and returns the fallback value if any disagree, and calls onMismatch' , async ( ) => {
@@ -700,21 +716,21 @@ describe('MultiProvider', () => {
700
716
{
701
717
provider : provider1 ,
702
718
providerName : 'TestProvider-1' ,
703
- details : { value : true } ,
719
+ details : { value : true , flagKey : 'flag' , flagMetadata : { } } ,
704
720
} ,
705
721
{
706
722
provider : provider2 ,
707
723
providerName : 'TestProvider-2' ,
708
- details : { value : false } ,
724
+ details : { value : false , flagKey : 'flag' , flagMetadata : { } } ,
709
725
} ,
710
726
{
711
727
provider : provider3 ,
712
728
providerName : 'TestProvider-3' ,
713
- details : { value : false } ,
729
+ details : { value : false , flagKey : 'flag' , flagMetadata : { } } ,
714
730
} ,
715
731
] ) ;
716
732
717
- expect ( result ) . toEqual ( { value : true } ) ;
733
+ expect ( result ) . toEqual ( { value : true , flagKey : 'flag' , flagMetadata : { } } ) ;
718
734
} ) ;
719
735
720
736
it ( 'returns an error if any provider returns an error' , async ( ) => {
0 commit comments