@@ -113,6 +113,47 @@ public async Task CheckAsync_RunsAllChecksAndAggregatesResultsAsync()
113
113
} ) ;
114
114
}
115
115
116
+ [ Fact ]
117
+ public async Task CheckAsync_TagsArePresentInHealthReportEntryIfExceptionOccurs ( )
118
+ {
119
+ const string ExceptionMessage = "exception-message" ;
120
+ const string OperationCancelledMessage = "operation-cancelled-message" ;
121
+ var exceptionTags = new [ ] { "unhealthy-check-tag" } ;
122
+ var operationExceptionTags = new [ ] { "degraded-check-tag" } ;
123
+
124
+ // Arrange
125
+ var service = CreateHealthChecksService ( b =>
126
+ {
127
+ b . AddAsyncCheck ( "ExceptionCheck" , _ => throw new Exception ( ExceptionMessage ) , exceptionTags ) ;
128
+ b . AddAsyncCheck ( "OperationExceptionCheck" , _ => throw new OperationCanceledException ( OperationCancelledMessage ) , operationExceptionTags ) ;
129
+ } ) ;
130
+
131
+ // Act
132
+ var results = await service . CheckHealthAsync ( ) ;
133
+
134
+ // Assert
135
+ Assert . Collection (
136
+ results . Entries . OrderBy ( kvp => kvp . Key ) ,
137
+ actual =>
138
+ {
139
+ Assert . Equal ( "ExceptionCheck" , actual . Key ) ;
140
+ Assert . Equal ( ExceptionMessage , actual . Value . Description ) ;
141
+ Assert . Equal ( HealthStatus . Unhealthy , actual . Value . Status ) ;
142
+ Assert . Equal ( ExceptionMessage , actual . Value . Exception . Message ) ;
143
+ Assert . Empty ( actual . Value . Data ) ;
144
+ Assert . Equal ( actual . Value . Tags , exceptionTags ) ;
145
+ } ,
146
+ actual =>
147
+ {
148
+ Assert . Equal ( "OperationExceptionCheck" , actual . Key ) ;
149
+ Assert . Equal ( "A timeout occurred while running check." , actual . Value . Description ) ;
150
+ Assert . Equal ( HealthStatus . Unhealthy , actual . Value . Status ) ;
151
+ Assert . Equal ( OperationCancelledMessage , actual . Value . Exception . Message ) ;
152
+ Assert . Empty ( actual . Value . Data ) ;
153
+ Assert . Equal ( actual . Value . Tags , operationExceptionTags ) ;
154
+ } ) ;
155
+ }
156
+
116
157
[ Fact ]
117
158
public async Task CheckAsync_RunsFilteredChecksAndAggregatesResultsAsync ( )
118
159
{
0 commit comments