mecha10-cli 0.9.0

Mecha10 CLI tool
Documentation
//! Tests for DevService

use mecha10_cli::services::dev::DevService;
use std::net::TcpListener;

#[test]
fn test_service_creation() {
    let service = DevService::new("redis://test:6379".to_string());
    assert_eq!(service.redis_url, "redis://test:6379");
}

#[test]
fn test_default_service() {
    let service = DevService::default();
    assert_eq!(service.redis_url, "redis://localhost:6379");
}

#[test]
fn test_is_port_available() {
    let service = DevService::default();

    let _listener = TcpListener::bind(("127.0.0.1", 0)).unwrap();
    let port = _listener.local_addr().unwrap().port();

    assert!(!service.is_port_available(port).unwrap());
    assert!(service.is_port_in_use(port).unwrap());
}

#[test]
fn test_get_default_env_vars() {
    let service = DevService::new("redis://custom:6379".to_string());
    let env = service.get_default_env_vars();

    assert_eq!(env.get("REDIS_URL"), Some(&"redis://custom:6379".to_string()));
    assert_eq!(env.get("RUST_LOG"), Some(&"info".to_string()));
}