From bcdf45d0193610ed0c99751e1cfc62955a7fe297 Mon Sep 17 00:00:00 2001 From: azimut Date: Wed, 12 Apr 2023 05:01:07 -0300 Subject: [PATCH] test: add test of json unmarshall for twitter --- internal/twitter/fetch.go | 16 ++++++++++++---- internal/twitter/fetch_test.go | 25 +++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 4 deletions(-) diff --git a/internal/twitter/fetch.go b/internal/twitter/fetch.go index 5eaed6a..9c18ac6 100644 --- a/internal/twitter/fetch.go +++ b/internal/twitter/fetch.go @@ -7,16 +7,24 @@ import ( "github.com/azimut/cli-view/internal/fetch" ) -func Fetch(url, ua string, timeout time.Duration) (tweet *Embedded, err error) { - url, err = EffectiveUrl(url) +func Fetch(tweetUrl, ua string, timeout time.Duration) (*Embedded, error) { + embedUrl, err := EffectiveUrl(tweetUrl) if err != nil { return nil, err } - res, err := fetch.Fetch(url, ua, timeout) + rawJson, err := fetch.Fetch(embedUrl, ua, timeout) if err != nil { return nil, err } - b := []byte(res) + tweet, err := toEmbedded(rawJson) + if err != nil { + return nil, err + } + return tweet, nil +} + +func toEmbedded(rawJson string) (tweet *Embedded, err error) { + b := []byte(rawJson) if err = json.Unmarshal(b, &tweet); err != nil { return nil, err } diff --git a/internal/twitter/fetch_test.go b/internal/twitter/fetch_test.go index 0f949c8..58b7224 100644 --- a/internal/twitter/fetch_test.go +++ b/internal/twitter/fetch_test.go @@ -1,15 +1,40 @@ package twitter import ( + "io/ioutil" "testing" "time" ) const URL = `https://twitter.com/TwitterDev/status/1443269993676763138` +var TweetFiles = []string{ + "tweet-image-AND-quote.json", + "tweet.json", + "tweet-mult-image.json", + "tweet-link.json", + "tweet-quote.json", + "tweet-url-with-image.json", +} + func TestTWFetch(t *testing.T) { _, err := Fetch(URL, "Twitter_View/0.1", time.Second*10) if err != nil { t.Fail() } } + +func TestUnmarshall(t *testing.T) { + for _, tweetFile := range TweetFiles { + bytes, err := ioutil.ReadFile("../../testdata/" + tweetFile) + if err != nil { + t.Fail() + break + } + _, err = toEmbedded(string(bytes)) + if err != nil { + t.Fail() + break + } + } +}