mirror of
https://github.com/ratatui-org/ratatui
synced 2024-11-29 08:00:38 +00:00
2cfe82a47e
- Simplify `assert_buffer_eq!` logic. - Deprecate `assert_buffer_eq!`. - Introduce `TestBackend::assert_buffer_lines`. Also simplify many tests involving buffer comparisons. For the deprecation, just use `assert_eq` instead of `assert_buffer_eq`: ```diff -assert_buffer_eq!(actual, expected); +assert_eq!(actual, expected); ``` --- I noticed `assert_buffer_eq!` creating no test coverage reports and looked into this macro. First I simplified it. Then I noticed a bunch of `assert_eq!(buffer, …)` and other indirect usages of this macro (like `TestBackend::assert_buffer`). The good thing here is that it's mainly used in tests so not many changes to the library code.
42 lines
1.2 KiB
Rust
42 lines
1.2 KiB
Rust
use ratatui::{
|
|
backend::TestBackend,
|
|
buffer::Buffer,
|
|
style::{Color, Style},
|
|
text::Span,
|
|
widgets::canvas::Canvas,
|
|
Terminal,
|
|
};
|
|
|
|
#[test]
|
|
fn widgets_canvas_draw_labels() {
|
|
let backend = TestBackend::new(5, 5);
|
|
let mut terminal = Terminal::new(backend).unwrap();
|
|
terminal
|
|
.draw(|f| {
|
|
let label = String::from("test");
|
|
let canvas = Canvas::default()
|
|
.background_color(Color::Yellow)
|
|
.x_bounds([0.0, 5.0])
|
|
.y_bounds([0.0, 5.0])
|
|
.paint(|ctx| {
|
|
ctx.print(
|
|
0.0,
|
|
0.0,
|
|
Span::styled(label.clone(), Style::default().fg(Color::Blue)),
|
|
);
|
|
});
|
|
f.render_widget(canvas, f.size());
|
|
})
|
|
.unwrap();
|
|
|
|
let mut expected = Buffer::with_lines(["", "", "", "", "test "]);
|
|
for row in 0..5 {
|
|
for col in 0..5 {
|
|
expected.get_mut(col, row).set_bg(Color::Yellow);
|
|
}
|
|
}
|
|
for col in 0..4 {
|
|
expected.get_mut(col, 4).set_fg(Color::Blue);
|
|
}
|
|
terminal.backend().assert_buffer(&expected);
|
|
}
|