#![allow(clippy::unwrap_used, clippy::expect_used, clippy::panic, clippy::needless_raw_string_hashes, clippy::duration_suboptimal_units, clippy::branches_sharing_code, clippy::used_underscore_binding, clippy::single_char_pattern, clippy::ignore_without_reason, clippy::cloned_ref_to_slice_refs, clippy::doc_overindented_list_items, clippy::match_wildcard_for_single_variants, clippy::ignored_unit_patterns, clippy::needless_collect, clippy::unnecessary_map_or, clippy::manual_flatten, clippy::manual_strip, clippy::future_not_send, clippy::unnested_or_patterns, clippy::no_effect_underscore_binding, clippy::literal_string_with_formatting_args)]
use ggen_cli_lib::domain::ai::*;

#[tokio::test]
async fn test_analyze_code_success() {
    let result = analyze_code("fn main() {}").await;
    assert!(result.is_ok());
    assert!(result.unwrap().contains("characters"));
}

#[tokio::test]
async fn test_analyze_code_empty() {
    let result = analyze_code("").await;
    assert!(result.is_err());
}

#[tokio::test]
async fn test_analyze_project_nonexistent() {
    let result = analyze_project(std::path::Path::new("/nonexistent/path")).await;
    assert!(result.is_err());
}
