simple.rs 1.6 KB

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