@@ -467,9 +467,11 @@ func TestResolveAllValues(t *testing.T) {
467467 }
468468
469469 for _ , val := range vals {
470- // disabled flag must be ignored from bulk evaluation
470+ // disabled flag must not be ignored from bulk evaluation
471471 if val .FlagKey == DisabledFlag {
472- t .Errorf ("disabled flag '%s' is present in evaluation results" , DisabledFlag )
472+ assert .Equal (t , model .DisabledReason , val .Reason )
473+ assert .Nil (t , val .Error )
474+ continue
473475 }
474476
475477 switch vT := val .Value .(type ) {
@@ -510,7 +512,7 @@ func TestResolveBooleanValue(t *testing.T) {
510512 {DynamicBoolFlag , map [string ]interface {}{ColorProp : ColorValue }, StaticBoolValue , model .TargetingMatchReason , "" },
511513 {StaticObjectFlag , nil , StaticBoolValue , model .ErrorReason , model .TypeMismatchErrorCode },
512514 {MissingFlag , nil , StaticBoolValue , model .ErrorReason , model .FlagNotFoundErrorCode },
513- {DisabledFlag , nil , StaticBoolValue , model .ErrorReason , model . FlagDisabledErrorCode },
515+ {DisabledFlag , nil , false , model .DisabledReason , "" },
514516 }
515517 const reqID = "default"
516518 evaluator := flagdEvaluator .NewJSON (logger .NewLogger (nil , false ), store .NewFlags ())
@@ -545,7 +547,7 @@ func BenchmarkResolveBooleanValue(b *testing.B) {
545547 {DynamicBoolFlag , map [string ]interface {}{ColorProp : ColorValue }, StaticBoolValue , model .TargetingMatchReason , "" },
546548 {StaticObjectFlag , nil , StaticBoolValue , model .ErrorReason , model .TypeMismatchErrorCode },
547549 {MissingFlag , nil , StaticBoolValue , model .ErrorReason , model .FlagNotFoundErrorCode },
548- {DisabledFlag , nil , StaticBoolValue , model .ErrorReason , model . FlagDisabledErrorCode },
550+ {DisabledFlag , nil , false , model .DisabledReason , "" },
549551 }
550552
551553 evaluator := flagdEvaluator .NewJSON (logger .NewLogger (nil , false ), store .NewFlags ())
@@ -585,7 +587,7 @@ func TestResolveStringValue(t *testing.T) {
585587 {DynamicStringFlag , map [string ]interface {}{ColorProp : ColorValue }, DynamicStringValue , model .TargetingMatchReason , "" },
586588 {StaticObjectFlag , nil , "" , model .ErrorReason , model .TypeMismatchErrorCode },
587589 {MissingFlag , nil , "" , model .ErrorReason , model .FlagNotFoundErrorCode },
588- {DisabledFlag , nil , "" , model .ErrorReason , model . FlagDisabledErrorCode },
590+ {DisabledFlag , nil , "" , model .DisabledReason , "" },
589591 }
590592 const reqID = "default"
591593 evaluator := flagdEvaluator .NewJSON (logger .NewLogger (nil , false ), store .NewFlags ())
@@ -621,7 +623,7 @@ func BenchmarkResolveStringValue(b *testing.B) {
621623 {DynamicStringFlag , map [string ]interface {}{ColorProp : ColorValue }, DynamicStringValue , model .TargetingMatchReason , "" },
622624 {StaticObjectFlag , nil , "" , model .ErrorReason , model .TypeMismatchErrorCode },
623625 {MissingFlag , nil , "" , model .ErrorReason , model .FlagNotFoundErrorCode },
624- {DisabledFlag , nil , "" , model .ErrorReason , model . FlagDisabledErrorCode },
626+ {DisabledFlag , nil , "" , model .DisabledReason , "" },
625627 }
626628
627629 evaluator := flagdEvaluator .NewJSON (logger .NewLogger (nil , false ), store .NewFlags ())
@@ -661,7 +663,7 @@ func TestResolveFloatValue(t *testing.T) {
661663 {DynamicFloatFlag , map [string ]interface {}{ColorProp : ColorValue }, DynamicFloatValue , model .TargetingMatchReason , "" },
662664 {StaticObjectFlag , nil , 13 , model .ErrorReason , model .TypeMismatchErrorCode },
663665 {MissingFlag , nil , 13 , model .ErrorReason , model .FlagNotFoundErrorCode },
664- {DisabledFlag , nil , 0 , model .ErrorReason , model . FlagDisabledErrorCode },
666+ {DisabledFlag , nil , 0 , model .DisabledReason , "" },
665667 }
666668 const reqID = "default"
667669 evaluator := flagdEvaluator .NewJSON (logger .NewLogger (nil , false ), store .NewFlags ())
@@ -697,7 +699,7 @@ func BenchmarkResolveFloatValue(b *testing.B) {
697699 {DynamicFloatFlag , map [string ]interface {}{ColorProp : ColorValue }, DynamicFloatValue , model .TargetingMatchReason , "" },
698700 {StaticObjectFlag , nil , 13 , model .ErrorReason , model .TypeMismatchErrorCode },
699701 {MissingFlag , nil , 13 , model .ErrorReason , model .FlagNotFoundErrorCode },
700- {DisabledFlag , nil , 0 , model .ErrorReason , model . FlagDisabledErrorCode },
702+ {DisabledFlag , nil , 0 , model .DisabledReason , "" },
701703 }
702704
703705 evaluator := flagdEvaluator .NewJSON (logger .NewLogger (nil , false ), store .NewFlags ())
@@ -737,7 +739,7 @@ func TestResolveIntValue(t *testing.T) {
737739 {DynamicIntFlag , map [string ]interface {}{ColorProp : ColorValue }, DynamicIntValue , model .TargetingMatchReason , "" },
738740 {StaticObjectFlag , nil , 13 , model .ErrorReason , model .TypeMismatchErrorCode },
739741 {MissingFlag , nil , 13 , model .ErrorReason , model .FlagNotFoundErrorCode },
740- {DisabledFlag , nil , 0 , model .ErrorReason , model . FlagDisabledErrorCode },
742+ {DisabledFlag , nil , 0 , model .DisabledReason , "" },
741743 }
742744 const reqID = "default"
743745 evaluator := flagdEvaluator .NewJSON (logger .NewLogger (nil , false ), store .NewFlags ())
@@ -773,7 +775,7 @@ func BenchmarkResolveIntValue(b *testing.B) {
773775 {DynamicIntFlag , map [string ]interface {}{ColorProp : ColorValue }, DynamicIntValue , model .TargetingMatchReason , "" },
774776 {StaticObjectFlag , nil , 13 , model .ErrorReason , model .TypeMismatchErrorCode },
775777 {MissingFlag , nil , 13 , model .ErrorReason , model .FlagNotFoundErrorCode },
776- {DisabledFlag , nil , 0 , model .ErrorReason , model . FlagDisabledErrorCode },
778+ {DisabledFlag , nil , 0 , model .DisabledReason , "" },
777779 }
778780
779781 evaluator := flagdEvaluator .NewJSON (logger .NewLogger (nil , false ), store .NewFlags ())
@@ -813,7 +815,7 @@ func TestResolveObjectValue(t *testing.T) {
813815 {DynamicObjectFlag , map [string ]interface {}{ColorProp : ColorValue }, DynamicObjectValue , model .TargetingMatchReason , "" },
814816 {StaticBoolFlag , nil , "{}" , model .ErrorReason , model .TypeMismatchErrorCode },
815817 {MissingFlag , nil , "{}" , model .ErrorReason , model .FlagNotFoundErrorCode },
816- {DisabledFlag , nil , "{} " , model .ErrorReason , model . FlagDisabledErrorCode },
818+ {DisabledFlag , nil , "" , model .DisabledReason , "" },
817819 }
818820 const reqID = "default"
819821 evaluator := flagdEvaluator .NewJSON (logger .NewLogger (nil , false ), store .NewFlags ())
@@ -827,11 +829,15 @@ func TestResolveObjectValue(t *testing.T) {
827829
828830 if test .errorCode == "" {
829831 if assert .NoError (t , err ) {
830- marshalled , err := json .Marshal (val )
831- if assert .NoError (t , err ) {
832- assert .JSONEq (t , test .val , string (marshalled ))
833- assert .Equal (t , test .reason , reason )
832+ if test .flagKey == DisabledFlag {
833+ assert .Nil (t , val )
834+ } else {
835+ marshalled , err := json .Marshal (val )
836+ if assert .NoError (t , err ) {
837+ assert .JSONEq (t , test .val , string (marshalled ))
838+ }
834839 }
840+ assert .Equal (t , test .reason , reason )
835841 }
836842 } else {
837843 assert .Equal (t , model .ErrorReason , reason )
@@ -852,7 +858,7 @@ func BenchmarkResolveObjectValue(b *testing.B) {
852858 {DynamicObjectFlag , map [string ]interface {}{ColorProp : ColorValue }, DynamicObjectValue , model .TargetingMatchReason , "" },
853859 {StaticBoolFlag , nil , "{}" , model .ErrorReason , model .TypeMismatchErrorCode },
854860 {MissingFlag , nil , "{}" , model .ErrorReason , model .FlagNotFoundErrorCode },
855- {DisabledFlag , nil , "{}" , model .ErrorReason , model . FlagDisabledErrorCode },
861+ {DisabledFlag , nil , "{}" , model .DisabledReason , "" },
856862 }
857863
858864 evaluator := flagdEvaluator .NewJSON (logger .NewLogger (nil , false ), store .NewFlags ())
@@ -897,7 +903,7 @@ func TestResolveAsAnyValue(t *testing.T) {
897903 {DynamicObjectFlag , map [string ]interface {}{ColorProp : ColorValue }, DynamicObjectValue , model .TargetingMatchReason , "" },
898904 // errors
899905 {MissingFlag , nil , "{}" , model .ErrorReason , model .FlagNotFoundErrorCode },
900- {DisabledFlag , nil , "{}" , model .ErrorReason , model . FlagDisabledErrorCode },
906+ {DisabledFlag , nil , "{}" , model .DisabledReason , "" },
901907 }
902908
903909 evaluator := flagdEvaluator .NewJSON (logger .NewLogger (nil , false ), store .NewFlags ())
0 commit comments