use rsbadges::{Badge, BadgeError, Style};
pub fn all_styles(badge: Badge) -> std::vec::Vec<Style> {
vec![
Style::Flat(badge.clone()),
Style::FlatSquare(badge.clone()),
Style::Plastic(badge.clone()),
Style::ForTheBadge(badge.clone()),
Style::Social(badge),
]
}
#[test]
fn error_color_not_valid() {
let badge = Badge {
label_color: String::from("#t"),
..Badge::default()
};
for style in all_styles(badge) {
match style.generate_svg() {
Err(BadgeError::ColorNotValid(_)) => {}
_ => unreachable!(),
}
}
let badge = Badge {
msg_color: String::from("rgb(300.0)"),
..Badge::default()
};
for style in all_styles(badge) {
match style.generate_svg() {
Err(BadgeError::ColorNotValid(_)) => {}
_ => unreachable!(),
}
}
}
#[test]
fn error_cannot_embed_logo() {
let badge = Badge {
logo: String::from("bad_dir_nothing_here"),
embed_logo: true,
..Badge::default()
};
for style in all_styles(badge) {
match style.generate_svg() {
Err(BadgeError::CannotEmbedLogo(_)) => {}
_ => unreachable!(),
}
}
}