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):
|
case errors.Is(err, mcpserver.ErrCredentialsNotConfigured):
|
||||||
return newUserFacingError("credentials not configured; run `email-mcp setup`", err)
|
return newUserFacingError("credentials not configured; run `email-mcp setup`", err)
|
||||||
case errors.Is(err, frameworksecretstore.ErrBackendUnavailable):
|
case errors.Is(err, frameworksecretstore.ErrBackendUnavailable):
|
||||||
return newUserFacingError(
|
return newUserFacingError(strings.TrimSpace(err.Error()), err)
|
||||||
fmt.Sprintf("%s is not available; configure the declared secret backend and retry", frameworksecretstore.BackendName()),
|
|
||||||
err,
|
|
||||||
)
|
|
||||||
case errors.Is(err, frameworksecretstore.ErrReadOnly):
|
case errors.Is(err, frameworksecretstore.ErrReadOnly):
|
||||||
return newUserFacingError("secret backend is read-only", err)
|
return newUserFacingError("secret backend is read-only", err)
|
||||||
default:
|
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) {
|
func TestExecuteSetupWritesMappedErrorAndReturnsExitCodeOne(t *testing.T) {
|
||||||
app := NewAppWithDependencies(
|
app := NewAppWithDependencies(
|
||||||
&configPrompterStub{},
|
&configPrompterStub{},
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue