package promptkit import ( "errors" "fmt" "testing" ) func TestGenerationErrorNilAndZeroValue(t *testing.T) { var nilError *GenerationError zeroError := &GenerationError{} for name, err := range map[string]*GenerationError{ "nil": nilError, "zero": zeroError, } { t.Run(name, func(t *testing.T) { if err.StatusCode() != 0 || err.ProviderCode() != "" || err.ProviderType() != "" || err.ProviderMessage() != "" { t.Fatalf("accessors returned provider details: %#v", err) } if err.Error() != "failed to generate output" || err.GoString() != "failed to generate output" { t.Fatalf("redacted formatting = (%q, %q)", err.Error(), err.GoString()) } if fmt.Sprintf("%v", err) != "failed to generate output" || fmt.Sprintf("%#v", err) != "failed to generate output" { t.Fatalf("formatted error = (%q, %q)", fmt.Sprintf("%v", err), fmt.Sprintf("%#v", err)) } if !errors.Is(err, ErrLLMGenerate) { t.Fatalf("errors.Is(%v, ErrLLMGenerate) = false", err) } }) } }