1+ use backup_client:: {
2+ BackupClient , BackupData , BackupDescriptor , Error as BackupClientError ,
3+ RequestedData ,
4+ } ;
15use bytesize:: ByteSize ;
26use comm_lib:: { auth:: UserIdentity , backup:: LatestBackupIDResponse } ;
37use commtest:: {
4- backup:: {
5- backup_utils:: BackupData ,
6- create_new_backup,
7- pull_backup:: { self , BackupDescriptor , RequestedData } ,
8- } ,
98 service_addr,
109 tools:: { generate_stable_nbytes, Error } ,
1110} ;
1211use reqwest:: StatusCode ;
1312
1413#[ tokio:: test]
1514async fn backup_integration_test ( ) -> Result < ( ) , Error > {
16- let url = reqwest:: Url :: try_from ( service_addr:: BACKUP_SERVICE_HTTP )
17- . expect ( "failed to parse backup service url" ) ;
15+ let backup_client = BackupClient :: new ( service_addr:: BACKUP_SERVICE_HTTP ) ?;
1816
1917 let backup_datas = [
2018 BackupData {
2119 backup_id : "b1" . to_string ( ) ,
22- user_keys_hash : "kh1" . to_string ( ) ,
2320 user_keys : generate_stable_nbytes (
2421 ByteSize :: kib ( 4 ) . as_u64 ( ) as usize ,
2522 Some ( b'a' ) ,
2623 ) ,
27- user_data_hash : "dh1" . to_string ( ) ,
2824 user_data : generate_stable_nbytes (
2925 ByteSize :: mib ( 4 ) . as_u64 ( ) as usize ,
3026 Some ( b'A' ) ,
@@ -33,12 +29,10 @@ async fn backup_integration_test() -> Result<(), Error> {
3329 } ,
3430 BackupData {
3531 backup_id : "b2" . to_string ( ) ,
36- user_keys_hash : "kh2" . to_string ( ) ,
3732 user_keys : generate_stable_nbytes (
3833 ByteSize :: kib ( 4 ) . as_u64 ( ) as usize ,
3934 Some ( b'b' ) ,
4035 ) ,
41- user_data_hash : "dh2" . to_string ( ) ,
4236 user_data : generate_stable_nbytes (
4337 ByteSize :: mib ( 4 ) . as_u64 ( ) as usize ,
4438 Some ( b'B' ) ,
@@ -53,29 +47,27 @@ async fn backup_integration_test() -> Result<(), Error> {
5347 device_id : "dummy device_id" . to_string ( ) ,
5448 } ;
5549
56- create_new_backup:: run ( url. clone ( ) , & user_identity, & backup_datas[ 0 ] ) . await ?;
57- create_new_backup:: run ( url. clone ( ) , & user_identity, & backup_datas[ 1 ] ) . await ?;
50+ backup_client
51+ . upload_backup ( & user_identity, backup_datas[ 0 ] . clone ( ) )
52+ . await ?;
53+ backup_client
54+ . upload_backup ( & user_identity, backup_datas[ 1 ] . clone ( ) )
55+ . await ?;
5856
5957 // Test direct lookup
6058 let second_backup_descriptor = BackupDescriptor :: BackupID {
6159 backup_id : backup_datas[ 1 ] . backup_id . clone ( ) ,
6260 user_identity : user_identity. clone ( ) ,
6361 } ;
6462
65- let user_keys = pull_backup:: run (
66- url. clone ( ) ,
67- second_backup_descriptor. clone ( ) ,
68- RequestedData :: UserKeys ,
69- )
70- . await ?;
63+ let user_keys = backup_client
64+ . download_backup_data ( & second_backup_descriptor, RequestedData :: UserKeys )
65+ . await ?;
7166 assert_eq ! ( user_keys, backup_datas[ 1 ] . user_keys) ;
7267
73- let user_data = pull_backup:: run (
74- url. clone ( ) ,
75- second_backup_descriptor. clone ( ) ,
76- RequestedData :: UserData ,
77- )
78- . await ?;
68+ let user_data = backup_client
69+ . download_backup_data ( & second_backup_descriptor, RequestedData :: UserData )
70+ . await ?;
7971 assert_eq ! ( user_data, backup_datas[ 1 ] . user_data) ;
8072
8173 // Test latest backup lookup
@@ -84,22 +76,16 @@ async fn backup_integration_test() -> Result<(), Error> {
8476 username : "1" . to_string ( ) ,
8577 } ;
8678
87- let backup_id_response = pull_backup:: run (
88- url. clone ( ) ,
89- latest_backup_descriptor. clone ( ) ,
90- RequestedData :: BackupID ,
91- )
92- . await ?;
79+ let backup_id_response = backup_client
80+ . download_backup_data ( & latest_backup_descriptor, RequestedData :: BackupID )
81+ . await ?;
9382 let response: LatestBackupIDResponse =
9483 serde_json:: from_slice ( & backup_id_response) ?;
9584 assert_eq ! ( response. backup_id, backup_datas[ 1 ] . backup_id) ;
9685
97- let user_keys = pull_backup:: run (
98- url. clone ( ) ,
99- latest_backup_descriptor. clone ( ) ,
100- RequestedData :: UserKeys ,
101- )
102- . await ?;
86+ let user_keys = backup_client
87+ . download_backup_data ( & latest_backup_descriptor, RequestedData :: UserKeys )
88+ . await ?;
10389 assert_eq ! ( user_keys, backup_datas[ 1 ] . user_keys) ;
10490
10591 // Test cleanup
@@ -108,15 +94,18 @@ async fn backup_integration_test() -> Result<(), Error> {
10894 user_identity : user_identity. clone ( ) ,
10995 } ;
11096
111- let response = pull_backup:: run (
112- url. clone ( ) ,
113- first_backup_descriptor. clone ( ) ,
114- RequestedData :: UserKeys ,
115- )
116- . await ;
117- assert ! (
118- matches!( response, Err ( Error :: HttpStatus ( StatusCode :: NOT_FOUND ) ) ) ,
119- "First backup should have been removed, instead got response: {response:?}"
97+ let response = backup_client
98+ . download_backup_data ( & first_backup_descriptor, RequestedData :: UserKeys )
99+ . await ;
100+
101+ let Err ( BackupClientError :: ReqwestError ( error) ) = response else {
102+ panic ! ( "First backup should have been removed, instead got response: {response:?}" ) ;
103+ } ;
104+
105+ assert_eq ! (
106+ error. status( ) ,
107+ Some ( StatusCode :: NOT_FOUND ) ,
108+ "Expected status 'not found'"
120109 ) ;
121110
122111 Ok ( ( ) )
0 commit comments