use aura_ui::core::{Pixels, Rgba, Size};
use aura_ui::view::prelude::*;
use aura_ui::view::test_context::TestWindow;
use std::cell::RefCell;
use std::rc::Rc;
struct Chart {
seen: Rc<RefCell<Vec<Size>>>,
}
impl Component for Chart {
fn view(&mut self, _cx: &mut ViewContext<Self>) -> impl IntoElement {
let seen = self.seen.clone();
div()
.p_2()
.child(
canvas(move |bounds, cx| {
seen.borrow_mut().push(bounds.size);
cx.paint_rounded_rect(bounds, Rgba::new(1.0, 0.0, 0.0, 1.0), Pixels(2.0));
})
.w(px(120.0))
.h(px(40.0)),
)
.into_element()
}
}
#[test]
fn el_cierre_recibe_el_tamano_del_elemento() {
let seen = Rc::new(RefCell::new(Vec::new()));
let (mut test, _) = TestWindow::new({
let seen = seen.clone();
move |_| Chart { seen }
});
test.window.draw(None);
let sizes = seen.borrow();
assert!(!sizes.is_empty(), "se pintó al menos una vez");
assert_eq!((sizes[0].width.0, sizes[0].height.0), (120.0, 40.0));
}