Format saved allocation readability regressions

This commit is contained in:
2026-09-12 04:18:42 -07:00
parent 94b5eecb1c
commit d9b3f0dc91
2 changed files with 75 additions and 22 deletions
@@ -967,15 +967,20 @@ fn oa_sa_label_overlap_refuses_preview_release_and_retries_without_partial_sourc
project.elements.get_mut(&f.a).unwrap().name = "Receiver".into();
replace(&mut f, project);
// Refusals must also preserve an existing redo branch.
let _ = f.app.update(Message::Command(Command::Rename(f.work, "Temporary".into())));
let _ = f.app.update(Message::Command(Command::Rename(
f.work,
"Temporary".into(),
)));
let _ = f.app.update(Message::Undo);
f.app.zoom = zoom;
f.app.pan = pan;
f.app.fit_to_view = false;
let screen = |world: Position| Point::new(
bounds().x + world.x * zoom + pan.x,
bounds().y + world.y * zoom + pan.y,
);
let screen = |world: Position| {
Point::new(
bounds().x + world.x * zoom + pan.x,
bounds().y + world.y * zoom + pan.y,
)
};
let from = screen(xy(140., 535.));
let overlap = screen(xy(160., 140.));
let clear = screen(xy(160., 190.));
@@ -990,7 +995,10 @@ fn oa_sa_label_overlap_refuses_preview_release_and_retries_without_partial_sourc
let feedback = f.app.allocation_drag.feedback.as_ref().unwrap();
assert!(feedback.refused, "{}", feedback.text);
assert!(feedback.text.contains("Aim below or beside"));
assert_eq!(feedback.press.frozen.targets[feedback.targets[0]].element, f.a);
assert_eq!(
feedback.press.frozen.targets[feedback.targets[0]].element,
f.a
);
assert_eq!(f.app.project(), &accepted);
assert_eq!(f.app.document.bundle(), &source);
assert!(Arc::ptr_eq(&snapshot, &f.app.document.snapshot()));
@@ -1014,24 +1022,48 @@ fn oa_sa_label_overlap_refuses_preview_release_and_retries_without_partial_sourc
let active = f.app.allocation_drag.active.as_ref().unwrap();
let p = active.press.clone();
let semantic = active.cache[0].1.as_ref().unwrap().clone();
let _ = f.app.update(Message::WorkDrag(Event::Preview(p.stamp, p.token, Some(clear))));
let _ = f.app.update(Message::WorkDrag(Event::Preview(
p.stamp,
p.token,
Some(clear),
)));
let preview = f.app.allocation_drag.preview.as_ref().expect(&f.app.status);
assert!(Arc::ptr_eq(&semantic, &preview.semantic));
assert_eq!(preview.placement.diagram.nodes[&f.node].position, xy(120., 160.));
assert_eq!(preview.placement.view, projection::project_diagram_with_index(
semantic.project(), &preview.placement.diagram, semantic.index(),
));
assert_eq!(
preview.placement.diagram.nodes[&f.node].position,
xy(120., 160.)
);
assert_eq!(
preview.placement.view,
projection::project_diagram_with_index(
semantic.project(),
&preview.placement.diagram,
semantic.index(),
)
);
let mut expected = semantic.project().clone();
expected.diagrams.insert(f.diagram, preview.placement.diagram.clone());
expected
.diagrams
.insert(f.diagram, preview.placement.diagram.clone());
assert_eq!(f.app.project(), &accepted);
assert_eq!(f.app.document.bundle(), &source);
let _ = f.app.update(Message::WorkDrag(Event::Release(p.stamp, p.token, Some(clear))));
let _ = f.app.update(Message::WorkDrag(Event::Release(
p.stamp,
p.token,
Some(clear),
)));
assert_eq!(f.app.project(), &expected, "{}", f.app.status);
assert_eq!(f.app.document.revision(), revision + 1);
assert!(f.app.document.can_undo());
assert!(!f.app.document.can_redo());
let after = f.app.document.bundle().clone();
assert_eq!(oa_core::source_project::compile_bundle(&after, Default::default()).unwrap().decoded.project, expected);
assert_eq!(
oa_core::source_project::compile_bundle(&after, Default::default())
.unwrap()
.decoded
.project,
expected
);
let _ = f.app.update(Message::Undo);
assert_eq!(f.app.project(), &accepted);
assert_eq!(f.app.document.bundle(), &source);