use pagetop::prelude::*; #[pagetop::test] async fn component_html_renders_static_markup() { let component = Html::with(|_| { html! { p { "Test" } } }); let markup = component .prepare_component(&mut Context::new(None)) .render(); assert_eq!(markup.0, "

Test

"); } #[pagetop::test] async fn component_html_renders_using_context_param() { let mut cx = Context::new(None).with_param("username", String::from("Alice")); let component = Html::with(|cx| { let name = cx.get_param::("username").unwrap_or_default(); html! { span { (name) } } }); let markup = component.prepare_component(&mut cx).render(); assert_eq!(markup.0, "Alice"); } #[pagetop::test] async fn component_html_allows_replacing_render_function() { let mut component = Html::with(|_| html! { div { "Original" } }); component.alter_html(|_| html! { div { "Modified" } }); let markup = component .prepare_component(&mut Context::new(None)) .render(); assert_eq!(markup.0, "
Modified
"); } #[pagetop::test] async fn component_html_default_renders_empty_markup() { let component = Html::default(); let markup = component .prepare_component(&mut Context::new(None)) .render(); assert_eq!(markup.0, ""); } #[pagetop::test] async fn component_html_can_access_http_method() { let req = service::test::TestRequest::with_uri("/").to_http_request(); let mut cx = Context::new(Some(req)); let component = Html::with(|cx| { let method = cx .request() .map(|r| r.method().to_string()) .unwrap_or_default(); html! { span { (method) } } }); let markup = component.prepare_component(&mut cx).render(); assert_eq!(markup.0, "GET"); }