@@ -81,7 +81,10 @@ pub async fn labels_middleware(mut request: Request, next: Next) -> Response {
8181#[ cfg( test) ]
8282mod tests {
8383 use crate :: middleware:: {
84- inject_allocation:: Allocation , inject_sender:: Sender , prometheus_metrics:: MetricLabels ,
84+ inject_allocation:: Allocation ,
85+ inject_labels:: { NO_ALLOCATION , NO_DEPLOYMENT_ID , NO_SENDER } ,
86+ inject_sender:: Sender ,
87+ prometheus_metrics:: MetricLabels ,
8588 } ;
8689
8790 use super :: labels_middleware;
@@ -99,7 +102,7 @@ mod tests {
99102 use tower:: ServiceExt ;
100103
101104 #[ tokio:: test]
102- async fn test_receipt_middleware ( ) {
105+ async fn test_label_middleware ( ) {
103106 let middleware = from_fn ( labels_middleware) ;
104107
105108 let deployment = * ESCROW_SUBGRAPH_DEPLOYMENT ;
@@ -109,7 +112,7 @@ mod tests {
109112 let handle = move |extensions : Extensions | async move {
110113 let metrics = extensions
111114 . get :: < MetricLabels > ( )
112- . expect ( "Should decode tap receipt " ) ;
115+ . expect ( "Should decode metric label " ) ;
113116 assert_eq ! (
114117 metrics. get_labels( ) ,
115118 vec![
@@ -137,4 +140,28 @@ mod tests {
137140 . unwrap ( ) ;
138141 assert_eq ! ( res. status( ) , StatusCode :: OK ) ;
139142 }
143+
144+ #[ tokio:: test]
145+ async fn test_empty_label_middleware ( ) {
146+ let middleware = from_fn ( labels_middleware) ;
147+
148+ let handle = move |extensions : Extensions | async move {
149+ let metrics = extensions
150+ . get :: < MetricLabels > ( )
151+ . expect ( "Should decode metric label" ) ;
152+ assert_eq ! (
153+ metrics. get_labels( ) ,
154+ vec![ NO_DEPLOYMENT_ID , NO_ALLOCATION , NO_SENDER ]
155+ ) ;
156+ Body :: empty ( )
157+ } ;
158+
159+ let app = Router :: new ( ) . route ( "/" , get ( handle) ) . layer ( middleware) ;
160+
161+ let res = app
162+ . oneshot ( Request :: builder ( ) . uri ( "/" ) . body ( Body :: empty ( ) ) . unwrap ( ) )
163+ . await
164+ . unwrap ( ) ;
165+ assert_eq ! ( res. status( ) , StatusCode :: OK ) ;
166+ }
140167}
0 commit comments