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