hotreloads.rs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. use dioxus_rsx::hot_reload::{diff_rsx, DiffResult};
  2. use syn::File;
  3. fn load_files(old: &str, new: &str) -> (File, File) {
  4. let old = syn::parse_file(old).unwrap();
  5. let new = syn::parse_file(new).unwrap();
  6. (old, new)
  7. }
  8. #[test]
  9. fn hotreloads() {
  10. let (old, new) = load_files(
  11. include_str!("./valid/expr.old.rsx"),
  12. include_str!("./valid/expr.new.rsx"),
  13. );
  14. assert!(matches!(
  15. diff_rsx(&new, &old),
  16. DiffResult::RsxChanged { .. }
  17. ));
  18. let (old, new) = load_files(
  19. include_str!("./valid/let.old.rsx"),
  20. include_str!("./valid/let.new.rsx"),
  21. );
  22. assert!(matches!(
  23. diff_rsx(&new, &old),
  24. DiffResult::RsxChanged { .. }
  25. ));
  26. let (old, new) = load_files(
  27. include_str!("./valid/combo.old.rsx"),
  28. include_str!("./valid/combo.new.rsx"),
  29. );
  30. assert!(matches!(
  31. diff_rsx(&new, &old),
  32. DiffResult::RsxChanged { .. }
  33. ));
  34. }
  35. #[test]
  36. fn doesnt_hotreload() {
  37. let (old, new) = load_files(
  38. include_str!("./invalid/changedexpr.old.rsx"),
  39. include_str!("./invalid/changedexpr.new.rsx"),
  40. );
  41. let res = diff_rsx(&new, &old);
  42. dbg!(&res);
  43. assert!(matches!(res, DiffResult::CodeChanged(_)));
  44. }