1- use bitwarden_api_api:: apis:: folders_api;
21use bitwarden_core:: { key_management:: KeyIds , ApiError , MissingFieldError } ;
32use bitwarden_crypto:: { CryptoError , KeyStore } ;
43use bitwarden_error:: bitwarden_error;
@@ -31,7 +30,7 @@ pub enum EditFolderError {
3130
3231pub ( super ) async fn edit_folder < R : Repository < Folder > + ?Sized > (
3332 key_store : & KeyStore < KeyIds > ,
34- api_config : & bitwarden_api_api:: apis:: configuration :: Configuration ,
33+ api_client : & dyn bitwarden_api_api:: apis:: Api ,
3534 repository : & R ,
3635 folder_id : & str ,
3736 request : FolderAddEditRequest ,
@@ -44,7 +43,9 @@ pub(super) async fn edit_folder<R: Repository<Folder> + ?Sized>(
4443
4544 let folder_request = key_store. encrypt ( request) ?;
4645
47- let resp = folders_api:: folders_id_put ( api_config, folder_id, Some ( folder_request) )
46+ let resp = api_client
47+ . folders_api ( )
48+ . folders_id_put ( folder_id, Some ( folder_request) )
4849 . await
4950 . map_err ( ApiError :: from) ?;
5051
@@ -61,15 +62,11 @@ pub(super) async fn edit_folder<R: Repository<Folder> + ?Sized>(
6162
6263#[ cfg( test) ]
6364mod tests {
64- use bitwarden_api_api:: {
65- apis:: configuration:: Configuration ,
66- models:: { FolderRequestModel , FolderResponseModel } ,
67- } ;
65+ use bitwarden_api_api:: models:: FolderResponseModel ;
6866 use bitwarden_core:: key_management:: SymmetricKeyId ;
6967 use bitwarden_crypto:: { PrimitiveEncryptable , SymmetricCryptoKey } ;
70- use bitwarden_test:: { start_api_mock , MemoryRepository } ;
68+ use bitwarden_test:: MemoryRepository ;
7169 use uuid:: uuid;
72- use wiremock:: { matchers, Mock , Request , ResponseTemplate } ;
7370
7471 use super :: * ;
7572
@@ -105,28 +102,27 @@ mod tests {
105102
106103 let folder_id = uuid ! ( "25afb11c-9c95-4db5-8bac-c21cb204a3f1" ) ;
107104
108- let ( _server, api_config) = start_api_mock ( vec ! [ Mock :: given( matchers:: path( format!(
109- "/folders/{}" ,
110- folder_id
111- ) ) )
112- . respond_with( move |req: & Request | {
113- let body: FolderRequestModel = req. body_json( ) . unwrap( ) ;
114- ResponseTemplate :: new( 200 ) . set_body_json( FolderResponseModel {
115- object: Some ( "folder" . to_string( ) ) ,
116- id: Some ( folder_id) ,
117- name: Some ( body. name) ,
118- revision_date: Some ( "2025-01-01T00:00:00Z" . to_string( ) ) ,
119- } )
120- } )
121- . expect( 1 ) ] )
122- . await ;
105+ let mut mock_client = bitwarden_api_api:: apis:: MockApiClient :: new ( ) ;
106+ mock_client
107+ . folders_api_mock
108+ . expect_folders_id_put ( )
109+ . returning ( move |id, req| {
110+ let req = req. unwrap ( ) ;
111+ assert_eq ! ( id, folder_id. to_string( ) ) ;
112+ Ok ( FolderResponseModel {
113+ id : Some ( folder_id) ,
114+ name : Some ( req. name ) ,
115+ revision_date : Some ( "2025-01-01T00:00:00Z" . to_string ( ) ) ,
116+ object : Some ( "folder" . to_string ( ) ) ,
117+ } )
118+ } ) ;
123119
124120 let repository = MemoryRepository :: < Folder > :: default ( ) ;
125121 repository_add_folder ( & repository, & store, folder_id, "old_name" ) . await ;
126122
127123 let result = edit_folder (
128124 & store,
129- & api_config ,
125+ & mock_client ,
130126 & repository,
131127 & folder_id. to_string ( ) ,
132128 FolderAddEditRequest {
@@ -152,10 +148,11 @@ mod tests {
152148
153149 let repository = MemoryRepository :: < Folder > :: default ( ) ;
154150 let folder_id = uuid ! ( "25afb11c-9c95-4db5-8bac-c21cb204a3f1" ) ;
151+ let mock_client = bitwarden_api_api:: apis:: MockApiClient :: new ( ) ;
155152
156153 let result = edit_folder (
157154 & store,
158- & Configuration :: default ( ) ,
155+ & mock_client ,
159156 & repository,
160157 & folder_id. to_string ( ) ,
161158 FolderAddEditRequest {
@@ -182,19 +179,22 @@ mod tests {
182179
183180 let folder_id = uuid ! ( "25afb11c-9c95-4db5-8bac-c21cb204a3f1" ) ;
184181
185- let ( _server, api_config) = start_api_mock ( vec ! [ Mock :: given( matchers:: path( format!(
186- "/folders/{}" ,
187- folder_id
188- ) ) )
189- . respond_with( ResponseTemplate :: new( 500 ) ) ] )
190- . await ;
182+ let mut mock_client = bitwarden_api_api:: apis:: MockApiClient :: new ( ) ;
183+ mock_client
184+ . folders_api_mock
185+ . expect_folders_id_put ( )
186+ . returning ( move |_id, _req| {
187+ Err ( bitwarden_api_api:: apis:: Error :: Io ( std:: io:: Error :: other (
188+ "Mock error" ,
189+ ) ) )
190+ } ) ;
191191
192192 let repository = MemoryRepository :: < Folder > :: default ( ) ;
193193 repository_add_folder ( & repository, & store, folder_id, "old_name" ) . await ;
194194
195195 let result = edit_folder (
196196 & store,
197- & api_config ,
197+ & mock_client ,
198198 & repository,
199199 & folder_id. to_string ( ) ,
200200 FolderAddEditRequest {
0 commit comments