Add errorlint linter

This commit is contained in:
Deluan
2022-09-30 19:33:39 -04:00
parent db67c1277e
commit 77dbafff0f
6 changed files with 54 additions and 23 deletions
+18 -7
View File
@@ -2,6 +2,7 @@ package subsonic
import (
"context"
"errors"
"net/http/httptest"
"github.com/navidrome/navidrome/server/subsonic/responses"
@@ -46,9 +47,12 @@ var _ = Describe("AlbumListController", func() {
It("should fail if missing type parameter", func() {
r := newGetRequest()
_, err := controller.GetAlbumList(w, r)
var subErr subError
isSubError := errors.As(err, &subErr)
Expect(err).To(MatchError("required 'type' parameter is missing"))
Expect(err.(subError).code).To(Equal(responses.ErrorMissingParameter))
Expect(isSubError).To(BeTrue())
Expect(subErr).To(MatchError("required 'type' parameter is missing"))
Expect(subErr.code).To(Equal(responses.ErrorMissingParameter))
})
It("should return error if call fails", func() {
@@ -58,7 +62,9 @@ var _ = Describe("AlbumListController", func() {
_, err := controller.GetAlbumList(w, r)
Expect(err).ToNot(BeNil())
Expect(err.(subError).code).To(Equal(responses.ErrorGeneric))
var subErr subError
errors.As(err, &subErr)
Expect(subErr.code).To(Equal(responses.ErrorGeneric))
})
})
@@ -82,8 +88,11 @@ var _ = Describe("AlbumListController", func() {
r := newGetRequest()
_, err := controller.GetAlbumList2(w, r)
Expect(err).To(MatchError("required 'type' parameter is missing"))
Expect(err.(subError).code).To(Equal(responses.ErrorMissingParameter))
var subErr subError
errors.As(err, &subErr)
Expect(subErr).To(MatchError("required 'type' parameter is missing"))
Expect(subErr.code).To(Equal(responses.ErrorMissingParameter))
})
It("should return error if call fails", func() {
@@ -92,8 +101,10 @@ var _ = Describe("AlbumListController", func() {
_, err := controller.GetAlbumList2(w, r)
Expect(err).ToNot(BeNil())
Expect(err.(subError).code).To(Equal(responses.ErrorGeneric))
var subErr subError
errors.As(err, &subErr)
Expect(subErr).ToNot(BeNil())
Expect(subErr.code).To(Equal(responses.ErrorGeneric))
})
})
})
+5 -3
View File
@@ -183,7 +183,8 @@ func h(r chi.Router, path string, f handler) {
res, err := f(w, r)
if err != nil {
// If it is not a Subsonic error, convert it to an ErrorGeneric
if _, ok := err.(subError); !ok {
var subErr subError
if !errors.As(err, &subErr) {
if errors.Is(err, model.ErrNotFound) {
err = newError(responses.ErrorDataNotFound, "data not found")
} else {
@@ -233,8 +234,9 @@ func h410(r chi.Router, paths ...string) {
func sendError(w http.ResponseWriter, r *http.Request, err error) {
response := newResponse()
code := responses.ErrorGeneric
if e, ok := err.(subError); ok {
code = e.code
var subErr subError
if errors.As(err, &subErr) {
code = subErr.code
}
response.Status = "failed"
response.Error = &responses.Error{Code: code, Message: err.Error()}