fix: preserve bitwarden backend errors
This commit is contained in:
parent
fe9e70b61a
commit
801d7fbb95
2 changed files with 18 additions and 4 deletions
|
|
@ -687,10 +687,7 @@ func mapAppError(err error) error {
|
|||
case errors.Is(err, mcpserver.ErrCredentialsNotConfigured):
|
||||
return newUserFacingError("credentials not configured; run `email-mcp setup`", err)
|
||||
case errors.Is(err, frameworksecretstore.ErrBackendUnavailable):
|
||||
return newUserFacingError(
|
||||
fmt.Sprintf("%s is not available; configure the declared secret backend and retry", frameworksecretstore.BackendName()),
|
||||
err,
|
||||
)
|
||||
return newUserFacingError(strings.TrimSpace(err.Error()), err)
|
||||
case errors.Is(err, frameworksecretstore.ErrReadOnly):
|
||||
return newUserFacingError("secret backend is read-only", err)
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -1210,6 +1210,23 @@ func TestMapAppErrorMapsUnavailableSecretBackendError(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestMapAppErrorPreservesBitwardenBackendDetails(t *testing.T) {
|
||||
err := mapAppError(fmt.Errorf(
|
||||
"cannot use bitwarden CLI command %q right now: %w",
|
||||
"bw",
|
||||
errors.Join(frameworksecretstore.ErrBackendUnavailable, frameworksecretstore.ErrBWLocked),
|
||||
))
|
||||
if err == nil {
|
||||
t.Fatal("expected mapped error")
|
||||
}
|
||||
if !strings.Contains(strings.ToLower(err.Error()), "bitwarden") {
|
||||
t.Fatalf("expected bitwarden guidance, got %v", err)
|
||||
}
|
||||
if strings.Contains(strings.ToLower(err.Error()), "secret service") || strings.Contains(strings.ToLower(err.Error()), "kwallet") {
|
||||
t.Fatalf("unexpected keyring guidance: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestExecuteSetupWritesMappedErrorAndReturnsExitCodeOne(t *testing.T) {
|
||||
app := NewAppWithDependencies(
|
||||
&configPrompterStub{},
|
||||
|
|
|
|||
Loading…
Reference in a new issue