diff --git a/crates/cargo-lambda-metadata/src/env.rs b/crates/cargo-lambda-metadata/src/env.rs index 012154df..11262dd9 100644 --- a/crates/cargo-lambda-metadata/src/env.rs +++ b/crates/cargo-lambda-metadata/src/env.rs @@ -72,6 +72,11 @@ pub(crate) fn lambda_environment( for (key, value) in env_variables { env.insert(key, value); } + } else { + return Err(MetadataError::InvalidEnvFile( + path.into(), + std::io::Error::new(std::io::ErrorKind::NotFound, "file not found"), + )); } } @@ -206,4 +211,15 @@ mod test { assert!(!vars.contains_key("IGNORE")); assert!(!vars.contains_key("")); } + + #[test] + fn test_environment_with_missing_file() { + let file = temp_dir().join(".env.nonexistent"); + // Ensure the file doesn't exist + let _ = std::fs::remove_file(&file); + + let result = lambda_environment(None, &Some(file), None); + assert!(result.is_err()); + assert!(matches!(result, Err(MetadataError::InvalidEnvFile(_, _)))); + } }