// File: tests/sdk_tests.rs // Unit tests for SDK detection and verification use weevil::sdk::ftc; use std::path::PathBuf; use tempfile::TempDir; use std::fs; #[test] fn test_ftc_sdk_verification_missing() { let temp_dir = TempDir::new().unwrap(); let result = ftc::verify(temp_dir.path()); assert!(result.is_err()); } #[test] fn test_ftc_sdk_verification_with_structure() { let temp_dir = TempDir::new().unwrap(); // Create minimal FTC SDK structure fs::create_dir_all(temp_dir.path().join("TeamCode/src/main/java")).unwrap(); fs::create_dir_all(temp_dir.path().join("FtcRobotController")).unwrap(); fs::write(temp_dir.path().join("build.gradle"), "// test").unwrap(); let result = ftc::verify(temp_dir.path()); assert!(result.is_ok()); } #[test] fn test_get_version_from_file() { let temp_dir = TempDir::new().unwrap(); // Create version file fs::write(temp_dir.path().join(".version"), "v10.1.1\n").unwrap(); let version = ftc::get_version(temp_dir.path()).unwrap(); assert_eq!(version, "v10.1.1"); } #[test] fn test_get_version_from_git_tag() { // This test requires a real git repo, so we'll skip it in unit tests // It's covered in integration tests instead } #[test] fn test_get_version_missing() { let temp_dir = TempDir::new().unwrap(); let result = ftc::get_version(temp_dir.path()); assert!(result.is_err()); }