diff --git a/src/quirks.rs b/src/quirks.rs index 1ca4a98..070f2fb 100644 --- a/src/quirks.rs +++ b/src/quirks.rs @@ -75,8 +75,10 @@ pub fn get_package_quirks<'a>( /// # Returns /// * `Vec` - List of extra dependencies, or empty vector if none pub fn get_deb_extra_dependencies(package: &str) -> Vec { - if let Some(quirks) = &get_package_quirks(&QUIRKS_DATA, package).unwrap().deb { - return quirks.extra_dependencies.clone(); + if let Some(quirks) = get_package_quirks(&QUIRKS_DATA, package) + && let Some(deb_quirks) = &quirks.deb + { + return deb_quirks.extra_dependencies.clone(); } Vec::new() @@ -109,3 +111,16 @@ pub fn get_package_directories(package: &str) -> Vec { Vec::new() } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_unknown_package_has_no_quirks() { + // A package absent from quirks.yml (currently every package) has no + // extra dependencies nor custom directories, and must not panic + assert!(get_deb_extra_dependencies("not-in-quirks").is_empty()); + assert!(get_package_directories("not-in-quirks").is_empty()); + } +}