Files
endorphin-aster-vm/crates/aster-storage/tests/postgres.rs
T
codex-bot 9648b9e8dd
Verify databases and deploy Aster VM / verify-and-deploy (push) Waiting to run
Initialize Aster VM and deploy PostgreSQL host on ces-control
2026-10-17 23:42:39 +08:00

36 lines
1.3 KiB
Rust

use aster_storage::{Storage, StorageConfig};
/// Run explicitly against a disposable database; never silently skip a missing URL.
#[tokio::test]
#[ignore = "requires ASTER_TEST_POSTGRES_URL pointing to a test PostgreSQL database"]
async fn postgres_roundtrip_and_reconnect() {
let url = std::env::var("ASTER_TEST_POSTGRES_URL")
.expect("set ASTER_TEST_POSTGRES_URL to a disposable PostgreSQL database");
let config = StorageConfig::from_values(Some(&url), None).unwrap();
let store = Storage::connect(&config).await.unwrap();
assert_eq!(store.backend_name(), "postgresql");
store.ping().await.unwrap();
let key = format!(
"test.{}.{}",
std::process::id(),
std::time::SystemTime::now()
.duration_since(std::time::UNIX_EPOCH)
.unwrap()
.as_nanos()
);
assert_eq!(store.get(&key).await.unwrap(), None);
store.put(&key, "你好 ' ; $1").await.unwrap();
assert_eq!(
store.get(&key).await.unwrap().as_deref(),
Some("你好 ' ; $1")
);
store.put(&key, "updated").await.unwrap();
store.close().await;
let reopened = Storage::connect(&config).await.unwrap();
assert_eq!(
reopened.get(&key).await.unwrap().as_deref(),
Some("updated")
);
reopened.close().await;
}