Preserve structured diagnostics and candidate error context
This commit is contained in:
@@ -155,10 +155,6 @@ func candidateRequest(invocation cli.Invocation, settings cli.Settings, output i
|
||||
}
|
||||
|
||||
func candidateFailureText(err error) string {
|
||||
var validationError *releasekit.ValidationError
|
||||
if errors.As(err, &validationError) {
|
||||
return validationError.Error()
|
||||
}
|
||||
return err.Error()
|
||||
}
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
releasekit "gitea.maximumdirect.net/eric/ReleaseKit"
|
||||
"gitea.maximumdirect.net/eric/ReleaseKit/buildinfo"
|
||||
"gitea.maximumdirect.net/eric/ReleaseKit/cmd/releasekit/internal/cli"
|
||||
)
|
||||
@@ -149,6 +150,20 @@ func TestCandidateCommandsPresentValidationDiagnosticsOnce(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestCandidateFailurePresentationRetainsCallbackContext(t *testing.T) {
|
||||
diagnostic := &releasekit.ValidationError{
|
||||
Check: "examples",
|
||||
Findings: []releasekit.ValidationFinding{{Path: "examples/run/main.go", Message: "unexpected output"}},
|
||||
}
|
||||
err := fmt.Errorf("validate candidate captured-commit: %w", diagnostic)
|
||||
text := candidateFailureText(err)
|
||||
for _, part := range []string{"captured-commit", "examples", "examples/run/main.go", "unexpected output"} {
|
||||
if !strings.Contains(text, part) {
|
||||
t.Errorf("CLI presentation %q omits %q", text, part)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestPublishCommandPublishesConfiguredCandidate(t *testing.T) {
|
||||
repository := newCLIRepository(t)
|
||||
writeRepositoryFile(t, repository, "docs/releases/v1.2.3.md", "# Example Product v1.2.3\n\n## Compatibility\n\nNo action required.\n")
|
||||
|
||||
Reference in New Issue
Block a user