]>
git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/tests/api/check-params/users.js
3 const request
= require('supertest')
4 const series
= require('async/series')
6 const loginUtils
= require('../../utils/login')
7 const requestsUtils
= require('../../utils/requests')
8 const serversUtils
= require('../../utils/servers')
9 const usersUtils
= require('../../utils/users')
11 describe('Test users API validators', function () {
12 const path
= '/api/v1/users/'
16 let userAccessToken
= null
18 // ---------------------------------------------------------------
20 before(function (done
) {
25 serversUtils
.flushTests(next
)
28 serversUtils
.runServer(1, function (server1
) {
35 loginUtils
.loginAndGetAccessToken(server
, function (err
, token
) {
37 server
.accessToken
= token
43 const username
= 'user1'
44 const password
= 'my super password'
46 usersUtils
.createUser(server
.url
, server
.accessToken
, username
, password
, next
)
51 password: 'my super password'
54 loginUtils
.getUserAccessToken(server
, user
, function (err
, accessToken
) {
57 userAccessToken
= accessToken
65 describe('When listing users', function () {
66 it('Should fail with a bad start pagination', function (done
) {
69 .query({ start: 'hello' })
70 .set('Accept', 'application/json')
74 it('Should fail with a bad count pagination', function (done
) {
77 .query({ count: 'hello' })
78 .set('Accept', 'application/json')
82 it('Should fail with an incorrect sort', function (done
) {
85 .query({ sort: 'hello' })
86 .set('Accept', 'application/json')
91 describe('When adding a new user', function () {
92 it('Should fail with a too small username', function (done
) {
95 password: 'mysuperpassword'
98 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
)
101 it('Should fail with a too long username', function (done
) {
103 username: 'mysuperusernamewhichisverylong',
104 password: 'mysuperpassword'
107 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
)
110 it('Should fail with an incorrect username', function (done
) {
112 username: 'my username',
113 password: 'mysuperpassword'
116 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
)
119 it('Should fail with a too small password', function (done
) {
121 username: 'myusername',
125 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
)
128 it('Should fail with a too long password', function (done
) {
130 username: 'myusername',
131 password: 'my super long password which is very very very very very very very very very very very very very very' +
132 'very very very very very very very very very very very very very very very veryv very very very very' +
133 'very very very very very very very very very very very very very very very very very very very very long'
136 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
)
139 it('Should fail with an non authenticated user', function (done
) {
141 username: 'myusername',
142 password: 'my super password'
145 requestsUtils
.makePostBodyRequest(server
.url
, path
, 'super token', data
, done
, 401)
148 it('Should fail if we add a user with the same username', function (done
) {
151 password: 'my super password'
154 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
, 409)
157 it('Should succeed with the correct params', function (done
) {
160 password: 'my super password'
163 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
, 204)
166 it('Should fail with a non admin user', function (done
) {
169 password: 'my super password'
172 loginUtils
.loginAndGetAccessToken(server
, function (err
, accessToken
) {
175 userAccessToken
= accessToken
179 password: 'my super password'
182 requestsUtils
.makePostBodyRequest(server
.url
, path
, userAccessToken
, data
, done
, 403)
187 describe('When updating a user', function () {
188 before(function (done
) {
189 usersUtils
.getUsersList(server
.url
, function (err
, res
) {
192 userId
= res
.body
.data
[1].id
193 rootId
= res
.body
.data
[2].id
198 it('Should fail with a too small password', function (done
) {
203 requestsUtils
.makePutBodyRequest(server
.url
, path
+ userId
, userAccessToken
, data
, done
)
206 it('Should fail with a too long password', function (done
) {
208 password: 'my super long password which is very very very very very very very very very very very very very very' +
209 'very very very very very very very very very very very very very very very veryv very very very very' +
210 'very very very very very very very very very very very very very very very very very very very very long'
213 requestsUtils
.makePutBodyRequest(server
.url
, path
+ userId
, userAccessToken
, data
, done
)
216 it('Should fail with an non authenticated user', function (done
) {
218 password: 'my super password'
221 requestsUtils
.makePutBodyRequest(server
.url
, path
+ userId
, 'super token', data
, done
, 401)
224 it('Should succeed with the correct params', function (done
) {
226 password: 'my super password'
229 requestsUtils
.makePutBodyRequest(server
.url
, path
+ userId
, userAccessToken
, data
, done
, 204)
233 describe('When getting my information', function () {
234 it('Should fail with a non authenticated user', function (done
) {
237 .set('Authorization', 'Bearer faketoken')
238 .set('Accept', 'application/json')
242 it('Should success with the correct parameters', function (done
) {
245 .set('Authorization', 'Bearer ' + userAccessToken
)
246 .set('Accept', 'application/json')
251 describe('When removing an user', function () {
252 it('Should fail with an incorrect id', function (done
) {
254 .delete(path
+ 'bla-bla')
255 .set('Authorization', 'Bearer ' + server
.accessToken
)
259 it('Should fail with the root user', function (done
) {
261 .delete(path
+ rootId
)
262 .set('Authorization', 'Bearer ' + server
.accessToken
)
266 it('Should return 404 with a non existing id', function (done
) {
269 .set('Authorization', 'Bearer ' + server
.accessToken
)
274 after(function (done
) {
275 process
.kill(-server
.app
.pid
)
277 // Keep the logs if the test failed
279 serversUtils
.flushTests(done
)