fix(rectification): deliver range cards on tied first place instead of falling back to collect (BUG-680/681/682)
Refresh persist failures no longer count as attempts. tied_first completes with a range before stillNeedNarrowing. Delivery narration and cards share DELIVERY_OUTCOMES. The question gap gets a delivered terminal so the unavailable copy does not appear after a range is given.
This commit is contained in:
@@ -140,6 +140,26 @@ test("question gap: a persisted focus question is shown instead of preparing", (
|
||||
assert.equal(rectificationQuestionRetryActive("persisted_question"), false);
|
||||
});
|
||||
|
||||
test("question gap: a delivered range is not the unavailable repair path", () => {
|
||||
assert.equal(
|
||||
rectificationQuestionGapState({
|
||||
...gapBase,
|
||||
retryAttempts: RECTIFICATION_QUESTION_RETRY_LIMIT,
|
||||
sessionOutcome: "completed_with_range",
|
||||
}),
|
||||
"delivered",
|
||||
);
|
||||
assert.equal(
|
||||
rectificationQuestionGapState({
|
||||
...gapBase,
|
||||
retryAttempts: RECTIFICATION_QUESTION_RETRY_LIMIT,
|
||||
stopReason: "tied_first",
|
||||
}),
|
||||
"delivered",
|
||||
);
|
||||
assert.equal(rectificationQuestionRetryActive("delivered"), false);
|
||||
});
|
||||
|
||||
test("question gap: a choice question without a card is unavailable, not collect waiting", () => {
|
||||
assert.equal(interviewChoiceCardUnavailable({ questionKind: "choice", hasChoiceCard: false }), true);
|
||||
assert.equal(interviewChoiceCardUnavailable({ questionKind: "choice", hasChoiceCard: true }), false);
|
||||
|
||||
Reference in New Issue
Block a user