//! Basic integration test to verify library setup
//!
//! This test ensures that:
//! - The library compiles
//! - Basic exports are available
//! - Common utilities work

mod common;

use mecha10_cli::{Cli, CliContext, Commands};

#[test]
fn test_cli_context_creation() {
    // Should be able to create a default context
    let ctx = CliContext::default();
    assert!(ctx.working_dir.exists());
}

#[test]
fn test_lib_exports() {
    // Verify that key types are exported from the library
    // This test will compile if exports are correct

    // Types should be available
    let _cli_type: Option<Cli> = None;
    let _commands_type: Option<Commands> = None;
    let _ctx_type: Option<CliContext> = None;
}

#[test]
fn test_service_exports() {
    use mecha10_cli::services::{ConfigService, RedisService};

    // Verify services are exported and accessible
    let _redis_type: Option<RedisService> = None;

    // ConfigService is a ZST (zero-sized type) with only static methods
    // Just verify it's accessible
    let _ = ConfigService::default_config_paths();
}

#[test]
fn test_test_fixtures() {
    // Verify test utilities work
    let project = common::TestProject::new().unwrap();
    assert!(project.root.exists());

    project.create_file("test.txt", "content").unwrap();
    assert!(project.file_exists("test.txt"));
}
