//! Config operations integration tests. mod common; // ── Config Operations ─────────────────��────────────────────────────── #[tokio::test] async fn config_set_and_get() { let db = common::test_db().await; db.config().set("theme", "dark-mode").await.unwrap(); let value = db.config().get("theme").await.unwrap(); assert_eq!(value, Some("dark-mode".to_string())); } #[tokio::test] async fn config_get_missing_key_returns_none() { let db = common::test_db().await; let value = db.config().get("nonexistent_key").await.unwrap(); assert!(value.is_none()); } #[tokio::test] async fn config_overwrite_semantics() { let db = common::test_db().await; db.config().set("theme", "dark-mode").await.unwrap(); db.config().set("theme", "light-mode").await.unwrap(); let value = db.config().get("theme").await.unwrap(); assert_eq!(value, Some("light-mode".to_string())); } #[tokio::test] async fn config_multiple_keys_independent() { let db = common::test_db().await; db.config().set("theme", "dark").await.unwrap(); db.config().set("language", "en").await.unwrap(); db.config().set("welcome_seen", "true").await.unwrap(); assert_eq!(db.config().get("theme").await.unwrap(), Some("dark".to_string())); assert_eq!(db.config().get("language").await.unwrap(), Some("en".to_string())); assert_eq!(db.config().get("welcome_seen").await.unwrap(), Some("true".to_string())); } #[tokio::test] async fn config_delete() { let db = common::test_db().await; db.config().set("key", "value").await.unwrap(); assert!(db.config().get("key").await.unwrap().is_some()); db.config().delete("key").await.unwrap(); assert!(db.config().get("key").await.unwrap().is_none()); } #[tokio::test] async fn config_empty_value_is_valid() { let db = common::test_db().await; db.config().set("key", "").await.unwrap(); let value = db.config().get("key").await.unwrap(); assert_eq!(value, Some(String::new())); }