simple.rs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. use dioxus::prelude::*;
  2. #[test]
  3. fn simple() {
  4. fn app(cx: Scope) -> Element {
  5. render! { div { "hello!" } }
  6. }
  7. let mut dom = VirtualDom::new(app);
  8. _ = dom.rebuild();
  9. assert_eq!(dioxus_ssr::render(&dom), "<div>hello!</div>");
  10. assert_eq!(
  11. dioxus_ssr::render_lazy(rsx!( div {"hello!"} )),
  12. "<div>hello!</div>"
  13. );
  14. }
  15. #[test]
  16. fn lists() {
  17. assert_eq!(
  18. dioxus_ssr::render_lazy(rsx! {
  19. ul {
  20. (0..5).map(|i| rsx! {
  21. li { "item {i}" }
  22. })
  23. }
  24. }),
  25. "<ul><li>item 0</li><li>item 1</li><li>item 2</li><li>item 3</li><li>item 4</li></ul>"
  26. );
  27. }
  28. #[test]
  29. fn dynamic() {
  30. let dynamic = 123;
  31. assert_eq!(
  32. dioxus_ssr::render_lazy(rsx! {
  33. div { "Hello world 1 -->" "{dynamic}" "<-- Hello world 2" }
  34. }),
  35. "<div>Hello world 1 --&gt;123&lt;-- Hello world 2</div>"
  36. );
  37. }
  38. #[test]
  39. fn components() {
  40. #[inline_props]
  41. fn my_component(cx: Scope, name: i32) -> Element {
  42. render! {
  43. div { "component {name}" }
  44. }
  45. }
  46. assert_eq!(
  47. dioxus_ssr::render_lazy(rsx! {
  48. div {
  49. (0..5).map(|name| rsx! {
  50. my_component { name: name }
  51. })
  52. }
  53. }),
  54. "<div><div>component 0</div><div>component 1</div><div>component 2</div><div>component 3</div><div>component 4</div></div>"
  55. );
  56. }
  57. #[test]
  58. fn fragments() {
  59. assert_eq!(
  60. dioxus_ssr::render_lazy(rsx! {
  61. div {
  62. (0..5).map(|_| rsx! (()))
  63. }
  64. }),
  65. "<div></div>"
  66. );
  67. }