| use tui::{ |
| backend::TestBackend, |
| buffer::Buffer, |
| layout::{Constraint, Direction, Layout}, |
| widgets::{Block, Borders, Gauge}, |
| Terminal, |
| }; |
| |
| #[test] |
| fn widgets_gauge_renders() { |
| let backend = TestBackend::new(40, 10); |
| let mut terminal = Terminal::new(backend).unwrap(); |
| terminal |
| .draw(|f| { |
| let chunks = Layout::default() |
| .direction(Direction::Vertical) |
| .margin(2) |
| .constraints([Constraint::Percentage(50), Constraint::Percentage(50)].as_ref()) |
| .split(f.size()); |
| |
| let gauge = Gauge::default() |
| .block(Block::default().title("Percentage").borders(Borders::ALL)) |
| .percent(43); |
| f.render_widget(gauge, chunks[0]); |
| let gauge = Gauge::default() |
| .block(Block::default().title("Ratio").borders(Borders::ALL)) |
| .ratio(0.211_313_934_313_1); |
| f.render_widget(gauge, chunks[1]); |
| }) |
| .unwrap(); |
| let expected = Buffer::with_lines(vec![ |
| " ", |
| " ", |
| " ┌Percentage────────────────────────┐ ", |
| " │ 43% │ ", |
| " └──────────────────────────────────┘ ", |
| " ┌Ratio─────────────────────────────┐ ", |
| " │ 21% │ ", |
| " └──────────────────────────────────┘ ", |
| " ", |
| " ", |
| ]); |
| terminal.backend().assert_buffer(&expected); |
| } |