1
0

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. (0..5).map(|i| rsx! {
  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! {
  44. div { "component {name}" }
  45. }
  46. }
  47. assert_eq!(
  48. dioxus_ssr::render_lazy(rsx! {
  49. div {
  50. (0..5).map(|name| rsx! {
  51. MyComponent { name: name }
  52. })
  53. }
  54. }),
  55. "<div><div>component 0</div><div>component 1</div><div>component 2</div><div>component 3</div><div>component 4</div></div>"
  56. );
  57. }
  58. #[test]
  59. fn fragments() {
  60. assert_eq!(
  61. dioxus_ssr::render_lazy(rsx! {
  62. div {
  63. (0..5).map(|_| rsx! (()))
  64. }
  65. }),
  66. "<div></div>"
  67. );
  68. }