]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/tests/api/requests.js
215c2a8f3ac4521257a88945f6edcfb3aea84ae2
[github/Chocobozzz/PeerTube.git] / server / tests / api / requests.js
1 /* eslint-disable no-unused-expressions */
2
3 'use strict'
4
5 const chai = require('chai')
6 const each = require('async/each')
7 const expect = chai.expect
8 const request = require('supertest')
9
10 const loginUtils = require('../utils/login')
11 const podsUtils = require('../utils/pods')
12 const serversUtils = require('../utils/servers')
13 const videosUtils = require('../utils/videos')
14
15 describe('Test requests stats', function () {
16 const path = '/api/v1/requests/stats'
17 let servers = []
18
19 function uploadVideo (server, callback) {
20 const name = 'my super video'
21 const description = 'my super description'
22 const tags = [ 'tag1', 'tag2' ]
23 const fixture = 'video_short.webm'
24
25 videosUtils.uploadVideo(server.url, server.accessToken, name, description, tags, fixture, callback)
26 }
27
28 function getRequestsStats (server, callback) {
29 request(server.url)
30 .get(path)
31 .set('Accept', 'application/json')
32 .set('Authorization', 'Bearer ' + server.accessToken)
33 .expect(200)
34 .end(callback)
35 }
36
37 // ---------------------------------------------------------------
38
39 before(function (done) {
40 this.timeout(20000)
41 serversUtils.flushAndRunMultipleServers(2, function (serversRun, urlsRun) {
42 servers = serversRun
43
44 each(servers, function (server, callbackEach) {
45 loginUtils.loginAndGetAccessToken(server, function (err, accessToken) {
46 if (err) return callbackEach(err)
47
48 server.accessToken = accessToken
49 callbackEach()
50 })
51 }, function (err) {
52 if (err) throw err
53
54 const server1 = servers[0]
55 podsUtils.makeFriends(server1.url, server1.accessToken, done)
56 })
57 })
58 })
59
60 it('Should have a correct timer', function (done) {
61 const server = servers[0]
62
63 getRequestsStats(server, function (err, res) {
64 if (err) throw err
65
66 const body = res.body
67 expect(body.remainingMilliSeconds).to.be.at.least(0)
68 expect(body.remainingMilliSeconds).to.be.at.most(10000)
69
70 done()
71 })
72 })
73
74 it('Should have the correct total request', function (done) {
75 this.timeout(15000)
76
77 const server = servers[0]
78 // Ensure the requests of pod 1 won't be made
79 servers[1].app.kill()
80
81 uploadVideo(server, function (err) {
82 if (err) throw err
83
84 setTimeout(function () {
85 getRequestsStats(server, function (err, res) {
86 if (err) throw err
87
88 const body = res.body
89 expect(body.totalRequests).to.equal(1)
90
91 done()
92 })
93 }, 1000)
94 })
95 })
96
97 after(function (done) {
98 process.kill(-servers[0].app.pid)
99
100 if (this.ok) {
101 serversUtils.flushTests(done)
102 } else {
103 done()
104 }
105 })
106 })