Files
msd-core/tests
sim 63404ca45b test(#3103): pin every branch in the base-branch resolver to the value it returns
Thirty-eight tests, covering every previously unreached branch in this module:
malformed and non-object config at each nesting level, the origin/HEAD path
returning a bare remote prefix, the remote-show parse missing its HEAD line and
its "(unknown)" sentinel, three catch arms, the spawn-failure path that reports
unverified, the worktree probe answering something other than "true", a
non-zero toplevel query, a blank toplevel, and the default diagnostic sink on
both arms.

The one worth naming is the local-branch fallback that was deleted earlier
today as unreachable and restored. It is hard to pin because it and the
empty-stdout guard above it both return null, so the return value cannot tell
them apart. The test drives it through a result object whose stdout is a getter
that counts reads: one read means the guard fired, two means the guard passed
and the fallback ran. Deleting the line again fails the value assertion —
the function would return undefined — and changing the guard to swallow
whitespace fails the read count, which is the other way that branch dies.

Tier attribution is now pinned. Four tests rig the lower tiers to answer with
DIFFERENT branch names and assert the recorded call sequence, so a result from
symref, remote-show, local-branch, or config can no longer be mistaken for
another. Previously any of them could have produced the answer and the test
would not have noticed. Each tier's argv and timeout are asserted exactly.

The boundary trio applies to the branch listing rather than a numeric limit:
zero matching lines, one, and two.

Three assertions already in this file were removed rather than left beside the
new ones. A doesNotThrow around the worktree probe became an exact-value test
of the catch arm; a typeof-string-and-non-empty shape check on the resolved
root became an equality check against the realpath; and the unverified-fallback
diagnostic was asserted only to be non-empty, so it now asserts the exact
sentence, which fails if the reason changes rather than only if it vanishes.
Two folded bodies used try/finally for teardown and now use t.after.

Refs #3057

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-06 00:43:18 -04:00
..