in src/components/bordering.rs [160:187]
fn test_basic() -> anyhow::Result<()> {
let component = Bordered::new(Box::new(Echo::<Msg>::new(true)), BorderedSpec::default());
let msg = Msg(vec![
vec!["Test"].try_into()?, // 4 chars
vec!["Longer"].try_into()?, // 6 chars
vec!["Even Longer", "ok"].try_into()?, // 13 chars
Line::default(),
]);
let output = component.draw(
&crate::state![&msg],
Dimensions::new(14, 5),
DrawMode::Normal,
)?;
// A single character on the right side of the message gets truncated to make way for side padding
let expected = vec![
vec!["-".repeat(14)].try_into()?,
vec!["|", "Test", &" ".repeat(12 - 4), "|"].try_into()?,
vec!["|", "Longer", &" ".repeat(12 - 6), "|"].try_into()?,
vec!["|", "Even Longer", "o", "|"].try_into()?,
vec!["-".repeat(14)].try_into()?,
];
assert_eq!(output, expected);
Ok(())
}