//! CLI error handling tests use anyhow::Result; #[test] fn test_missing_feature_error() -> Result<()> { let temp_project = crate::create_test_project()?; let _project_root = temp_project.path(); // Test adding non-existent feature // Should return appropriate error message Ok(()) } #[test] fn test_circular_dependency_error() -> Result<()> { let temp_project = crate::create_test_project()?; let project_root = temp_project.path(); // Create circular dependency features let feature_a = crate::helpers::TestFeatureBuilder::new("circular-a") .with_dependency("circular-b"); feature_a.create_in_project(project_root)?; let feature_b = crate::helpers::TestFeatureBuilder::new("circular-b") .with_dependency("circular-a"); feature_b.create_in_project(project_root)?; // Test that adding circular-a returns circular dependency error Ok(()) } #[test] fn test_invalid_manifest_error() -> Result<()> { let temp_project = crate::create_test_project()?; let project_root = temp_project.path(); // Create feature with invalid manifest let feature_dir = project_root.join("features/invalid-feature"); std::fs::create_dir_all(&feature_dir)?; std::fs::write(feature_dir.join("feature.toml"), "invalid toml content ["); // Test that loading feature returns parsing error Ok(()) } #[test] fn test_permission_error_handling() -> Result<()> { // Test handling of file system permission errors // This would test scenarios where files can't be written Ok(()) }