forjar 1.4.2

Rust-native Infrastructure as Code — bare-metal first, BLAKE3 state, provenance tracing
Documentation
//! Tests: Core status command.

#![allow(unused_imports)]
use super::commands::*;
use super::helpers::*;
use super::helpers_state::*;
use super::helpers_time::*;
use super::status_alerts::*;
use super::status_compliance::*;
use super::status_convergence::*;
use super::status_core::*;
use super::status_drift::*;
use super::status_failures::*;
use super::status_fleet::*;
use super::status_observability::*;
use super::status_resource_detail::*;
use super::status_resources::*;
use super::status_trends::*;
use crate::core::types::ProvenanceEvent;
use crate::core::{codegen, executor, migrate, parser, planner, resolver, secrets, state, types};
use crate::transport;
use crate::tripwire::{anomaly, drift, eventlog, tracer};
use std::path::{Path, PathBuf};

#[cfg(test)]
mod tests {
    use super::*;

    // ── Phase 48 Tests: FJ-620→FJ-627 Workflow Automation & Pipelines ──

    #[test]
    fn test_fj622_status_pipeline_status() {
        let dir = tempfile::tempdir().unwrap();
        let result = cmd_status_pipeline_status(dir.path(), None, false);
        assert!(result.is_ok());
    }

    #[test]
    fn test_fj627_status_resource_dependencies() {
        let dir = tempfile::tempdir().unwrap();
        let result = cmd_status_resource_dependencies(dir.path(), None, false);
        assert!(result.is_ok());
    }

    // ── Phase 49 Tests: FJ-630→FJ-637 Advanced Diagnostics & Debugging ──

    #[test]
    fn test_fj632_status_diagnostic() {
        let dir = tempfile::tempdir().unwrap();
        let result = cmd_status_diagnostic(dir.path(), None, false);
        assert!(result.is_ok());
    }

    #[test]
    fn test_fj632_status_diagnostic_json() {
        let dir = tempfile::tempdir().unwrap();
        let result = cmd_status_diagnostic(dir.path(), None, true);
        assert!(result.is_ok());
    }

    #[test]
    fn test_fj642_status_uptime() {
        let dir = tempfile::tempdir().unwrap();
        let result = cmd_status_uptime(dir.path(), None, false);
        assert!(result.is_ok());
    }

    #[test]
    fn test_fj642_status_uptime_json() {
        let dir = tempfile::tempdir().unwrap();
        let result = cmd_status_uptime(dir.path(), None, true);
        assert!(result.is_ok());
    }

    #[test]
    fn test_fj647_status_recommendations() {
        let dir = tempfile::tempdir().unwrap();
        let result = cmd_status_recommendations(dir.path(), None, true);
        assert!(result.is_ok());
    }

    #[test]
    fn test_fj652_status_convergence_rate() {
        let dir = tempfile::tempdir().unwrap();
        let result = cmd_status_convergence_rate(dir.path(), None, false);
        assert!(result.is_ok());
    }

    #[test]
    fn test_fj652_status_convergence_rate_json() {
        let dir = tempfile::tempdir().unwrap();
        let result = cmd_status_convergence_rate(dir.path(), None, true);
        assert!(result.is_ok());
    }

    #[test]
    fn test_fj657_status_machine_summary() {
        let dir = tempfile::tempdir().unwrap();
        let result = cmd_status_machine_summary(dir.path(), None, false);
        assert!(result.is_ok());
    }

    #[test]
    fn test_fj657_status_machine_summary_json() {
        let dir = tempfile::tempdir().unwrap();
        let result = cmd_status_machine_summary(dir.path(), None, true);
        assert!(result.is_ok());
    }

    #[test]
    fn test_fj662_status_change_frequency() {
        let dir = tempfile::tempdir().unwrap();
        let result = cmd_status_change_frequency(dir.path(), None, false);
        assert!(result.is_ok());
    }

    #[test]
    fn test_fj662_status_change_frequency_json() {
        let dir = tempfile::tempdir().unwrap();
        let result = cmd_status_change_frequency(dir.path(), None, true);
        assert!(result.is_ok());
    }

