feat: generalize ticket role assignments
This commit is contained in:
@@ -679,7 +679,9 @@ fn validate_generic_state_change(
|
||||
to: TicketWorkflowState,
|
||||
) -> Result<()> {
|
||||
if current == TicketWorkflowState::Planning && to == TicketWorkflowState::Ready
|
||||
|| current == TicketWorkflowState::Planning && to == TicketWorkflowState::InProgress
|
||||
|| current == TicketWorkflowState::Ready && to == TicketWorkflowState::Queued
|
||||
|| current == TicketWorkflowState::Ready && to == TicketWorkflowState::InProgress
|
||||
{
|
||||
return Err(TicketError::InvalidWorkflowTransition {
|
||||
from: current.as_str().to_owned(),
|
||||
@@ -6998,6 +7000,24 @@ mod tests {
|
||||
assert!(projection.visible_overlay.is_some());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn generic_state_change_rejects_manual_start_bypass() {
|
||||
assert!(
|
||||
validate_generic_state_change(
|
||||
TicketWorkflowState::Ready,
|
||||
TicketWorkflowState::InProgress
|
||||
)
|
||||
.is_err()
|
||||
);
|
||||
assert!(
|
||||
validate_generic_state_change(
|
||||
TicketWorkflowState::Planning,
|
||||
TicketWorkflowState::InProgress
|
||||
)
|
||||
.is_err()
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn workflow_state_rejects_legacy_intake_alias() {
|
||||
assert_eq!(
|
||||
|
||||
Reference in New Issue
Block a user