in src/components/expanding.rs [57:96]
fn test() -> anyhow::Result<()> {
let expander = Expanding::new(Box::new(Echo::<Lines>::new(false)));
let dims = Dimensions { x: 20, y: 20 };
let longest_line: Line = vec!["Hello world"].try_into()?;
let msg: Lines = vec![longest_line.clone(), vec!["foobar"].try_into()?];
let result = expander.draw(&crate::state![&msg], dims, DrawMode::Normal)?;
let expected = {
let mut expected = msg;
expected.justify();
expected
};
assert_eq!(result, expected);
// testing horizontal
let now_longest: Line = vec!["foobar"].try_into()?;
let msg: Lines = vec![vec!["H"].try_into()?, now_longest.clone()];
let result = expander.draw(&crate::state![&msg], dims, DrawMode::Normal)?;
let expected = {
let mut expected = msg;
expected.pad_lines_right(longest_line.len() - now_longest.len());
expected
};
assert_eq!(result, expected);
// testing vertical
let msg: Lines = vec![now_longest];
let result = expander.draw(&crate::state![&msg], dims, DrawMode::Normal)?;
let expected = {
let mut expected = msg;
expected.set_lines_to_exact_dimensions(Dimensions {
x: longest_line.len(),
y: 2,
});
expected
};
assert_eq!(result, expected);
Ok(())
}