boosty

Форк
0
/
stats_test.go 
779 строк · 11.1 Кб
1
package boosty
2

3
import (
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

15
type StatsTestSuite struct {
16
	suite.Suite
17
}
18

19
func (s *StatsTestSuite) SetupTest() {
20
	//
21
}
22

23
func (s *StatsTestSuite) TestStats() {
24
	tests := map[string]struct {
25
		postSaleMoney int
26
		decFollowers  int
27
		donations     int
28
		body          string
29
		token         string
30
	}{
31
		"success stats": {
32
			postSaleMoney: 5, decFollowers: 5, donations: 5, body: statsBody, token: "123",
33
		},
34
	}
35

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

41
				s.Assert().Equal(auth, "Bearer "+test.token)
42

43
				fmt.Fprintf(w, test.body)
44
			}))
45
			defer svr.Close()
46

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

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

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

62
			stats, err := b.Stats(url.Values{})
63

64
			s.Assert().NoError(err)
65
			s.Assert().Equal(test.postSaleMoney, len(stats.PostSaleMoney))
66
			s.Assert().Equal(test.decFollowers, len(stats.DecFollowers))
67
			s.Assert().Equal(test.donations, len(stats.Donations))
68
		})
69
	}
70
}
71

72
const 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

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

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

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

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