boosty

Форк
0
/
current_test.go 
79 строк · 1.5 Кб
1
package boosty
2

3
import (
4
	"fmt"
5
	"net/http"
6
	"net/http/httptest"
7
	"testing"
8

9
	"github.com/stretchr/testify/suite"
10
	"gohome.4gophers.ru/getapp/boosty/auth"
11
	"gohome.4gophers.ru/getapp/boosty/request"
12
)
13

14
type CurrentTestSuite struct {
15
	suite.Suite
16
}
17

18
func (s *CurrentTestSuite) SetupTest() {
19
	//
20
}
21

22
func (s *BoostyTestSuite) TestStats() {
23
	tests := map[string]struct {
24
		followersCount int
25
		paidCount      int
26
		body           string
27
		token          string
28
	}{
29
		"success stats": {
30
			followersCount: 0, paidCount: 0, body: currentBody, token: "123",
31
		},
32
	}
33

34
	for name, test := range tests {
35
		s.T().Run(name, func(t *testing.T) {
36
			svr := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
37
				auth := r.Header.Get("Authorization")
38

39
				s.Assert().Equal(auth, "Bearer "+test.token)
40

41
				fmt.Fprintf(w, test.body)
42
			}))
43
			defer svr.Close()
44

45
			auth, err := auth.New(auth.WithInfo(auth.Info{
46
				AccessToken: test.token,
47
			}))
48
			s.Assert().NoError(err)
49

50
			req, err := request.New(
51
				request.WithUrl(svr.URL),
52
				request.WithAuth(auth),
53
				request.WithClient(&http.Client{}),
54
			)
55
			s.Assert().NoError(err)
56

57
			b, err := New("", WithRequest(req))
58
			s.Assert().NoError(err)
59

60
			stats, err := b.Current()
61

62
			s.Assert().NoError(err)
63
			s.Assert().Equal(test.followersCount, stats.FollowersCount)
64
			s.Assert().Equal(test.paidCount, stats.FollowersCount)
65

66
		})
67
	}
68
}
69

70
const currentBody = `
71
{
72
  "followersCount": 0,
73
  "income": 6210,
74
  "balance": 0,
75
  "payoutSum": 6210,
76
  "paidCount": 2,
77
  "hold": 0
78
}
79
`
80

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.