test: check rendered results

This commit is contained in:
EdJoPaTo
2024-05-13 15:20:02 +02:00
parent 9dcccba31d
commit fa85e7bb56
+65 -10
View File
@@ -342,20 +342,75 @@ where
} }
} }
#[test] #[cfg(test)]
fn does_not_panic_on_render() { mod render_tests {
fn inner(width: u16, height: u16) { use super::*;
#[must_use]
#[track_caller]
fn render(width: u16, height: u16, state: &mut TreeState<&'static str>) -> Buffer {
let tree = Tree::new(TreeItem::example()).unwrap(); let tree = Tree::new(TreeItem::example()).unwrap();
let area = Rect::new(0, 0, width, height); let area = Rect::new(0, 0, width, height);
let mut buffer = Buffer::empty(area); let mut buffer = Buffer::empty(area);
Widget::render(tree, area, &mut buffer); StatefulWidget::render(tree, area, &mut buffer, state);
// TODO: assert buffer is empty buffer
} }
inner(0, 0); #[test]
inner(10, 0); fn does_not_panic() {
inner(0, 10); _ = render(0, 0, &mut TreeState::default());
_ = render(10, 0, &mut TreeState::default());
_ = render(0, 10, &mut TreeState::default());
_ = render(10, 10, &mut TreeState::default());
}
// TODO: use dedicated test to ensure the content is correct #[test]
inner(10, 10); fn nothing_open() {
let buffer = render(10, 4, &mut TreeState::default());
#[rustfmt::skip]
let expected = Buffer::with_lines([
" Alfa ",
"▶ Bravo ",
" Hotel ",
" ",
]);
assert_eq!(buffer, expected);
}
#[test]
fn depth_one() {
let mut state = TreeState::default();
state.open(vec!["b"]);
let buffer = render(13, 7, &mut state);
let expected = Buffer::with_lines([
" Alfa ",
"▼ Bravo ",
" Charlie ",
" ▶ Delta ",
" Golf ",
" Hotel ",
" ",
]);
assert_eq!(buffer, expected);
}
#[test]
fn depth_two() {
let mut state = TreeState::default();
state.open(vec!["b"]);
state.open(vec!["b", "d"]);
let buffer = render(15, 9, &mut state);
let expected = Buffer::with_lines([
" Alfa ",
"▼ Bravo ",
" Charlie ",
" ▼ Delta ",
" Echo ",
" Foxtrot ",
" Golf ",
" Hotel ",
" ",
]);
assert_eq!(buffer, expected);
}
} }