vibe-tests 0.0.1

Integration test framework for MCP servers with LLM-powered tool calling.
Documentation
//! Test engine runtime state.
//! Manages temp directory, child processes, and timing.

use std::collections::HashMap;
use std::time::Instant;
use tempfile::TempDir;

use crate::base::tee_writer::TeeWriter;
use crate::docker::compose::Compose;
use crate::mcp::runner::Runner;

/// Runtime state for the test engine.
/// Created once, cleaned up on drop.
pub struct EngineState {
    /// Whether init() has been called.
    pub initialized: bool,
    /// Isolated home directory (auto-cleaned on drop).
    pub home: TempDir,
    /// Tee writer: duplicates child process output to log file and terminal.
    pub tee: TeeWriter,
    /// Docker compose instance (auto-down on drop).
    pub compose: Option<Compose>,
    /// MCP runner (kills child processes on drop).
    pub runner: Option<Runner>,
    /// Data from on_start, passed to on_stop.
    pub start_data: Option<Option<HashMap<String, String>>>,
    /// Wall-clock timestamp when the engine was built.
    pub start_time: Instant,
}