fix: guard state change event transitions

This commit is contained in:
2026-08-22 23:48:11 +09:00
parent ae8a0316d8
commit bc57ef38c1
+10 -1
View File
@@ -3923,7 +3923,8 @@ async fn scoped_close_ticket(
fn generic_ticket_state_change(operation: &TicketBackendOperation) -> Option<&TicketStateChange> {
match operation {
TicketBackendOperation::SetWorkflowState { change, .. }
| TicketBackendOperation::SetStateField { change, .. } => Some(change),
| TicketBackendOperation::SetStateField { change, .. }
| TicketBackendOperation::AddStateChanged { change, .. } => Some(change),
_ => None,
}
}
@@ -13352,6 +13353,10 @@ mod tests {
field: "state".to_string(),
change: change(),
},
TicketBackendOperation::AddStateChanged {
id: TicketIdOrSlug::Query("T1".to_string()),
change: change(),
},
];
for operation in operations {
let error = reject_unguarded_ticket_completion(&operation).unwrap_err();
@@ -13384,6 +13389,10 @@ mod tests {
field: "state".to_string(),
change: change(),
},
TicketBackendOperation::AddStateChanged {
id: TicketIdOrSlug::Query("T1".to_string()),
change: change(),
},
] {
let error = reject_unguarded_ticket_completion(&operation).unwrap_err();
assert!(error.to_string().contains("MergeRequestComplete"));