2024-01-30 17:59:57 -08:00
|
|
|
#![allow(non_snake_case)]
|
|
|
|
|
2022-11-15 16:05:22 -08:00
|
|
|
use dioxus::prelude::*;
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn simple() {
|
2024-01-15 11:12:24 -06:00
|
|
|
fn App() -> Element {
|
2024-01-16 13:18:46 -06:00
|
|
|
rsx! { div { "hello!" } }
|
2022-11-15 16:05:22 -08:00
|
|
|
}
|
|
|
|
|
2023-09-15 16:13:36 +02:00
|
|
|
let mut dom = VirtualDom::new(App);
|
2024-02-04 23:03:52 -08:00
|
|
|
dom.rebuild(&mut dioxus_core::NoOpMutations);
|
2022-12-06 17:41:47 -08:00
|
|
|
|
|
|
|
assert_eq!(dioxus_ssr::render(&dom), "<div>hello!</div>");
|
2022-11-15 16:05:22 -08:00
|
|
|
|
|
|
|
assert_eq!(
|
2024-01-16 13:18:46 -06:00
|
|
|
dioxus_ssr::render_element(rsx!( div {"hello!"} )),
|
2022-11-15 16:05:22 -08:00
|
|
|
"<div>hello!</div>"
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn lists() {
|
2022-12-06 17:41:47 -08:00
|
|
|
assert_eq!(
|
2024-01-16 13:18:46 -06:00
|
|
|
dioxus_ssr::render_element(rsx! {
|
2022-11-15 16:05:22 -08:00
|
|
|
ul {
|
2024-01-15 11:12:24 -06:00
|
|
|
{
|
2024-01-16 13:18:46 -06:00
|
|
|
(0..5).map(|i| rsx! {
|
2024-01-15 11:12:24 -06:00
|
|
|
li { "item {i}" }
|
|
|
|
})
|
2024-01-10 19:33:34 -08:00
|
|
|
}
|
2022-11-15 16:05:22 -08:00
|
|
|
}
|
2022-12-06 17:41:47 -08:00
|
|
|
}),
|
2022-11-15 16:05:22 -08:00
|
|
|
"<ul><li>item 0</li><li>item 1</li><li>item 2</li><li>item 3</li><li>item 4</li></ul>"
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn dynamic() {
|
2022-12-06 17:41:47 -08:00
|
|
|
let dynamic = 123;
|
2022-11-15 16:05:22 -08:00
|
|
|
assert_eq!(
|
2024-01-16 13:18:46 -06:00
|
|
|
dioxus_ssr::render_element(rsx! {
|
2022-12-06 17:41:47 -08:00
|
|
|
div { "Hello world 1 -->" "{dynamic}" "<-- Hello world 2" }
|
|
|
|
}),
|
2023-02-14 09:06:59 -06:00
|
|
|
"<div>Hello world 1 -->123<-- Hello world 2</div>"
|
2022-11-15 16:05:22 -08:00
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn components() {
|
2024-01-10 17:57:15 -06:00
|
|
|
#[derive(Props, Clone, PartialEq)]
|
|
|
|
struct MyComponentProps {
|
|
|
|
name: i32,
|
|
|
|
}
|
|
|
|
|
|
|
|
fn MyComponent(MyComponentProps { name }: MyComponentProps) -> Element {
|
2024-01-16 13:18:46 -06:00
|
|
|
rsx! { div { "component {name}" } }
|
2022-11-15 16:05:22 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
assert_eq!(
|
2024-01-16 13:18:46 -06:00
|
|
|
dioxus_ssr::render_element(rsx! {
|
2022-12-06 17:41:47 -08:00
|
|
|
div {
|
2024-01-15 11:12:24 -06:00
|
|
|
{
|
2024-01-16 13:18:46 -06:00
|
|
|
(0..5).map(|name| rsx! {
|
2024-01-15 11:12:24 -06:00
|
|
|
MyComponent { name: name }
|
|
|
|
})
|
2024-01-10 19:33:34 -08:00
|
|
|
}
|
2022-12-06 17:41:47 -08:00
|
|
|
}
|
|
|
|
}),
|
2022-11-15 16:05:22 -08:00
|
|
|
"<div><div>component 0</div><div>component 1</div><div>component 2</div><div>component 3</div><div>component 4</div></div>"
|
|
|
|
);
|
|
|
|
}
|
2022-12-06 17:41:47 -08:00
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn fragments() {
|
|
|
|
assert_eq!(
|
2024-01-16 13:18:46 -06:00
|
|
|
dioxus_ssr::render_element(rsx! {
|
2022-12-06 17:41:47 -08:00
|
|
|
div {
|
2024-01-15 11:12:24 -06:00
|
|
|
{
|
2024-01-16 13:18:46 -06:00
|
|
|
(0..5).map(|_| rsx! ({}))
|
2024-01-15 11:12:24 -06:00
|
|
|
}
|
2022-12-06 17:41:47 -08:00
|
|
|
}
|
|
|
|
}),
|
|
|
|
"<div></div>"
|
|
|
|
);
|
|
|
|
}
|