From e5cd13dc4c45767ddaa3e615634de85cf418a4ff Mon Sep 17 00:00:00 2001 From: Martin Vidner Date: Tue, 25 Feb 2025 15:22:42 +0100 Subject: [PATCH] wrap StorageSettings...: unit test --- rust/agama-lib/src/storage/store.rs | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/rust/agama-lib/src/storage/store.rs b/rust/agama-lib/src/storage/store.rs index a276216b68..3ffc4fb997 100644 --- a/rust/agama-lib/src/storage/store.rs +++ b/rust/agama-lib/src/storage/store.rs @@ -80,7 +80,9 @@ mod test { let url = server.url("/api"); let store = storage_store(url); - let settings = store.load().await?; + let opt_settings = store.load().await?; + assert!(opt_settings.is_some()); + let settings = opt_settings.unwrap(); // main assertion assert_eq!(settings.storage.unwrap().get(), r#"{ "some": "stuff" }"#); @@ -91,6 +93,28 @@ mod test { Ok(()) } + #[test] + async fn test_getting_storage_null() -> Result<(), Box> { + let server = MockServer::start(); + let storage_mock = server.mock(|when, then| { + when.method(GET).path("/api/storage/config"); + then.status(200) + .header("content-type", "application/json") + .body("null"); + }); + let url = server.url("/api"); + + let store = storage_store(url); + let opt_settings = store.load().await?; + + // main assertion + assert!(opt_settings.is_none()); + + // Ensure the specified mock was called exactly one time (or fail with a detailed error description). + storage_mock.assert(); + Ok(()) + } + #[test] async fn test_setting_storage_ok() -> Result<(), Box> { let server = MockServer::start();