]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/tests/api/server/logs.ts
Merge remote-tracking branch 'origin/pr/1785' into develop
[github/Chocobozzz/PeerTube.git] / server / tests / api / server / logs.ts
1 /* tslint:disable:no-unused-expression */
2
3 import * as chai from 'chai'
4 import 'mocha'
5 import {
6 flushTests,
7 killallServers,
8 flushAndRunServer,
9 ServerInfo,
10 setAccessTokensToServers,
11 cleanupTests
12 } from '../../../../shared/extra-utils/index'
13 import { waitJobs } from '../../../../shared/extra-utils/server/jobs'
14 import { uploadVideo } from '../../../../shared/extra-utils/videos/videos'
15 import { getLogs } from '../../../../shared/extra-utils/logs/logs'
16
17 const expect = chai.expect
18
19 describe('Test logs', function () {
20 let server: ServerInfo
21
22 before(async function () {
23 this.timeout(30000)
24
25 server = await flushAndRunServer(1)
26 await setAccessTokensToServers([ server ])
27 })
28
29 it('Should get logs with a start date', async function () {
30 this.timeout(10000)
31
32 await uploadVideo(server.url, server.accessToken, { name: 'video 1' })
33 await waitJobs([ server ])
34
35 const now = new Date()
36
37 await uploadVideo(server.url, server.accessToken, { name: 'video 2' })
38 await waitJobs([ server ])
39
40 const res = await getLogs(server.url, server.accessToken, now)
41 const logsString = JSON.stringify(res.body)
42
43 expect(logsString.includes('video 1')).to.be.false
44 expect(logsString.includes('video 2')).to.be.true
45 })
46
47 it('Should get logs with an end date', async function () {
48 this.timeout(20000)
49
50 await uploadVideo(server.url, server.accessToken, { name: 'video 3' })
51 await waitJobs([ server ])
52
53 const now1 = new Date()
54
55 await uploadVideo(server.url, server.accessToken, { name: 'video 4' })
56 await waitJobs([ server ])
57
58 const now2 = new Date()
59
60 await uploadVideo(server.url, server.accessToken, { name: 'video 5' })
61 await waitJobs([ server ])
62
63 const res = await getLogs(server.url, server.accessToken, now1, now2)
64 const logsString = JSON.stringify(res.body)
65
66 expect(logsString.includes('video 3')).to.be.false
67 expect(logsString.includes('video 4')).to.be.true
68 expect(logsString.includes('video 5')).to.be.false
69 })
70
71 it('Should get filter by level', async function () {
72 this.timeout(10000)
73
74 const now = new Date()
75
76 await uploadVideo(server.url, server.accessToken, { name: 'video 6' })
77 await waitJobs([ server ])
78
79 {
80 const res = await getLogs(server.url, server.accessToken, now, undefined, 'info')
81 const logsString = JSON.stringify(res.body)
82
83 expect(logsString.includes('video 6')).to.be.true
84 }
85
86 {
87 const res = await getLogs(server.url, server.accessToken, now, undefined, 'warn')
88 const logsString = JSON.stringify(res.body)
89
90 expect(logsString.includes('video 6')).to.be.false
91 }
92 })
93
94 after(async function () {
95 await cleanupTests([ server ])
96 })
97 })