1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- use dioxus_rsx::{CallBody, DynamicContext};
- use syn::Item;
- #[test]
- fn rsx_writeout_snapshot() {
- let body = parse_from_str(include_str!("./parsing/multiexpr.rsx"));
- assert_eq!(body.roots.len(), 1);
- let root = &body.roots[0];
- let el = match root {
- dioxus_rsx::BodyNode::Element(el) => el,
- _ => panic!("Expected an element"),
- };
- assert_eq!(el.name, "circle");
- assert_eq!(el.attributes.len(), 5);
- let mut context = DynamicContext::default();
- let o = context.render_static_node(&body.roots[0]);
- // hi!!!!!
- // you're probably here because you changed something in how rsx! generates templates and need to update the snapshot
- // This is a snapshot test. Make sure the contents are checked before committing a new snapshot.
- let stability_tested = o.to_string();
- assert_eq!(
- stability_tested.trim(),
- include_str!("./parsing/multiexpr.expanded.rsx").trim()
- );
- }
- fn parse_from_str(contents: &str) -> CallBody {
- // Parse the file
- let file = syn::parse_file(contents).unwrap();
- // The first token should be the macro call
- let Item::Macro(call) = file.items.first().unwrap() else {
- panic!("Expected a macro call");
- };
- call.mac.parse_body().unwrap()
- }
|