Преглед изворни кода

fix(locale): guard nil wrapped errors in Translate

Frédéric Guillot пре 3 недеља
родитељ
комит
7516bdfcaf
2 измењених фајлова са 13 додато и 0 уклоњено
  1. 3 0
      internal/locale/error.go
  2. 10 0
      internal/locale/error_test.go

+ 3 - 0
internal/locale/error.go

@@ -25,6 +25,9 @@ func (l *LocalizedErrorWrapper) Error() error {
 
 func (l *LocalizedErrorWrapper) Translate(language string) string {
 	if l.translationKey == "" {
+		if l.originalErr == nil {
+			return ""
+		}
 		return l.originalErr.Error()
 	}
 	return NewPrinter(language).Printf(l.translationKey, l.translationArgs...)

+ 10 - 0
internal/locale/error_test.go

@@ -283,6 +283,16 @@ func TestLocalizedErrorWrapper_WithNilError(t *testing.T) {
 	}
 }
 
+func TestLocalizedErrorWrapper_TranslateWithEmptyKeyAndNilError(t *testing.T) {
+	wrapper := NewLocalizedErrorWrapper(nil, "")
+
+	result := wrapper.Translate("en_US")
+	expected := ""
+	if result != expected {
+		t.Errorf("Expected empty string for nil wrapped error, got %q", result)
+	}
+}
+
 func TestLocalizedError_EmptyKey(t *testing.T) {
 	localizedErr := NewLocalizedError("")