1 /* tslint:disable:no-unused-expression */
3 import * as request from 'supertest'
5 import * as chai from 'chai'
6 const expect = chai.expect
14 setAccessTokensToServers,
15 flushAndRunMultipleServers
18 describe('Test requests schedulers stats', function () {
19 const requestSchedulerNames = [ 'requestScheduler', 'requestVideoQaduScheduler', 'requestVideoEventScheduler' ]
20 const path = '/api/v1/request-schedulers/stats'
21 let servers: ServerInfo[] = []
23 function uploadVideoWrapper (server: ServerInfo) {
24 const videoAttributes = {
25 tags: [ 'tag1', 'tag2' ]
28 return uploadVideo(server.url, server.accessToken, videoAttributes)
31 function getRequestsStats (server: ServerInfo) {
32 return request(server.url)
34 .set('Accept', 'application/json')
35 .set('Authorization', 'Bearer ' + server.accessToken)
39 // ---------------------------------------------------------------
41 before(async function () {
44 servers = await flushAndRunMultipleServers(2)
46 await setAccessTokensToServers(servers)
48 await makeFriends(servers[0].url, servers[0].accessToken)
51 it('Should have a correct timer', async function () {
52 const server = servers[0]
54 const res = await getRequestsStats(server)
56 const requestSchedulers = res.body
57 for (const requestSchedulerName of requestSchedulerNames) {
58 const requestScheduler = requestSchedulers[requestSchedulerName]
60 expect(requestScheduler.remainingMilliSeconds).to.be.at.least(0)
61 expect(requestScheduler.remainingMilliSeconds).to.be.at.most(10000)
65 it('Should have the correct total request', async function () {
68 const server = servers[0]
69 // Ensure the requests of pod 1 won't be made
72 await uploadVideoWrapper(server)
76 const res = await getRequestsStats(server)
77 const requestSchedulers = res.body
78 const requestScheduler = requestSchedulers.requestScheduler
79 expect(requestScheduler.totalRequests).to.equal(1)
82 after(async function () {
83 process.kill(-servers[0].app.pid)