From c6b0a150f18f6dcf94a03c874e9a0197a95b57d6 Mon Sep 17 00:00:00 2001 From: Artyom Belousov Date: Tue, 22 Mar 2022 21:19:29 +0300 Subject: [PATCH] Fix panic on scryfall error --- internal/cardsinfo/names.go | 10 +++++++--- internal/cardsinfo/names_test.go | 15 +++++++++++++-- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/internal/cardsinfo/names.go b/internal/cardsinfo/names.go index 31866bb..a237aaf 100644 --- a/internal/cardsinfo/names.go +++ b/internal/cardsinfo/names.go @@ -2,11 +2,12 @@ package cardsinfo import ( "encoding/json" - "gitlab.com/flygrounder/go-mtg-vk/internal/dicttranslate" "io/ioutil" "net/http" "net/url" "strings" + + "gitlab.com/flygrounder/go-mtg-vk/internal/dicttranslate" ) const scryfallUrl = "https://api.scryfall.com" @@ -38,13 +39,16 @@ func applyFilters(name string) string { } func getCardByUrl(path string) string { - response, _ := http.Get(path) + response, err := http.Get(path) + if err != nil { + return "" + } defer func() { _ = response.Body.Close() }() data, _ := ioutil.ReadAll(response.Body) var v card - err := json.Unmarshal(data, &v) + err = json.Unmarshal(data, &v) if err != nil { return "" } diff --git a/internal/cardsinfo/names_test.go b/internal/cardsinfo/names_test.go index e648146..3b947e6 100644 --- a/internal/cardsinfo/names_test.go +++ b/internal/cardsinfo/names_test.go @@ -1,10 +1,12 @@ package cardsinfo import ( - "github.com/stretchr/testify/assert" - "gopkg.in/h2non/gock.v1" + "errors" "net/http" "testing" + + "github.com/stretchr/testify/assert" + "gopkg.in/h2non/gock.v1" ) func TestGetNameByCardId(t *testing.T) { @@ -64,3 +66,12 @@ func TestGetOriginalName_DoubleSide(t *testing.T) { name := f.GetOriginalName("card") assert.Equal(t, "Legion's Landing | Adanto, the First Fort", name) } + +func TestGetOriginalName_Error(t *testing.T) { + defer gock.Off() + + gock.New(scryfallUrl + "/cards/named?fuzzy=card").ReplyError(errors.New("internal server error")) + f := &Fetcher{} + name := f.GetOriginalName("card") + assert.Equal(t, "", name) +}