diff --git a/services/commtest/tests/identity_tunnelbroker_tests.rs b/services/commtest/tests/identity_tunnelbroker_tests.rs --- a/services/commtest/tests/identity_tunnelbroker_tests.rs +++ b/services/commtest/tests/identity_tunnelbroker_tests.rs @@ -8,7 +8,7 @@ use grpc_clients::identity::protos::authenticated::{ OutboundKeysForUserRequest, UploadOneTimeKeysRequest, }; -use grpc_clients::identity::{get_auth_client, PlatformMetadata}; +use grpc_clients::identity::{get_auth_client, DeviceType, PlatformMetadata}; use tunnelbroker_messages::RefreshKeyRequest; #[tokio::test] @@ -33,15 +33,14 @@ #[tokio::test] async fn test_refresh_keys_request_upon_depletion() { - let identity_grpc_endpoint = service_addr::IDENTITY_GRPC.to_string(); - let device_info = register_user_device(None, None).await; + // This function registers a device without uploading OTKs + let keyserver = register_user_device(None, Some(DeviceType::Keyserver)).await; - // Request outbound keys, which should trigger identity service to ask for more keys let mut client = get_auth_client( - &identity_grpc_endpoint, - device_info.user_id.clone(), - device_info.device_id, - device_info.access_token, + &service_addr::IDENTITY_GRPC.to_string(), + keyserver.user_id.clone(), + keyserver.device_id.clone(), + keyserver.access_token.clone(), PlatformMetadata::new(PLACEHOLDER_CODE_VERSION, DEVICE_TYPE), ) .await @@ -56,11 +55,12 @@ client.upload_one_time_keys(upload_request).await.unwrap(); + // Request outbound keys, which should trigger identity service to ask for more keys let keyserver_request = OutboundKeysForUserRequest { - user_id: device_info.user_id.clone(), + user_id: keyserver.user_id.clone(), }; - println!("Getting keyserver info for user, {}", device_info.user_id); + println!("Getting keyserver info for user, {}", keyserver.user_id); let _first_reponse = client .get_keyserver_keys(keyserver_request.clone()) .await @@ -69,22 +69,19 @@ .keyserver_info .unwrap(); - // The current threshold is 5, but we only upload two. Should receive request - // from Tunnelbroker to refresh keys - // Create session as a keyserver + // The current threshold is 5, but we only uploaded only two. + // Should receive request from Tunnelbroker to refresh key. - let device_info = register_user_device(None, None).await; - let mut socket = create_socket(&device_info).await.unwrap(); - for _ in 0..2 { - let response = receive_message(&mut socket).await.unwrap(); - let serialized_response: RefreshKeyRequest = - serde_json::from_str(&response).unwrap(); + // Create Tunnelbroker session as a keyserver + let mut socket = create_socket(&keyserver).await.unwrap(); + let response = receive_message(&mut socket).await.unwrap(); + let serialized_response: RefreshKeyRequest = + serde_json::from_str(&response).unwrap(); - let expected_response = RefreshKeyRequest { - device_id: device_info.device_id.to_string(), - number_of_keys: 5, - }; + let expected_response = RefreshKeyRequest { + device_id: keyserver.device_id.to_string(), + number_of_keys: 5, + }; - assert_eq!(serialized_response, expected_response); - } + assert_eq!(serialized_response, expected_response); }