Skip to content

Commit 25e3efa

Browse files
committed
Add layout tests
1 parent b58b689 commit 25e3efa

1 file changed

Lines changed: 72 additions & 0 deletions

File tree

tests/layout.rs

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
#[cfg(test)]
2+
mod tests {
3+
use termal::formatc;
4+
use termint::{
5+
buffer::Buffer,
6+
enums::Color,
7+
geometry::{Constraint, Rect},
8+
widgets::{cache::Cache, Layout, Widget},
9+
};
10+
11+
#[test]
12+
fn background_render() {
13+
let rect = Rect::new(1, 1, 10, 5);
14+
let mut buffer = Buffer::empty(rect);
15+
let mut cache = Cache::new();
16+
17+
let layout = Layout::vertical().bg(Color::Red).into();
18+
cache.diff(&layout);
19+
layout.render(&mut buffer, Rect::new(3, 2, 6, 3), &mut cache);
20+
21+
let bg =
22+
format!("{} {}", Color::Red.to_bg(), Color::Default.to_bg());
23+
let expected = formatc!(
24+
" \n {bg} \n {bg} \n {bg} \n {'_}"
25+
);
26+
assert_eq!(buffer.to_string(), expected);
27+
}
28+
29+
#[test]
30+
fn padding_render() {
31+
let rect = Rect::new(1, 1, 10, 5);
32+
let mut buffer = Buffer::empty(rect);
33+
let mut cache = Cache::new();
34+
35+
let mut layout = Layout::vertical().padding((1, 2, 2, 3));
36+
layout.push(Layout::vertical().bg(Color::Red), Constraint::Fill(1));
37+
let layout = layout.into();
38+
39+
cache.diff(&layout);
40+
layout.render(&mut buffer, rect, &mut cache);
41+
42+
let bg =
43+
format!("{} {}", Color::Red.to_bg(), Color::Default.to_bg());
44+
let expected = formatc!(
45+
" \n {bg} \n {bg} \n \n {'_}"
46+
);
47+
assert_eq!(buffer.to_string(), expected);
48+
}
49+
50+
#[test]
51+
fn center_render() {
52+
let rect = Rect::new(1, 1, 10, 5);
53+
let mut buffer = Buffer::empty(rect);
54+
let mut cache = Cache::new();
55+
56+
let mut layout = Layout::horizontal().center();
57+
let mut inner = Layout::vertical().center();
58+
inner.push(Layout::vertical().bg(Color::Red), Constraint::Length(3));
59+
layout.push(inner, Constraint::Length(2));
60+
61+
let layout = layout.into();
62+
cache.diff(&layout);
63+
layout.render(&mut buffer, rect, &mut cache);
64+
65+
let bg = format!("{} {}", Color::Red.to_bg(), Color::Default.to_bg());
66+
let expected = formatc!(
67+
" \n {bg} \n {bg} \n {bg} \
68+
\n {'_}"
69+
);
70+
assert_eq!(buffer.to_string(), expected);
71+
}
72+
}

0 commit comments

Comments
 (0)