    #[test]
    fn test_fj667_status_lock_age() {
        let dir = tempfile::tempdir().unwrap();
        let result = cmd_status_lock_age(dir.path(), None, false);
        assert!(result.is_ok());
    }

    #[test]
    fn test_fj667_status_lock_age_json() {
        let dir = tempfile::tempdir().unwrap();
        let result = cmd_status_lock_age(dir.path(), None, true);
        assert!(result.is_ok());
    }

    #[test]
    fn test_fj672_status_failed_since() {
        let dir = tempfile::tempdir().unwrap();
        let result = cmd_status_failed_since(dir.path(), None, "2024-01-01", false);
        assert!(result.is_ok());
    }

    #[test]
    fn test_fj677_status_hash_verify() {
        let dir = tempfile::tempdir().unwrap();
        let result = cmd_status_hash_verify(dir.path(), None, true);
        assert!(result.is_ok());
    }

    // ── Phase 54 tests (FJ-680 → FJ-687) ──────────────────────────

    #[test]
    fn test_fj682_status_resource_size() {
        let dir = tempfile::tempdir().unwrap();
        let result = cmd_status_resource_size(dir.path(), None, false);
        assert!(result.is_ok());
    }

    #[test]
    fn test_fj687_status_drift_details_all() {
        let dir = tempfile::tempdir().unwrap();
        let result = cmd_status_drift_details_all(dir.path(), false);
        assert!(result.is_ok());
    }

    // ── Phase 55 tests (FJ-690 → FJ-697) ──────────────────────────

    #[test]
    fn test_fj692_status_last_apply_duration() {
        let dir = tempfile::tempdir().unwrap();
        let result = cmd_status_last_apply_duration(dir.path(), None, false);
        assert!(result.is_ok());
    }

    #[test]
    fn test_fj697_status_config_hash() {
        let dir = tempfile::tempdir().unwrap();
        let result = cmd_status_config_hash(dir.path(), None, false);
        assert!(result.is_ok());
    }

    #[test]
    fn test_fj697_status_config_hash_json() {
        let dir = tempfile::tempdir().unwrap();
        let result = cmd_status_config_hash(dir.path(), None, true);
        assert!(result.is_ok());
    }

    // ── Phase 56 tests (FJ-700 → FJ-707) ──────────────────────────

    #[test]
    fn test_fj707_status_convergence_history() {
        let dir = tempfile::tempdir().unwrap();
        let result = cmd_status_convergence_history(dir.path(), None, false);
        assert!(result.is_ok());
    }

    #[test]
    fn test_fj707_status_convergence_history_json() {
        let dir = tempfile::tempdir().unwrap();
        let result = cmd_status_convergence_history(dir.path(), None, true);
        assert!(result.is_ok());
    }

    // ── Phase 57 tests (FJ-710 → FJ-717) ──────────────────────────

    #[test]
    fn test_fj712_status_resource_inputs() {
        let dir = tempfile::tempdir().unwrap();
        let result = cmd_status_resource_inputs(dir.path(), None, false);
        assert!(result.is_ok());
    }

    #[test]
    fn test_fj717_status_drift_trend() {
        let dir = tempfile::tempdir().unwrap();
        let result = cmd_status_drift_trend(dir.path(), None, false);
        assert!(result.is_ok());
    }

    #[test]
    fn test_fj717_status_drift_trend_json() {
        let dir = tempfile::tempdir().unwrap();
        let result = cmd_status_drift_trend(dir.path(), None, true);
        assert!(result.is_ok());
    }

    // ── Phase 58 tests (FJ-720 → FJ-727) ──────────────────────────

    #[test]
    fn test_fj722_status_failed_resources() {
        let dir = tempfile::tempdir().unwrap();
        let result = cmd_status_failed_resources(dir.path(), None, false);
        assert!(result.is_ok());
    }

    #[test]
    fn test_fj727_status_resource_types_summary() {
        let dir = tempfile::tempdir().unwrap();
        let result = cmd_status_resource_types_summary(dir.path(), None, false);
        assert!(result.is_ok());
    }

    #[test]
    fn test_fj727_status_resource_types_summary_json() {
        let dir = tempfile::tempdir().unwrap();
        let result = cmd_status_resource_types_summary(dir.path(), None, true);
        assert!(result.is_ok());
    }
}