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