@@ -32,6 +32,35 @@ await metricsHook.AfterAsync(ctx,
3232 Assert . Equal ( "my-flag" , measurements . Tags [ "feature_flag.key" ] ) ;
3333 Assert . Equal ( "my-provider" , measurements . Tags [ "feature_flag.provider.name" ] ) ;
3434 Assert . Equal ( "STATIC" , measurements . Tags [ "feature_flag.result.reason" ] ) ;
35+ Assert . Equal ( "default" , measurements . Tags [ "feature_flag.result.variant" ] ) ;
36+ }
37+
38+ [ Fact ]
39+ public async Task Without_Variant_After_Test_Does_Not_Include_Variant ( )
40+ {
41+ // Arrange
42+ var metricsHook = new MetricsHook ( ) ;
43+
44+ using var collector = new MetricCollector < long > ( metricsHook . _evaluationSuccessCounter ) ;
45+
46+ var evaluationContext = EvaluationContext . Empty ;
47+ var ctx = new HookContext < string > ( "my-flag" , "foo" , Constant . FlagValueType . String ,
48+ new ClientMetadata ( "my-client" , "1.0" ) , new Metadata ( "my-provider" ) , evaluationContext ) ;
49+
50+ // Act
51+ await metricsHook . AfterAsync ( ctx ,
52+ new FlagEvaluationDetails < string > ( "my-flag" , "foo" , Constant . ErrorType . None , "STATIC" , variant : null ) ,
53+ new Dictionary < string , object > ( ) ) . ConfigureAwait ( true ) ;
54+
55+ var measurements = collector . LastMeasurement ;
56+
57+ // Assert
58+ Assert . NotNull ( measurements ) ;
59+
60+ Assert . Equal ( "my-flag" , measurements . Tags [ "feature_flag.key" ] ) ;
61+ Assert . Equal ( "my-provider" , measurements . Tags [ "feature_flag.provider.name" ] ) ;
62+ Assert . Equal ( "STATIC" , measurements . Tags [ "feature_flag.result.reason" ] ) ;
63+ Assert . DoesNotContain ( "feature_flag.result.variant" , measurements . Tags . Keys ) ;
3564 }
3665
3766 [ Fact ]
0 commit comments