boosty
/
stats_test.go
779 строк · 11.1 Кб
1package boosty2
3import (4"fmt"5"net/http"6"net/http/httptest"7"net/url"8"testing"9
10"github.com/stretchr/testify/suite"11"gohome.4gophers.ru/getapp/boosty/auth"12"gohome.4gophers.ru/getapp/boosty/request"13)
14
15type StatsTestSuite struct {16suite.Suite17}
18
19func (s *StatsTestSuite) SetupTest() {20//21}
22
23func (s *StatsTestSuite) TestStats() {24tests := map[string]struct {25postSaleMoney int26decFollowers int27donations int28body string29token string30}{31"success stats": {32postSaleMoney: 5, decFollowers: 5, donations: 5, body: statsBody, token: "123",33},34}35
36for name, test := range tests {37s.T().Run(name, func(t *testing.T) {38svr := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {39auth := r.Header.Get("Authorization")40
41s.Assert().Equal(auth, "Bearer "+test.token)42
43fmt.Fprintf(w, test.body)44}))45defer svr.Close()46
47auth, err := auth.New(auth.WithInfo(auth.Info{48AccessToken: test.token,49}))50s.Assert().NoError(err)51
52req, err := request.New(53request.WithUrl(svr.URL),54request.WithAuth(auth),55request.WithClient(&http.Client{}),56)57s.Assert().NoError(err)58
59b, err := New("", WithRequest(req))60s.Assert().NoError(err)61
62stats, err := b.Stats(url.Values{})63
64s.Assert().NoError(err)65s.Assert().Equal(test.postSaleMoney, len(stats.PostSaleMoney))66s.Assert().Equal(test.decFollowers, len(stats.DecFollowers))67s.Assert().Equal(test.donations, len(stats.Donations))68})69}70}
71
72const statsBody = `73{
74"postSaleMoney": [
75{
76"day": 20,
77"year": 2023,
78"count": 0,
79"month": 8
80},
81{
82"day": 5,
83"year": 2023,
84"month": 9,
85"count": 0
86},
87{
88"day": 6,
89"year": 2023,
90"count": 0,
91"month": 9
92},
93{
94"month": 9,
95"count": 0,
96"year": 2023,
97"day": 7
98},
99{
100"year": 2023,
101"day": 18,
102"month": 9,
103"count": 0
104}
105],
106"upSubscribers": [
107{
108"year": 2023,
109"day": 20,
110"count": 0,
111"month": 8
112},
113{
114"month": 9,
115"count": 0,
116"day": 5,
117"year": 2023
118},
119{
120"count": 0,
121"month": 9,
122"year": 2023,
123"day": 6
124},
125{
126"count": 0,
127"month": 9,
128"day": 7,
129"year": 2023
130},
131{
132"year": 2023,
133"day": 18,
134"count": 0,
135"month": 9
136}
137],
138"messagesSale": [
139{
140"count": 0,
141"month": 8,
142"year": 2023,
143"day": 20
144},
145{
146"month": 9,
147"count": 0,
148"year": 2023,
149"day": 5
150},
151{
152"count": 0,
153"month": 9,
154"day": 6,
155"year": 2023
156},
157{
158"month": 9,
159"count": 0,
160"year": 2023,
161"day": 7
162},
163{
164"day": 18,
165"year": 2023,
166"count": 0,
167"month": 9
168}
169],
170"decSubscribers": [
171{
172"count": 0,
173"month": 8,
174"year": 2023,
175"day": 20
176},
177{
178"year": 2023,
179"day": 5,
180"count": 0,
181"month": 9
182},
183{
184"month": 9,
185"count": 0,
186"day": 6,
187"year": 2023
188},
189{
190"count": 0,
191"month": 9,
192"day": 7,
193"year": 2023
194},
195{
196"month": 9,
197"count": 0,
198"day": 18,
199"year": 2023
200}
201],
202"postsSale": [
203{
204"day": 20,
205"year": 2023,
206"month": 8,
207"count": 0
208},
209{
210"count": 0,
211"month": 9,
212"year": 2023,
213"day": 5
214},
215{
216"day": 6,
217"year": 2023,
218"month": 9,
219"count": 0
220},
221{
222"month": 9,
223"count": 0,
224"year": 2023,
225"day": 7
226},
227{
228"day": 18,
229"year": 2023,
230"month": 9,
231"count": 0
232}
233],
234"donationsMoney": [
235{
236"count": 0,
237"month": 8,
238"year": 2023,
239"day": 20
240},
241{
242"year": 2023,
243"day": 5,
244"month": 9,
245"count": 0
246},
247{
248"month": 9,
249"count": 0,
250"year": 2023,
251"day": 6
252},
253{
254"day": 7,
255"year": 2023,
256"count": 0,
257"month": 9
258},
259{
260"month": 9,
261"count": 0,
262"day": 18,
263"year": 2023
264}
265],
266"giftsSaleSaleMoney": [
267{
268"month": 8,
269"count": 0,
270"day": 20,
271"year": 2023
272},
273{
274"month": 9,
275"count": 0,
276"day": 5,
277"year": 2023
278},
279{
280"year": 2023,
281"day": 6,
282"month": 9,
283"count": 0
284},
285{
286"month": 9,
287"count": 0,
288"day": 7,
289"year": 2023
290},
291{
292"day": 18,
293"year": 2023,
294"count": 0,
295"month": 9
296}
297],
298"messagesSaleMoney": [
299{
300"month": 8,
301"count": 0,
302"year": 2023,
303"day": 20
304},
305{
306"year": 2023,
307"day": 5,
308"count": 0,
309"month": 9
310},
311{
312"year": 2023,
313"day": 6,
314"count": 0,
315"month": 9
316},
317{
318"day": 7,
319"year": 2023,
320"count": 0,
321"month": 9
322},
323{
324"day": 18,
325"year": 2023,
326"month": 9,
327"count": 0
328}
329],
330"totalMoney": [
331{
332"day": 20,
333"year": 2023,
334"count": 0,
335"month": 8
336},
337{
338"month": 9,
339"count": 0,
340"year": 2023,
341"day": 5
342},
343{
344"year": 2023,
345"day": 6,
346"count": 300,
347"month": 9
348},
349{
350"year": 2023,
351"day": 7,
352"month": 9,
353"count": 0
354},
355{
356"count": 0,
357"month": 9,
358"day": 18,
359"year": 2023
360}
361],
362"decFollowers": [
363{
364"count": 0,
365"month": 8,
366"year": 2023,
367"day": 20
368},
369{
370"day": 5,
371"year": 2023,
372"count": 0,
373"month": 9
374},
375{
376"month": 9,
377"count": 0,
378"day": 6,
379"year": 2023
380},
381{
382"year": 2023,
383"day": 7,
384"month": 9,
385"count": 0
386},
387{
388"count": 0,
389"month": 9,
390"year": 2023,
391"day": 18
392}
393],
394"incSubscribersMoney": [
395{
396"year": 2023,
397"day": 20,
398"month": 8,
399"count": 0
400},
401{
402"count": 0,
403"month": 9,
404"day": 5,
405"year": 2023
406},
407{
408"day": 6,
409"year": 2023,
410"month": 9,
411"count": 0
412},
413{
414"month": 9,
415"count": 0,
416"year": 2023,
417"day": 7
418},
419{
420"year": 2023,
421"day": 18,
422"count": 0,
423"month": 9
424}
425],
426"recurrentsMoney": [
427{
428"year": 2023,
429"day": 20,
430"month": 8,
431"count": 0
432},
433{
434"day": 5,
435"year": 2023,
436"count": 0,
437"month": 9
438},
439{
440"count": 300,
441"month": 9,
442"day": 6,
443"year": 2023
444},
445{
446"year": 2023,
447"day": 7,
448"count": 0,
449"month": 9
450},
451{
452"year": 2023,
453"day": 18,
454"count": 0,
455"month": 9
456}
457],
458"recurrents": [
459{
460"month": 8,
461"count": 0,
462"day": 20,
463"year": 2023
464},
465{
466"year": 2023,
467"day": 5,
468"count": 0,
469"month": 9
470},
471{
472"day": 6,
473"year": 2023,
474"count": 1,
475"month": 9
476},
477{
478"year": 2023,
479"day": 7,
480"count": 0,
481"month": 9
482},
483{
484"month": 9,
485"count": 0,
486"day": 18,
487"year": 2023
488}
489],
490"referalMoney": [
491{
492"year": 2023,
493"day": 20,
494"month": 8,
495"count": 0
496},
497{
498"year": 2023,
499"day": 5,
500"count": 0,
501"month": 9
502},
503{
504"month": 9,
505"count": 0,
506"year": 2023,
507"day": 6
508},
509{
510"year": 2023,
511"day": 7,
512"month": 9,
513"count": 0
514},
515{
516"count": 0,
517"month": 9,
518"day": 18,
519"year": 2023
520}
521],
522"referalMoneyOut": [
523{
524"day": 20,
525"year": 2023,
526"count": 0,
527"month": 8
528},
529{
530"day": 5,
531"year": 2023,
532"count": 0,
533"month": 9
534},
535{
536"month": 9,
537"count": 0,
538"day": 6,
539"year": 2023
540},
541{
542"year": 2023,
543"day": 7,
544"count": 0,
545"month": 9
546},
547{
548"count": 0,
549"month": 9,
550"year": 2023,
551"day": 18
552}
553],
554"incFollowers": [
555{
556"count": 0,
557"month": 8,
558"day": 20,
559"year": 2023
560},
561{
562"day": 5,
563"year": 2023,
564"month": 9,
565"count": 0
566},
567{
568"day": 6,
569"year": 2023,
570"month": 9,
571"count": 0
572},
573{
574"month": 9,
575"count": 0,
576"year": 2023,
577"day": 7
578},
579{
580"month": 9,
581"count": 0,
582"year": 2023,
583"day": 18
584}
585],
586"referal": [
587{
588"count": 0,
589"month": 8,
590"year": 2023,
591"day": 20
592},
593{
594"year": 2023,
595"day": 5,
596"month": 9,
597"count": 0
598},
599{
600"day": 6,
601"year": 2023,
602"count": 0,
603"month": 9
604},
605{
606"year": 2023,
607"day": 7,
608"month": 9,
609"count": 0
610},
611{
612"year": 2023,
613"day": 18,
614"count": 0,
615"month": 9
616}
617],
618"donations": [
619{
620"day": 20,
621"year": 2023,
622"month": 8,
623"count": 0
624},
625{
626"month": 9,
627"count": 0,
628"year": 2023,
629"day": 5
630},
631{
632"year": 2023,
633"day": 6,
634"month": 9,
635"count": 0
636},
637{
638"day": 7,
639"year": 2023,
640"month": 9,
641"count": 0
642},
643{
644"year": 2023,
645"day": 18,
646"count": 0,
647"month": 9
648}
649],
650"incSubscribers": [
651{
652"year": 2023,
653"day": 20,
654"count": 0,
655"month": 8
656},
657{
658"day": 5,
659"year": 2023,
660"count": 0,
661"month": 9
662},
663{
664"year": 2023,
665"day": 6,
666"count": 0,
667"month": 9
668},
669{
670"day": 7,
671"year": 2023,
672"month": 9,
673"count": 0
674},
675{
676"year": 2023,
677"day": 18,
678"count": 0,
679"month": 9
680}
681],
682"giftsSale": [
683{
684"day": 20,
685"year": 2023,
686"month": 8,
687"count": 0
688},
689{
690"day": 5,
691"year": 2023,
692"month": 9,
693"count": 0
694},
695{
696"count": 0,
697"month": 9,
698"day": 6,
699"year": 2023
700},
701{
702"count": 0,
703"month": 9,
704"day": 7,
705"year": 2023
706},
707{
708"month": 9,
709"count": 0,
710"day": 18,
711"year": 2023
712}
713],
714"upSubscribersMoney": [
715{
716"year": 2023,
717"day": 20,
718"month": 8,
719"count": 0
720},
721{
722"day": 5,
723"year": 2023,
724"count": 0,
725"month": 9
726},
727{
728"month": 9,
729"count": 0,
730"year": 2023,
731"day": 6
732},
733{
734"year": 2023,
735"day": 7,
736"count": 0,
737"month": 9
738},
739{
740"day": 18,
741"year": 2023,
742"count": 0,
743"month": 9
744}
745],
746"holds": [
747{
748"year": 2023,
749"day": 20,
750"month": 8,
751"count": 0
752},
753{
754"year": 2023,
755"day": 5,
756"month": 9,
757"count": 0
758},
759{
760"month": 9,
761"count": 0,
762"day": 6,
763"year": 2023
764},
765{
766"count": 0,
767"month": 9,
768"year": 2023,
769"day": 7
770},
771{
772"count": 0,
773"month": 9,
774"year": 2023,
775"day": 18
776}
777]
778}
779`
780