lesavka/server/src/capture_power.rs

52 lines
1.5 KiB
Rust

// Capture power lease manager for keeping remote capture devices awake only when needed.
#[cfg(coverage)]
use lesavka_common::lesavka::CapturePowerState;
#[cfg(not(coverage))]
include!("capture_power/lease_manager.rs");
include!("capture_power/systemd_units.rs");
#[cfg(all(test, coverage))]
mod tests {
use super::*;
#[tokio::test]
async fn coverage_stub_supports_preview_and_session_leases() {
let manager = CapturePowerManager::new();
let _preview = manager.acquire().await;
let _session = manager.acquire_session().await;
}
#[tokio::test]
async fn coverage_stub_reports_auto_snapshot() {
let state = CapturePowerManager::new()
.snapshot()
.await
.expect("snapshot");
assert!(state.available);
assert!(!state.enabled);
assert_eq!(state.mode, "auto");
}
#[tokio::test]
async fn coverage_stub_toggles_manual_modes() {
let manager = CapturePowerManager::new();
let on = manager.set_manual(true).await.expect("on");
assert!(on.enabled);
assert_eq!(on.mode, "forced-on");
let off = manager.set_manual(false).await.expect("off");
assert!(!off.enabled);
assert_eq!(off.mode, "forced-off");
}
#[tokio::test]
async fn coverage_stub_returns_to_auto_mode() {
let manager = CapturePowerManager::new();
let state = manager.set_auto().await.expect("auto");
assert!(state.available);
assert!(!state.enabled);
assert_eq!(state.mode, "auto");
}
}