Pin CLI error messages by driving their real call sites (closes #87)
check / check (push) Failing after 1s

errmsg_test.go now invokes the functions that actually emit each
user-visible message (findManifest, verifyRequiredSigner,
collectInputPaths, generateManifestOperation, openManifestReader,
fetchManifestOperation, downloadFile, finishDownload, sanitizePath,
verifyDownloadedHash) and asserts on what they return. No production
format string is restated in the test, so rewording a message now
fails the suite instead of passing against a copied literal.

The signer-mismatch message needs a signed manifest, so it is driven
against one signed by a throwaway gpg key and skipped where gpg is
absent, as the repo's other signing tests are.

Freshen's mtime-presence test now gives the scanned file an epoch
mtime, so an absent manifest mtime misread as the epoch is
distinguishable and the test fails if recordEntry's nil guard is
dropped.

Model: opus-4-8
This commit is contained in:
2026-09-21 07:56:23 +00:00
parent 5683d0f4ff
commit ed2bceb5a7
3 changed files with 301 additions and 136 deletions
+3
View File
@@ -24,6 +24,9 @@ only thing left of the `chore/align-repo-policies` branch is the list below.
# Completed Steps
- 2026-09-21: pinned CLI error messages by driving their real call sites in
`internal/cli/errmsg_test.go`, and made the freshen mtime-presence test
distinguish an absent mtime from the epoch (#87)
- 2026-08-09: added `.prettierrc`/`.prettierignore`, gave `script/fmt` and
`script/fmt-check` one shared prettier file set via `script/prettier`, dropped
the `|| true` that hid prettier failures, and added a node-based Dockerfile