()
| 233 | |
| 234 | #[tokio::test] |
| 235 | async fn edit_entry() { |
| 236 | let ctx = setup(); |
| 237 | let mut address_book_entry = mock_address_book_entry(); |
| 238 | |
| 239 | ctx.repository |
| 240 | .insert(address_book_entry.to_key(), address_book_entry.clone()); |
| 241 | |
| 242 | let metadata_items = vec![ |
| 243 | MetadataItem { |
| 244 | key: "a".to_string(), |
| 245 | value: "b".to_string(), |
| 246 | }, |
| 247 | MetadataItem { |
| 248 | key: "b".to_string(), |
| 249 | value: "c".to_string(), |
| 250 | }, |
| 251 | ]; |
| 252 | let metadata = Metadata::from(metadata_items.clone()); |
| 253 | let operation = EditAddressBookEntryOperationInput { |
| 254 | address_book_entry_id: address_book_entry.id, |
| 255 | address_owner: Some("test_edit".to_string()), |
| 256 | change_metadata: Some(ChangeMetadata::ReplaceAllBy( |
| 257 | metadata.as_btreemap().to_owned(), |
| 258 | )), |
| 259 | labels: None, |
| 260 | }; |
| 261 | let result = ctx.service.edit_entry(operation).await; |
| 262 | assert!(result.is_ok()); |
| 263 | let updated_entry = result.unwrap(); |
| 264 | address_book_entry.address_owner = "test_edit".to_string(); |
| 265 | address_book_entry.metadata = metadata.clone(); |
| 266 | assert_eq!(updated_entry, address_book_entry); |
| 267 | |
| 268 | let diff_metadata_dto = Metadata::from(vec![ |
| 269 | MetadataDTO { |
| 270 | key: "a".to_string(), |
| 271 | value: "d".to_string(), |
| 272 | }, |
| 273 | MetadataDTO { |
| 274 | key: "c".to_string(), |
| 275 | value: "e".to_string(), |
| 276 | }, |
| 277 | ]); |
| 278 | let new_metadata_dto = Metadata::from(vec![ |
| 279 | MetadataDTO { |
| 280 | key: "a".to_string(), |
| 281 | value: "d".to_string(), |
| 282 | }, |
| 283 | MetadataDTO { |
| 284 | key: "b".to_string(), |
| 285 | value: "c".to_string(), |
| 286 | }, |
| 287 | MetadataDTO { |
| 288 | key: "c".to_string(), |
| 289 | value: "e".to_string(), |
| 290 | }, |
| 291 | ]); |
| 292 |
nothing calls this directly
no test coverage detected