huskies: merge 893
This commit is contained in:
@@ -750,6 +750,34 @@ fn repeated_merge_failure_apply_transition_no_error_no_duplicate_notification()
|
||||
);
|
||||
}
|
||||
|
||||
// ── Story 893: MergeFailure + Unblock → Coding (retry) ─────────────
|
||||
|
||||
/// AC1: `MergeFailure + Unblock` transitions to `Coding` (retry), not `Backlog`.
|
||||
#[test]
|
||||
fn merge_failure_unblock_returns_to_coding() {
|
||||
let s = Stage::MergeFailure {
|
||||
reason: "conflicts in server/src/main.rs".into(),
|
||||
};
|
||||
let result = transition(s, PipelineEvent::Unblock).unwrap();
|
||||
assert!(
|
||||
matches!(result, Stage::Coding),
|
||||
"MergeFailure + Unblock should return to Coding for immediate retry, got: {result:?}"
|
||||
);
|
||||
}
|
||||
|
||||
/// AC1 (complement): `MergeFailure + Demote` still goes to `Backlog` for manual parking.
|
||||
#[test]
|
||||
fn merge_failure_demote_returns_to_backlog() {
|
||||
let s = Stage::MergeFailure {
|
||||
reason: "conflicts".into(),
|
||||
};
|
||||
let result = transition(s, PipelineEvent::Demote).unwrap();
|
||||
assert!(
|
||||
matches!(result, Stage::Backlog),
|
||||
"MergeFailure + Demote should park the story in Backlog, got: {result:?}"
|
||||
);
|
||||
}
|
||||
|
||||
// ── Story 892: MergeFailure → Done (manual recovery) ───────────────
|
||||
|
||||
/// Regression test (story 892): `accept_story` on a story in `MergeFailure`
|
||||
|
||||
Reference in New Issue
Block a user