#![allow(unused_imports)]
use super::status_convergence::*;
use super::status_fleet_detail::*;
use super::status_insights::*;
use super::status_intelligence_ext::*;
use super::status_operational::*;
use super::status_predictive::*;
#[cfg(test)]
mod tests {
use super::*;
fn write_yaml(dir: &std::path::Path, name: &str, content: &str) {
let p = dir.join(name);
if let Some(parent) = p.parent() {
std::fs::create_dir_all(parent).unwrap();
}
std::fs::write(&p, content).unwrap();
}
fn state_lock() -> &'static str {
"schema: \"1.0\"\nmachine: web\nhostname: web\ngenerated_at: \"2026-02-28T00:00:00Z\"\ngenerator: forjar\nblake3_version: \"1.8\"\nresources:\n f:\n type: file\n status: converged\n hash: \"blake3:abc\"\n applied_at: \"2026-02-28T00:00:00Z\"\n duration_seconds: 1.5\n g:\n type: service\n status: drifted\n hash: \"blake3:def\"\n duration_seconds: 2.0\n h:\n type: package\n status: failed\n hash: \"blake3:ghi\"\n duration_seconds: 0.5\n"
}
fn state_lock_converged() -> &'static str {
"schema: \"1.0\"\nmachine: web\nhostname: web\ngenerated_at: \"2026-02-28T00:00:00Z\"\ngenerator: forjar\nblake3_version: \"1.8\"\nresources:\n f:\n type: file\n status: converged\n hash: \"blake3:abc\"\n g:\n type: service\n status: converged\n hash: \"blake3:def\"\n"
}
fn make_dir() -> tempfile::TempDir {
let dir = tempfile::tempdir().unwrap();
for m in &["web", "db"] {
write_yaml(dir.path(), &format!("{m}/state.lock.yaml"), state_lock());
write_yaml(dir.path(), &format!("{m}/state.lock.yaml"), state_lock());
}
dir
}
fn make_empty_dir() -> tempfile::TempDir {
tempfile::tempdir().unwrap()
}
#[test]
fn recovery_rate_empty() {
let d = make_empty_dir();
assert!(cmd_status_machine_resource_recovery_rate(d.path(), None, false).is_ok());
}
#[test]
fn recovery_rate_data() {
let d = make_dir();
assert!(cmd_status_machine_resource_recovery_rate(d.path(), Some("web"), false).is_ok());
}
#[test]
fn recovery_rate_json() {
let d = make_dir();
assert!(cmd_status_machine_resource_recovery_rate(d.path(), None, true).is_ok());
}
#[test]
fn drift_velocity_empty() {
let d = make_empty_dir();
assert!(cmd_status_machine_resource_drift_velocity(d.path(), None, false).is_ok());
}
#[test]
fn drift_velocity_data() {
let d = make_dir();
assert!(cmd_status_machine_resource_drift_velocity(d.path(), Some("web"), false).is_ok());
}
#[test]
fn drift_velocity_json() {
let d = make_dir();
assert!(cmd_status_machine_resource_drift_velocity(d.path(), None, true).is_ok());
}
#[test]
fn fleet_recovery_rate_empty() {
let d = make_empty_dir();
assert!(cmd_status_fleet_resource_recovery_rate(d.path(), None, false).is_ok());
}
#[test]
fn fleet_recovery_rate_data() {
let d = make_dir();
assert!(cmd_status_fleet_resource_recovery_rate(d.path(), Some("web"), false).is_ok());
}
#[test]
fn fleet_recovery_rate_json() {
let d = make_dir();
assert!(cmd_status_fleet_resource_recovery_rate(d.path(), None, true).is_ok());
}
#[test]
fn convergence_efficiency_empty() {
let d = make_empty_dir();
assert!(cmd_status_machine_resource_convergence_efficiency(d.path(), None, false).is_ok());
}
#[test]
fn convergence_efficiency_data() {
let d = make_dir();
assert!(
cmd_status_machine_resource_convergence_efficiency(d.path(), Some("web"), false)
.is_ok()
);
}
#[test]
fn convergence_efficiency_json() {
let d = make_dir();
assert!(cmd_status_machine_resource_convergence_efficiency(d.path(), None, true).is_ok());
}
#[test]
fn apply_frequency_empty() {
let d = make_empty_dir();
assert!(cmd_status_machine_resource_apply_frequency(d.path(), None, false).is_ok());
}
#[test]
fn apply_frequency_data() {
let d = make_dir();
assert!(cmd_status_machine_resource_apply_frequency(d.path(), Some("web"), false).is_ok());
}
#[test]
fn apply_frequency_json() {
let d = make_dir();
assert!(cmd_status_machine_resource_apply_frequency(d.path(), None, true).is_ok());
}
#[test]
fn fleet_health_score_empty() {
let d = make_empty_dir();
assert!(cmd_status_fleet_resource_health_score(d.path(), None, false).is_ok());
}
#[test]
fn fleet_health_score_data() {
let d = make_dir();
assert!(cmd_status_fleet_resource_health_score(d.path(), Some("web"), false).is_ok());
}
#[test]
fn fleet_health_score_json() {
let d = make_dir();
assert!(cmd_status_fleet_resource_health_score(d.path(), None, true).is_ok());
}
#[test]
fn staleness_index_empty() {
let d = make_empty_dir();
assert!(cmd_status_machine_resource_staleness_index(d.path(), None, false).is_ok());
}
#[test]
fn staleness_index_data() {
let d = make_dir();
assert!(cmd_status_machine_resource_staleness_index(d.path(), Some("web"), false).is_ok());
}
#[test]
fn staleness_index_json() {
let d = make_dir();
assert!(cmd_status_machine_resource_staleness_index(d.path(), None, true).is_ok());
}
#[test]
fn filter_targets_none() {
let machines = vec!["web".to_string(), "db".to_string()];
let targets = filter_targets(&machines, None);
assert_eq!(targets.len(), 2);
}
#[test]
fn filter_targets_some() {
let machines = vec!["web".to_string(), "db".to_string()];
let targets = filter_targets(&machines, Some("web"));
assert_eq!(targets.len(), 1);
assert_eq!(targets[0], "web");
}
#[test]
fn filter_targets_miss() {
let machines = vec!["web".to_string(), "db".to_string()];
let targets = filter_targets(&machines, Some("missing"));
assert!(targets.is_empty());
}
#[test]
fn convergence_rate_empty() {
let d = make_empty_dir();
assert!(cmd_status_convergence_rate(d.path(), None, false).is_ok());
}
#[test]
fn convergence_rate_data() {
let d = make_dir();
assert!(cmd_status_convergence_rate(d.path(), Some("web"), false).is_ok());
}
#[test]
fn convergence_rate_json() {
let d = make_dir();
assert!(cmd_status_convergence_rate(d.path(), None, true).is_ok());
}
#[test]
fn convergence_time_empty() {
let d = make_empty_dir();
assert!(cmd_status_convergence_time(d.path(), None, false).is_ok());
}
#[test]
fn convergence_time_data() {
let d = make_dir();
assert!(cmd_status_convergence_time(d.path(), Some("web"), false).is_ok());
}
#[test]
fn convergence_time_json() {
let d = make_dir();
assert!(cmd_status_convergence_time(d.path(), None, true).is_ok());
}
#[test]
fn convergence_history_empty() {
let d = make_empty_dir();
assert!(cmd_status_convergence_history(d.path(), None, false).is_ok());
}
#[test]
fn convergence_history_data() {
let d = make_dir();
assert!(cmd_status_convergence_history(d.path(), Some("web"), false).is_ok());
}
#[test]
fn convergence_history_json() {
let d = make_dir();
assert!(cmd_status_convergence_history(d.path(), None, true).is_ok());
}
#[test]
fn timeline_empty() {
let d = make_empty_dir();
assert!(cmd_status_timeline(d.path(), None, false).is_ok());
}
#[test]
fn timeline_data() {
let d = make_dir();
assert!(cmd_status_timeline(d.path(), Some("web"), false).is_ok());
}
#[test]
fn timeline_json() {
let d = make_dir();
assert!(cmd_status_timeline(d.path(), None, true).is_ok());
}
#[test]
fn summary_by_machine_empty() {
let d = make_empty_dir();
assert!(cmd_status_summary_by(d.path(), None, "machine", false).is_ok());
}
#[test]
fn summary_by_machine_data() {
let d = make_dir();
assert!(cmd_status_summary_by(d.path(), Some("web"), "machine", false).is_ok());
}
#[test]
fn summary_by_type_json() {
let d = make_dir();
assert!(cmd_status_summary_by(d.path(), None, "type", true).is_ok());
}
#[test]
fn summary_by_status() {
let d = make_dir();
assert!(cmd_status_summary_by(d.path(), None, "status", false).is_ok());
}
#[test]
fn summary_by_invalid() {
let d = make_dir();
let r = cmd_status_summary_by(d.path(), None, "invalid", false);
let _ = r;
}
#[test]
fn since_empty() {
let d = make_empty_dir();
assert!(cmd_status_since(d.path(), None, "1h", false).is_ok());
}
#[test]
fn since_data() {
let d = make_dir();
assert!(cmd_status_since(d.path(), Some("web"), "7d", false).is_ok());
}
#[test]
fn since_json() {
let d = make_dir();
assert!(cmd_status_since(d.path(), None, "24h", true).is_ok());
}
#[test]
fn changes_since_plain() {
let d = make_dir();
let _ = cmd_status_changes_since(d.path(), "HEAD", false);
}
#[test]
fn changes_since_json() {
let d = make_dir();
let _ = cmd_status_changes_since(d.path(), "HEAD", true);
}
fn make_converged_dir() -> tempfile::TempDir {
let dir = tempfile::tempdir().unwrap();
for m in &["web", "db"] {
write_yaml(
dir.path(),
&format!("{m}/state.lock.yaml"),
state_lock_converged(),
);
write_yaml(
dir.path(),
&format!("{m}/state.lock.yaml"),
state_lock_converged(),
);
}
dir
}
#[test]
fn fleet_conv_velocity_all_converged() {
let d = make_converged_dir();
assert!(cmd_status_fleet_convergence_velocity(d.path(), None, false).is_ok());
}
#[test]
fn machine_conv_trend_all_converged() {
let d = make_converged_dir();
assert!(cmd_status_machine_convergence_trend(d.path(), None, true).is_ok());
}
#[test]
fn convergence_score_all_converged() {
let d = make_converged_dir();
assert!(cmd_status_convergence_score(d.path(), true).is_ok());
}
#[test]
fn fleet_health_summary_all_converged() {
let d = make_converged_dir();
assert!(cmd_status_fleet_health_summary(d.path(), true).is_ok());
}
#[test]
fn fleet_health_score_all_converged() {
let d = make_converged_dir();
assert!(cmd_status_fleet_resource_health_score(d.path(), None, true).is_ok());
}
#[test]
fn convergence_rate_all_converged() {
let d = make_converged_dir();
assert!(cmd_status_convergence_rate(d.path(), None, true).is_ok());
}
}