Improve scenario tool feedback and keep draft actions visible
This commit is contained in:
@@ -878,11 +878,14 @@ impl Scene {
|
||||
MessageKind::Timer { .. } => "timer · ",
|
||||
}
|
||||
};
|
||||
let message_label = if let MessageKind::Timer { expression } = message_kind
|
||||
{
|
||||
expression.as_str()
|
||||
let message_label = if !scenario {
|
||||
r.map(|r| r.name.clone()).unwrap_or_else(|| e.name.clone())
|
||||
} else if let MessageKind::Timer { expression } = message_kind {
|
||||
format!("{} · {expression}", e.name)
|
||||
} else if let Some(exchange) = r.filter(|r| r.name != e.name) {
|
||||
format!("{} · {}", e.name, exchange.name)
|
||||
} else {
|
||||
r.map(|r| r.name.as_str()).unwrap_or(&e.name)
|
||||
e.name.clone()
|
||||
};
|
||||
self.lines.push(Line {
|
||||
id: *id,
|
||||
@@ -1603,6 +1606,23 @@ mod direct_canvas_tests {
|
||||
})
|
||||
}
|
||||
#[test]
|
||||
fn reused_exchange_messages_display_their_distinct_occurrence_names() {
|
||||
let mut f = scenario::direct_tests::fixture();
|
||||
f.project.elements.get_mut(&f.call).unwrap().name = "Route request".into();
|
||||
f.project.elements.get_mut(&f.reply).unwrap().name = "Route response".into();
|
||||
let scene = Scene::sequence(&f.project, f.owner, f.call);
|
||||
let call = scene.lines.iter().find(|line| line.id == f.call).unwrap();
|
||||
let reply = scene.lines.iter().find(|line| line.id == f.reply).unwrap();
|
||||
assert!(call.label.starts_with("1. call · Route request"));
|
||||
assert!(reply.label.starts_with("2. reply · Route response"));
|
||||
assert!(call.label.ends_with(&f.project.relations[&f.exchange].name));
|
||||
assert!(
|
||||
reply
|
||||
.label
|
||||
.ends_with(&f.project.relations[&f.exchange].name)
|
||||
);
|
||||
}
|
||||
#[test]
|
||||
fn direct_drag_and_click_click_use_ordered_sources_and_publish_once() {
|
||||
for drag in [false, true] {
|
||||
let (f, scene) = scene();
|
||||
|
||||
Reference in New Issue
Block a user