Cleanup tests
[oweals/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 })