use ratatui::style::{
Color,
Modifier,
};
#[test]
fn template_substitutes_cwd()
{
use lsv::ui::template::format_header_side;
let app = lsv::App::new().expect("app");
let tpl = String::from("cwd: {cwd}");
let out = format_header_side(&app, Some(&tpl));
assert!(out.text.starts_with("cwd: "));
let cwd = app.get_cwd_path().display().to_string();
assert!(out.text.contains(&cwd), "out.text={}, cwd={}", out.text, cwd);
}
#[test]
fn template_styles_placeholder()
{
use lsv::ui::template::format_header_side;
let app = lsv::App::new().expect("app");
let tpl = String::from("pre {cwd|fg=red;style=bold} post");
let out = format_header_side(&app, Some(&tpl));
assert!(out.spans.len() >= 3, "spans len={}", out.spans.len());
let cwd = app.get_cwd_path().display().to_string();
let styled = out
.spans
.iter()
.find(|s| s.content.as_ref().contains(&cwd))
.expect("styled cwd span");
assert_eq!(styled.style.fg, Some(Color::Red));
let nobold = styled.style.remove_modifier(Modifier::BOLD);
assert_eq!(nobold.fg, Some(Color::Red));
assert!(out.text.contains("pre "));
assert!(out.text.contains(" post"));
}