package api import ( "errors" "fmt" "testing" "gitea.stevedudenhoeffer.com/steve/pansy/internal/domain" ) // TestInputMessage: the bare sentinel stays generic; a wrapped reason reaches // the person without the "invalid input: " prefix in front of it. func TestInputMessage(t *testing.T) { cases := []struct { err error want string }{ {domain.ErrInvalidInput, "invalid input"}, {fmt.Errorf("%w: chat model %q: unknown provider", domain.ErrInvalidInput, "nonesuch/model"), `chat model "nonesuch/model": unknown provider`}, {fmt.Errorf("loading: %w", domain.ErrInvalidInput), "loading: invalid input"}, } for _, c := range cases { if !errors.Is(c.err, domain.ErrInvalidInput) { t.Fatalf("%v should still be an ErrInvalidInput", c.err) } if got := inputMessage(c.err); got != c.want { t.Errorf("inputMessage(%v) = %q, want %q", c.err, got, c.want) } } }