use std::path::PathBuf;
use tempfile::TempDir;
use super::manager::ManagedError;
use super::record::ManagedSessionId;
use super::tests::make_manager;
use crate::deliverable::DeliverableId;
#[tokio::test]
async fn set_deliverable_id_persists() {
let dir = TempDir::new().unwrap();
let (mgr, _fake) = make_manager(&dir).await;
let record = mgr
.create(
"task".into(),
Some(PathBuf::from("/tmp/wt")),
None,
None,
None,
None,
)
.await
.expect("create");
let did = DeliverableId::new();
mgr.set_deliverable_id(&record.id, did)
.await
.expect("set_deliverable_id");
let reloaded = mgr.get(&record.id).await.expect("get after set");
assert_eq!(reloaded.deliverable_id, Some(did));
}
#[tokio::test]
async fn set_deliverable_id_missing_session_errors() {
let dir = TempDir::new().unwrap();
let (mgr, _fake) = make_manager(&dir).await;
let unknown_id = ManagedSessionId::new();
let result = mgr
.set_deliverable_id(&unknown_id, DeliverableId::new())
.await;
assert!(
matches!(result, Err(ManagedError::SessionNotFound(_))),
"expected SessionNotFound for a session that does not exist, got {result:?}"
);
}