From ec02821825092fe63d1f33e9b5ec351c1092d3a3 Mon Sep 17 00:00:00 2001 From: jk <47693+sectore@users.noreply.github.com> Date: Fri, 6 Dec 2024 16:05:00 +0100 Subject: [PATCH] test: `center|horizontal|vertical` --- src/utils.rs | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/src/utils.rs b/src/utils.rs index d7bc857..bba66ce 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -23,3 +23,54 @@ pub fn center(base_area: Rect, horizontal: Constraint, vertical: Constraint) -> let area = center_horizontal(base_area, horizontal); center_vertical(area, vertical) } + +#[cfg(test)] +mod tests { + + use super::*; + use ratatui::{buffer::Buffer, layout::Rect, text::Span, widgets::Widget}; + + #[test] + fn test_center() { + let l = Span::raw("hello!"); + let mut b = Buffer::empty(Rect::new(0, 0, 10, 3)); + let area = center( + b.area, + Constraint::Length(l.width() as u16), + Constraint::Length(1), + ); + l.render(area, &mut b); + #[rustfmt::skip] + let expected = Buffer::with_lines([ + " ", + " hello! ", + " ", + ]); + assert_eq!(b, expected); + } + + #[test] + fn test_center_horizontal() { + let l = Span::raw("hello!"); + let mut b = Buffer::empty(Rect::new(0, 0, 10, 1)); + let area = center_horizontal(b.area, Constraint::Length(l.width() as u16)); + l.render(area, &mut b); + let expected = Buffer::with_lines([" hello! "]); + assert_eq!(b, expected); + } + + #[test] + fn test_center_vertical() { + let l = Span::raw("hello vertical"); + let mut b = Buffer::empty(Rect::new(0, 0, 20, 3)); + let area = center_vertical(b.area, Constraint::Length(1)); + l.render(area, &mut b); + #[rustfmt::skip] + let expected = Buffer::with_lines([ + " ", + "hello vertical ", + " ", + ]); + assert_eq!(b, expected); + } +}