Fix spread props diffing (#2679)

* Fix spread props diffing

* Add a regression test for extends prop diffing
This commit is contained in:
Evan Almloff authored and GitHub committed 2024-07-23 16:57:05 -07:00
1 parent 6148941825
commit ea3d88c1dd
2 files changed
+30

No files matched your search

@@ -134,3 +134,32 @@ fn TakesSignal(sig: ReadOnlySignal<usize>, number: usize) -> Element {
button { "{number}" }
}
}
// Regression test for https://github.com/DioxusLabs/dioxus/issues/2582
#[test]
fn spreads_memorize_in_place() {
#[derive(Props, Clone, PartialEq)]
struct CompProps {
#[props(extends = GlobalAttributes)]
attributes: Vec<Attribute>,
}
let mut props = CompProps::builder().build();
assert!(!props.memoize(&CompProps::builder().all("123").build()));
assert_eq!(
props.attributes,
vec![Attribute::new("all", "123", Some("style"), false)]
);
assert!(!props.memoize(&CompProps::builder().width("123").build()));
assert_eq!(
props.attributes,
vec![Attribute::new("width", "123", Some("style"), false)]
);
assert!(!props.memoize(&CompProps::builder().build()));
assert_eq!(props.attributes, vec![]);
assert!(props.memoize(&CompProps::builder().build()));
assert_eq!(props.attributes, vec![]);
}