Add logs endpoint
[oweals/peertube.git] / server / tests / api / check-params / logs.ts
1 /* tslint:disable:no-unused-expression */
2
3 import 'mocha'
4
5 import {
6   createUser,
7   flushTests,
8   killallServers,
9   runServer,
10   ServerInfo,
11   setAccessTokensToServers,
12   userLogin
13 } from '../../../../shared/utils'
14 import { makeGetRequest } from '../../../../shared/utils/requests/requests'
15
16 describe('Test logs API validators', function () {
17   const path = '/api/v1/server/logs'
18   let server: ServerInfo
19   let userAccessToken = ''
20
21   // ---------------------------------------------------------------
22
23   before(async function () {
24     this.timeout(120000)
25
26     await flushTests()
27
28     server = await runServer(1)
29
30     await setAccessTokensToServers([ server ])
31
32     const user = {
33       username: 'user1',
34       password: 'my super password'
35     }
36     await createUser(server.url, server.accessToken, user.username, user.password)
37     userAccessToken = await userLogin(server, user)
38   })
39
40   describe('When getting logs', function () {
41
42     it('Should fail with a non authenticated user', async function () {
43       await makeGetRequest({
44         url: server.url,
45         path,
46         statusCodeExpected: 401
47       })
48     })
49
50     it('Should fail with a non admin user', async function () {
51       await makeGetRequest({
52         url: server.url,
53         path,
54         token: userAccessToken,
55         statusCodeExpected: 403
56       })
57     })
58
59     it('Should fail with a missing startDate query', async function () {
60       await makeGetRequest({
61         url: server.url,
62         path,
63         token: server.accessToken,
64         statusCodeExpected: 400
65       })
66     })
67
68     it('Should fail with a bad startDate query', async function () {
69       await makeGetRequest({
70         url: server.url,
71         path,
72         token: server.accessToken,
73         query: { startDate: 'toto' },
74         statusCodeExpected: 400
75       })
76     })
77
78     it('Should fail with a bad endDate query', async function () {
79       await makeGetRequest({
80         url: server.url,
81         path,
82         token: server.accessToken,
83         query: { startDate: new Date().toISOString(), endDate: 'toto' },
84         statusCodeExpected: 400
85       })
86     })
87
88     it('Should fail with a bad level parameter', async function () {
89       await makeGetRequest({
90         url: server.url,
91         path,
92         token: server.accessToken,
93         query: { startDate: new Date().toISOString(), level: 'toto' },
94         statusCodeExpected: 400
95       })
96     })
97
98     it('Should succeed with the correct params', async function () {
99       await makeGetRequest({
100         url: server.url,
101         path,
102         token: server.accessToken,
103         query: { startDate: new Date().toISOString() },
104         statusCodeExpected: 200
105       })
106     })
107   })
108
109   after(async function () {
110     killallServers([ server ])
111
112     // Keep the logs if the test failed
113     if (this['ok']) {
114       await flushTests()
115     }
116   })
117 })