]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/tests/api/request-schedulers.ts
Convert real world script to typescript
[github/Chocobozzz/PeerTube.git] / server / tests / api / request-schedulers.ts
1 /* tslint:disable:no-unused-expression */
2
3 import * as request from 'supertest'
4 import 'mocha'
5 import * as chai from 'chai'
6 const expect = chai.expect
7
8 import {
9 ServerInfo,
10 flushTests,
11 uploadVideo,
12 makeFriends,
13 wait,
14 setAccessTokensToServers,
15 flushAndRunMultipleServers,
16 getRequestsStats,
17 killallServers
18 } from '../utils'
19
20 describe('Test requests schedulers stats', function () {
21 const requestSchedulerNames = [ 'requestScheduler', 'requestVideoQaduScheduler', 'requestVideoEventScheduler' ]
22 const path = '/api/v1/request-schedulers/stats'
23 let servers: ServerInfo[] = []
24
25 function uploadVideoWrapper (server: ServerInfo) {
26 const videoAttributes = {
27 tags: [ 'tag1', 'tag2' ]
28 }
29
30 return uploadVideo(server.url, server.accessToken, videoAttributes)
31 }
32
33 // ---------------------------------------------------------------
34
35 before(async function () {
36 this.timeout(120000)
37
38 servers = await flushAndRunMultipleServers(2)
39
40 await setAccessTokensToServers(servers)
41
42 await makeFriends(servers[0].url, servers[0].accessToken)
43 })
44
45 it('Should have a correct timer', async function () {
46 const server = servers[0]
47
48 const res = await getRequestsStats(server)
49
50 const requestSchedulers = res.body
51 for (const requestSchedulerName of requestSchedulerNames) {
52 const requestScheduler = requestSchedulers[requestSchedulerName]
53
54 expect(requestScheduler.remainingMilliSeconds).to.be.at.least(0)
55 expect(requestScheduler.remainingMilliSeconds).to.be.at.most(10000)
56 }
57 })
58
59 it('Should have the correct total request', async function () {
60 this.timeout(15000)
61
62 const server = servers[0]
63 // Ensure the requests of pod 1 won't be made
64 servers[1].app.kill()
65
66 await uploadVideoWrapper(server)
67
68 await wait(1000)
69
70 const res = await getRequestsStats(server)
71 const requestSchedulers = res.body
72 const requestScheduler = requestSchedulers.requestScheduler
73 expect(requestScheduler.totalRequests).to.equal(1)
74 })
75
76 after(async function () {
77 killallServers(servers)
78
79 if (this['ok']) {
80 await flushTests()
81 }
82 })
83 })