dioxus/packages/core/tests/attributes_pass.rs
Evan Almloff 34bdcd15cf
Switch to a pool of dynamic values for hot reloading (#2705)
* create the dynamic value pool

* assign ids to dynamic formatted segments

* separate the rendering and literal pools

* rsx output compiles again

* more examples compiling with new rsx expansion

* update template body explanation

* all workspace examples compile

* fix formatted segments in keys

* start hot reload diffing

* fix component literal hot reloading

* start integrate new hot reloading with the CLI

* simple hot reloads working

* Fix hot reloading blocks with components

* implement hot reloading for if chains

* Fix hot reloading after a template requires a full rebuild

* Fix hot reloading any attribute values

* remove unsafe from hot reload utils

* Fix hot reloading empty rsx

* add more hot reloading tests

* reorganize hot reload module

* fix web hydration

* fix empty rsx nodes in autoformatting

* fix tests

* remove path sorting logic from core

* make template names more consistent in debug mode

* fix quote_as_hot_reload_literal for explicitly typed literals

* fix can_be_shorthand for string literals

* fix formatted single dynamic expression

* Fix usize component properties and playwright tests

* remove default implementation for TemplateBody

* add a bunch more comments for diffing, scoring and why this scoring system is optimal
2024-07-30 17:16:27 +00:00

31 lines
744 B
Rust

use dioxus::prelude::*;
/// Make sure that rsx! is parsing templates and their attributes properly
#[test]
fn attributes_pass_properly() {
let h = rsx! {
circle {
cx: 50,
cy: 50,
r: 40,
stroke: "green",
fill: "yellow"
}
};
let o = h.unwrap();
let template = &o.template;
assert_eq!(template.attr_paths.len(), 3);
let _circle = template.roots[0];
let TemplateNode::Element { attrs, tag, namespace, children } = _circle else {
panic!("Expected an element");
};
assert_eq!(tag, "circle");
assert_eq!(namespace, Some("http://www.w3.org/2000/svg"));
assert_eq!(children.len(), 0);
assert_eq!(attrs.len(), 5);
}