use super::*;
#[test]
fn a_preference_outranks_a_capability() {
assert_eq!(
depth_of(Some("1"), Some("truecolor")),
Depth::None,
"COLORTERM describes the terminal, NO_COLOR describes the user"
);
}
#[test]
fn no_color_is_presence_not_truth() {
for set_to in ["1", "0", "false", "no", "yes", "anything at all"] {
assert_eq!(
depth_of(Some(set_to), None),
Depth::None,
"NO_COLOR={set_to}"
);
}
assert_eq!(
depth_of(Some(""), Some("truecolor")),
Depth::True,
"an empty value is explicitly not set"
);
assert_eq!(depth_of(None, Some("truecolor")), Depth::True);
}
#[test]
fn colorterm_still_picks_the_fallback_when_colour_is_allowed() {
assert_eq!(depth_of(None, Some("24bit")), Depth::True);
assert_eq!(depth_of(None, Some("truecolor")), Depth::True);
assert_eq!(depth_of(None, None), Depth::Ansi256);
assert_eq!(depth_of(None, Some("8bit")), Depth::Ansi256);
}
#[test]
fn the_signals_that_are_only_colour_get_a_modifier_instead() {
let colourless = |s: Style| s.fg.is_none() && s.bg.is_none();
let sel = Style::default().add_modifier(Modifier::REVERSED);
assert!(colourless(sel) && sel.add_modifier.contains(Modifier::REVERSED));
assert_eq!(
depth_of(None, Some("truecolor")),
Depth::True,
"the coloured branch is the one the palette constants describe"
);
match depth() {
Depth::None => {
assert!(colourless(selected()), "{:?}", selected());
assert!(selected().add_modifier.contains(Modifier::REVERSED));
assert!(border(true).add_modifier.contains(Modifier::BOLD));
assert!(warn().add_modifier.contains(Modifier::BOLD));
assert_eq!(gradient_at(0.5), Color::Reset);
assert_eq!(glow(3), Color::Reset);
assert_eq!(TEXT.color(), Color::Reset);
}
_ => {
assert_eq!(selected().bg, Some(BG_SELECTION.color()));
assert_eq!(border(true).fg, Some(CYAN.color()));
assert_ne!(TEXT.color(), Color::Reset);
}
}
}