fix: config empty values unset, drop adapter from_vars
This commit is contained in:
@@ -1,37 +1,46 @@
|
||||
use super::*;
|
||||
|
||||
fn section(enabled: bool, format: Option<&str>) -> ::config::ImageConversionConfig {
|
||||
::config::ImageConversionConfig {
|
||||
enabled,
|
||||
format: format.map(str::to_owned),
|
||||
}
|
||||
}
|
||||
|
||||
fn convert(enabled: bool, format: Option<&str>) -> anyhow::Result<Option<ConversionConfig>> {
|
||||
ConversionConfig::from_config(§ion(enabled, format))
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn disabled_by_default() {
|
||||
assert!(ConversionConfig::from_vars(None, None).unwrap().is_none());
|
||||
assert!(ConversionConfig::from_vars(Some("false"), None)
|
||||
.unwrap()
|
||||
.is_none());
|
||||
assert!(
|
||||
ConversionConfig::from_config(&::config::ImageConversionConfig::default())
|
||||
.unwrap()
|
||||
.is_none()
|
||||
);
|
||||
assert!(convert(false, Some("webp")).unwrap().is_none());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn enabled_avif() {
|
||||
let cfg = ConversionConfig::from_vars(Some("true"), Some("avif"))
|
||||
.unwrap()
|
||||
.unwrap();
|
||||
let cfg = convert(true, Some("avif")).unwrap().unwrap();
|
||||
assert_eq!(cfg.format, Format::Avif);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn enabled_webp() {
|
||||
let cfg = ConversionConfig::from_vars(Some("true"), Some("webp"))
|
||||
.unwrap()
|
||||
.unwrap();
|
||||
let cfg = convert(true, Some("webp")).unwrap().unwrap();
|
||||
assert_eq!(cfg.format, Format::Webp);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn unknown_format_is_error() {
|
||||
assert!(ConversionConfig::from_vars(Some("true"), Some("gif")).is_err());
|
||||
assert!(convert(true, Some("gif")).is_err());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn missing_format_when_enabled_is_error() {
|
||||
assert!(ConversionConfig::from_vars(Some("true"), None).is_err());
|
||||
assert!(convert(true, None).is_err());
|
||||
}
|
||||
|
||||
#[test]
|
||||
@@ -43,15 +52,3 @@ fn avif_extension() {
|
||||
fn webp_extension() {
|
||||
assert_eq!(Format::Webp.extension(), ".webp");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn from_config_follows_section() {
|
||||
let disabled = ::config::ImageConversionConfig::default();
|
||||
assert!(ConversionConfig::from_config(&disabled).unwrap().is_none());
|
||||
let enabled = ::config::ImageConversionConfig {
|
||||
enabled: true,
|
||||
format: Some("webp".into()),
|
||||
};
|
||||
let cfg = ConversionConfig::from_config(&enabled).unwrap().unwrap();
|
||||
assert_eq!(cfg.format, Format::Webp);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user