#![cfg(feature = "cookies")]
use crate::codecs::errors::{CodecOperation, CodecsError};
use crate::errors::Error;
impl From<crate::cookie_template::CookieTemplateBuilderError> for Error {
fn from(err: crate::cookie_template::CookieTemplateBuilderError) -> Self {
Error::Codecs(CodecsError::codec_with_format(
CodecOperation::Encode,
format!("Invalid cookie template configuration: {}", err),
Some("cookie::CookieBuilder".to_string()),
Some("Invalid cookie settings".to_string()),
))
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::errors_core::UserFriendlyError;
#[test]
fn cookie_template_error_maps_to_codec_error() {
let builder_err = crate::cookie_template::CookieTemplateBuilderError::InsecureNoneSameSite;
let mapped = Error::from(builder_err);
match mapped {
Error::Codecs(c) => {
assert!(c.developer_message().contains("Invalid cookie template"));
assert_eq!(
c.severity(),
webgates_core::errors_core::ErrorSeverity::Error
);
}
_ => panic!("expected codec error"),
}
}
}