fix(dashboard): useMergeAdvanceNotice tests should waitFor toBeDefined
`notice` is `events.find(...)` which returns `undefined` (not `null`) when no match. `waitFor(() => expect(...).not.toBeNull())` exited immediately because `undefined !== null` — the test never actually waited for the api mock to resolve. Sometimes the followup assertions happened to land after the events fetched (test passed by luck); sometimes they ran while notice was still undefined and the assertions failed. Switched all five waitFor sites to `.toBeDefined()` so they actually block on the events-fetch resolution. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
13
.changeset/feat-git-manager-sync-working-tree.md
Normal file
13
.changeset/feat-git-manager-sync-working-tree.md
Normal file
@@ -0,0 +1,13 @@
|
||||
---
|
||||
"@fusion/dashboard": minor
|
||||
---
|
||||
|
||||
feat(dashboard): explain "Recent integration-branch advances" and add a one-click "Sync working tree" fix
|
||||
|
||||
Two additions to Git Manager → Status:
|
||||
|
||||
**Info disclosure** — an `[i]` button next to the "Recent integration-branch advances (N need action)" header toggles an inline explainer. Covers what an "advance" is, what each `autoSyncOutcome` value means (`clean-sync`, `synced-with-edits-restored`, `off / not run`, `stash-failed`, `would-conflict`, …), and where to enable `mergeAdvanceAutoSync` for the permanent fix.
|
||||
|
||||
**Sync working tree button** — when ≥1 advance shows `needsAction`, a button surfaces in the same header that calls the existing `POST /api/git/pull` (FN-5358 Smart Pull machinery: auto-stash dirty edits, fast-forward pull, restore stash, surface conflicts). On success the extended git status auto-refetches and the "need action" count drops; on conflict, the existing error toast fires.
|
||||
|
||||
No new state machine — `handlePull`/`remoteLoading === "pull"` is the same plumbing the existing Pull button uses.
|
||||
Reference in New Issue
Block a user