@@ -9,12 +9,14 @@ use std::time::Duration;
99use super :: setup:: WicketdTestContext ;
1010use gateway_messages:: SpPort ;
1111use gateway_test_utils:: setup as gateway_setup;
12+ use http:: StatusCode ;
1213use sled_hardware_types:: Baseboard ;
1314use slog:: { info, warn} ;
1415use wicket:: OutputKind ;
1516use wicket_common:: inventory:: { SpIdentifier , SpType } ;
1617use wicket_common:: rack_setup:: BootstrapSledDescription ;
1718use wicketd_client:: types:: { GetInventoryParams , GetInventoryResponse } ;
19+ use wicketd_client:: Error ;
1820
1921#[ tokio:: test]
2022async fn test_inventory ( ) {
@@ -25,16 +27,13 @@ async fn test_inventory() {
2527
2628 let inventory_fut = async {
2729 loop {
28- println ! ( "HERE" ) ;
2930 let response = wicketd_testctx
3031 . wicketd_client
3132 . get_inventory ( & params)
3233 . await
33- . expect ( "get_inventory succeeded" )
34- . into_inner ( ) ;
35- println ! ( "NOW HERE" ) ;
34+ . map ( |r| r. into_inner ( ) ) ;
3635 match response {
37- GetInventoryResponse :: Response { inventory, .. } => {
36+ Ok ( GetInventoryResponse :: Response { inventory, .. } ) => {
3837 // Ensure that the SP state is populated -- if it's not,
3938 // then the `configured-bootstrap-sleds` command below
4039 // might return an empty list.
@@ -60,7 +59,17 @@ async fn test_inventory() {
6059 ) ;
6160 }
6261 }
63- GetInventoryResponse :: Unavailable => { }
62+ // Successful response, but the MGS inventory isn't available.
63+ Ok ( GetInventoryResponse :: Unavailable ) => { }
64+
65+ // 503 means neither MGS nor transceiver inventory is available.
66+ Err ( Error :: ErrorResponse ( rv) )
67+ if rv. status ( ) == StatusCode :: SERVICE_UNAVAILABLE => { }
68+
69+ // Anything else is unexpected.
70+ Err ( e) => panic ! (
71+ "get_inventory failed with unexpected response: {e:?}"
72+ ) ,
6473 }
6574
6675 // Keep polling wicketd until it receives its first results from MGS.
0 commit comments