fix: guard state change event transitions
This commit is contained in:
@@ -3923,7 +3923,8 @@ async fn scoped_close_ticket(
|
|||||||
fn generic_ticket_state_change(operation: &TicketBackendOperation) -> Option<&TicketStateChange> {
|
fn generic_ticket_state_change(operation: &TicketBackendOperation) -> Option<&TicketStateChange> {
|
||||||
match operation {
|
match operation {
|
||||||
TicketBackendOperation::SetWorkflowState { change, .. }
|
TicketBackendOperation::SetWorkflowState { change, .. }
|
||||||
| TicketBackendOperation::SetStateField { change, .. } => Some(change),
|
| TicketBackendOperation::SetStateField { change, .. }
|
||||||
|
| TicketBackendOperation::AddStateChanged { change, .. } => Some(change),
|
||||||
_ => None,
|
_ => None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -13352,6 +13353,10 @@ mod tests {
|
|||||||
field: "state".to_string(),
|
field: "state".to_string(),
|
||||||
change: change(),
|
change: change(),
|
||||||
},
|
},
|
||||||
|
TicketBackendOperation::AddStateChanged {
|
||||||
|
id: TicketIdOrSlug::Query("T1".to_string()),
|
||||||
|
change: change(),
|
||||||
|
},
|
||||||
];
|
];
|
||||||
for operation in operations {
|
for operation in operations {
|
||||||
let error = reject_unguarded_ticket_completion(&operation).unwrap_err();
|
let error = reject_unguarded_ticket_completion(&operation).unwrap_err();
|
||||||
@@ -13384,6 +13389,10 @@ mod tests {
|
|||||||
field: "state".to_string(),
|
field: "state".to_string(),
|
||||||
change: change(),
|
change: change(),
|
||||||
},
|
},
|
||||||
|
TicketBackendOperation::AddStateChanged {
|
||||||
|
id: TicketIdOrSlug::Query("T1".to_string()),
|
||||||
|
change: change(),
|
||||||
|
},
|
||||||
] {
|
] {
|
||||||
let error = reject_unguarded_ticket_completion(&operation).unwrap_err();
|
let error = reject_unguarded_ticket_completion(&operation).unwrap_err();
|
||||||
assert!(error.to_string().contains("MergeRequestComplete"));
|
assert!(error.to_string().contains("MergeRequestComplete"));
|
||||||
|
|||||||
Reference in New Issue
Block a user