]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - server/tests/api/requests.js
Videos likes/dislikes is implemented :)
[github/Chocobozzz/PeerTube.git] / server / tests / api / requests.js
CommitLineData
72329aaa
C
1/* eslint-disable no-unused-expressions */
2
d3cd34be
C
3'use strict'
4
5const chai = require('chai')
6const each = require('async/each')
7const expect = chai.expect
8const request = require('supertest')
9
10const loginUtils = require('../utils/login')
11const podsUtils = require('../utils/pods')
12const serversUtils = require('../utils/servers')
13const videosUtils = require('../utils/videos')
14
15describe('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
feb4bdfd 74 it('Should have the correct total request', function (done) {
d3cd34be
C
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
7920c273
C
84 setTimeout(function () {
85 getRequestsStats(server, function (err, res) {
86 if (err) throw err
d3cd34be 87
7920c273
C
88 const body = res.body
89 expect(body.totalRequests).to.equal(1)
d3cd34be 90
7920c273
C
91 done()
92 })
93 }, 1000)
d3cd34be
C
94 })
95 })
96
d3cd34be
C
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})