fix(frontend): unblock staging gate by aligning two stale contract tests (BUG-622)
Independent Staging Quality Gate / validate (push) Failing after 12m9s
Independent Staging Quality Gate / publish (push) Has been skipped

is-changed now has a CSS rule, so it cannot stay on knownUnstyled. The question-gap contract still expected verified_idle && ( after BUG-620 added verifiedIdleCopy and !showSelectionCards.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Jesse_Chen
2026-09-09 19:16:04 +08:00
co-authored by Cursor
parent e8d46f12b1
commit c41afe26a2
3 changed files with 30 additions and 10 deletions
@@ -48,13 +48,14 @@ const tailwindCollisions = new Set([
//
// The `is-*` entries are state hooks whose visual is carried by a sibling
// element instead — the thinking step's marker icon, the board minute's
// "当前时间" / "已更新" note. `sidebar-header` and `chart-nav` land on shadcn
// components that style themselves. The rest are modifiers sitting beside an
// already-styled class on the same element.
// "当前时间" / "已更新" note. `is-changed` left this list in BUG-622 once
// `.personal-report-chart-cell.is-changed` got a fill/stroke rule.
// `sidebar-header` and `chart-nav` land on shadcn components that style
// themselves. The rest are modifiers sitting beside an already-styled class
// on the same element.
const knownUnstyled = new Set([
"birth-time-evidence-receipt",
"chart-nav",
"is-changed",
"is-done",
"is-live",
"is-working",
@@ -79,7 +79,10 @@ test("the question gap is a live row with retries, then a reload; it never tells
assert.match(chat, /const questionGap = rectificationQuestionGapState\(\{/);
assert.match(chat, /questionGap === "preparing" && \(/);
assert.match(chat, /questionGap === "unavailable" && \(/);
assert.match(chat, /questionGap === "verified_idle" && \(/);
// 原值:questionGap === "verified_idle" && (
// 新值:questionGap === "verified_idle" && verifiedIdleCopy && !showSelectionCards && (
// 原因:BUG-620 把收尾句挪到对照卡下,无 copy 或卡仍在时不单独贴一段;门禁仍锁旧字面量会红(BUG-622)
assert.match(chat, /questionGap === "verified_idle" && verifiedIdleCopy && !showSelectionCards && \(/);
assert.match(chat, /RECTIFICATION_QUESTION_UNAVAILABLE_COPY/);
assert.match(chat, /RECTIFICATION_QUESTION_RELOAD_LABEL/);
assert.match(chat, /useVisibilityAwarePoll\(\{\s*enabled: questionGap === "preparing",\s*intervalMs: RECTIFICATION_QUESTION_RETRY_INTERVAL_MS,/);