]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - server/tests/utils/users.ts
Fix tests and user quota
[github/Chocobozzz/PeerTube.git] / server / tests / utils / users.ts
CommitLineData
0e1dc3e7
C
1import * as request from 'supertest'
2
5c98d3bf 3function createUser (url: string, accessToken: string, username: string, password: string, videoQuota = 1000000, specialStatus = 204) {
0e1dc3e7
C
4 const path = '/api/v1/users'
5 const body = {
6 username,
7 password,
5c98d3bf
C
8 email: username + '@example.com',
9 videoQuota
0e1dc3e7
C
10 }
11
12 return request(url)
13 .post(path)
14 .set('Accept', 'application/json')
15 .set('Authorization', 'Bearer ' + accessToken)
16 .send(body)
17 .expect(specialStatus)
18}
19
20function registerUser (url: string, username: string, password: string, specialStatus = 204) {
21 const path = '/api/v1/users/register'
22 const body = {
23 username,
24 password,
25 email: username + '@example.com'
26 }
27
28 return request(url)
29 .post(path)
30 .set('Accept', 'application/json')
31 .send(body)
32 .expect(specialStatus)
33}
34
5c98d3bf 35function getMyUserInformation (url: string, accessToken: string) {
0e1dc3e7
C
36 const path = '/api/v1/users/me'
37
38 return request(url)
39 .get(path)
40 .set('Accept', 'application/json')
41 .set('Authorization', 'Bearer ' + accessToken)
42 .expect(200)
43 .expect('Content-Type', /json/)
44}
45
5c98d3bf
C
46function getUserInformation (url: string, accessToken: string, userId: number) {
47 const path = '/api/v1/users/' + userId
48
49 return request(url)
50 .get(path)
51 .set('Accept', 'application/json')
52 .set('Authorization', 'Bearer ' + accessToken)
53 .expect(200)
54 .expect('Content-Type', /json/)
55}
56
0e1dc3e7
C
57function getUserVideoRating (url: string, accessToken: string, videoId: number) {
58 const path = '/api/v1/users/me/videos/' + videoId + '/rating'
59
60 return request(url)
61 .get(path)
62 .set('Accept', 'application/json')
63 .set('Authorization', 'Bearer ' + accessToken)
64 .expect(200)
65 .expect('Content-Type', /json/)
66}
67
68function getUsersList (url: string) {
69 const path = '/api/v1/users'
70
71 return request(url)
72 .get(path)
73 .set('Accept', 'application/json')
74 .expect(200)
75 .expect('Content-Type', /json/)
76}
77
78function getUsersListPaginationAndSort (url: string, start: number, count: number, sort: string) {
79 const path = '/api/v1/users'
80
81 return request(url)
82 .get(path)
83 .query({ start })
84 .query({ count })
85 .query({ sort })
86 .set('Accept', 'application/json')
87 .expect(200)
88 .expect('Content-Type', /json/)
89}
90
91function removeUser (url: string, userId: number, accessToken: string, expectedStatus = 204) {
92 const path = '/api/v1/users'
93
94 return request(url)
95 .delete(path + '/' + userId)
96 .set('Accept', 'application/json')
97 .set('Authorization', 'Bearer ' + accessToken)
98 .expect(expectedStatus)
99}
100
5c98d3bf
C
101function updateMyUser (url: string, accessToken: string, newPassword: string, displayNSFW?: boolean, email?: string) {
102 const path = '/api/v1/users/me'
0e1dc3e7
C
103
104 const toSend = {}
105 if (newPassword !== undefined && newPassword !== null) toSend['password'] = newPassword
106 if (displayNSFW !== undefined && displayNSFW !== null) toSend['displayNSFW'] = displayNSFW
5c98d3bf
C
107 if (email !== undefined && email !== null) toSend['email'] = email
108
109 return request(url)
110 .put(path)
111 .set('Accept', 'application/json')
112 .set('Authorization', 'Bearer ' + accessToken)
113 .send(toSend)
114 .expect(204)
115}
116
117function updateUser (url: string, userId: number, accessToken: string, email: string, videoQuota: number) {
118 const path = '/api/v1/users/' + userId
119
120 const toSend = {}
77a5501f 121 if (email !== undefined && email !== null) toSend['email'] = email
5c98d3bf 122 if (videoQuota !== undefined && videoQuota !== null) toSend['videoQuota'] = videoQuota
0e1dc3e7
C
123
124 return request(url)
125 .put(path)
126 .set('Accept', 'application/json')
127 .set('Authorization', 'Bearer ' + accessToken)
128 .send(toSend)
129 .expect(204)
130}
131
132// ---------------------------------------------------------------------------
133
134export {
135 createUser,
136 registerUser,
5c98d3bf 137 getMyUserInformation,
0e1dc3e7
C
138 getUserVideoRating,
139 getUsersList,
140 getUsersListPaginationAndSort,
141 removeUser,
5c98d3bf
C
142 updateUser,
143 updateMyUser,
144 getUserInformation
0e1dc3e7 145}