1234567891011121314151617181920212223242526272829303132333435363738 |
- use dioxus::prelude::*;
- use dioxus_core::ElementId;
- use dioxus_core::Mutation::{AppendChildren, LoadTemplate};
- /// Swap out the template and get it back via the mutation
- #[test]
- fn hotreloads_template() {
- let old_rsx = rsx! { "A" };
- let name = old_rsx.as_ref().unwrap().template.get().name;
- let mut dom = VirtualDom::new_with_props(move |_| old_rsx.clone(), ());
- let new_template = Template {
- name,
- roots: &[TemplateNode::Text { text: "B" }],
- node_paths: &[],
- attr_paths: &[],
- };
- dom.replace_template(new_template);
- let muts = dom.rebuild_to_vec();
- // New template comes out
- assert_eq!(muts.templates.len(), 1);
- assert_eq!(
- muts.edits,
- [
- LoadTemplate {
- name: "packages/core/tests/hotreload.rs:8:19:0",
- index: 0,
- id: ElementId(1,),
- },
- AppendChildren { id: ElementId(0,), m: 1 },
- ]
- )
- }
|