diff options
Diffstat (limited to 'server/tests/api/users')
-rw-r--r-- | server/tests/api/users/index.ts | 3 | ||||
-rw-r--r-- | server/tests/api/users/registrations.ts | 379 | ||||
-rw-r--r-- | server/tests/api/users/users-email-verification.ts (renamed from server/tests/api/users/users-verification.ts) | 39 | ||||
-rw-r--r-- | server/tests/api/users/users.ts | 50 |
4 files changed, 399 insertions, 72 deletions
diff --git a/server/tests/api/users/index.ts b/server/tests/api/users/index.ts index 0313845ef..a4443a8ec 100644 --- a/server/tests/api/users/index.ts +++ b/server/tests/api/users/index.ts | |||
@@ -1,7 +1,8 @@ | |||
1 | import './oauth' | 1 | import './oauth' |
2 | import './registrations`' | ||
2 | import './two-factor' | 3 | import './two-factor' |
3 | import './user-subscriptions' | 4 | import './user-subscriptions' |
4 | import './user-videos' | 5 | import './user-videos' |
5 | import './users' | 6 | import './users' |
6 | import './users-multiple-servers' | 7 | import './users-multiple-servers' |
7 | import './users-verification' | 8 | import './users-email-verification' |
diff --git a/server/tests/api/users/registrations.ts b/server/tests/api/users/registrations.ts new file mode 100644 index 000000000..a9e1114e8 --- /dev/null +++ b/server/tests/api/users/registrations.ts | |||
@@ -0,0 +1,379 @@ | |||
1 | /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */ | ||
2 | |||
3 | import { expect } from 'chai' | ||
4 | import { MockSmtpServer } from '@server/tests/shared' | ||
5 | import { UserRegistrationState, UserRole } from '@shared/models' | ||
6 | import { | ||
7 | cleanupTests, | ||
8 | ConfigCommand, | ||
9 | createSingleServer, | ||
10 | PeerTubeServer, | ||
11 | setAccessTokensToServers, | ||
12 | waitJobs | ||
13 | } from '@shared/server-commands' | ||
14 | |||
15 | describe('Test registrations', function () { | ||
16 | let server: PeerTubeServer | ||
17 | |||
18 | const emails: object[] = [] | ||
19 | let emailPort: number | ||
20 | |||
21 | before(async function () { | ||
22 | this.timeout(30000) | ||
23 | |||
24 | emailPort = await MockSmtpServer.Instance.collectEmails(emails) | ||
25 | |||
26 | server = await createSingleServer(1, ConfigCommand.getEmailOverrideConfig(emailPort)) | ||
27 | |||
28 | await setAccessTokensToServers([ server ]) | ||
29 | await server.config.enableSignup(false) | ||
30 | }) | ||
31 | |||
32 | describe('Direct registrations of a new user', function () { | ||
33 | let user1Token: string | ||
34 | |||
35 | it('Should register a new user', async function () { | ||
36 | const user = { displayName: 'super user 1', username: 'user_1', password: 'my super password' } | ||
37 | const channel = { name: 'my_user_1_channel', displayName: 'my channel rocks' } | ||
38 | |||
39 | await server.registrations.register({ ...user, channel }) | ||
40 | }) | ||
41 | |||
42 | it('Should be able to login with this registered user', async function () { | ||
43 | const user1 = { username: 'user_1', password: 'my super password' } | ||
44 | |||
45 | user1Token = await server.login.getAccessToken(user1) | ||
46 | }) | ||
47 | |||
48 | it('Should have the correct display name', async function () { | ||
49 | const user = await server.users.getMyInfo({ token: user1Token }) | ||
50 | expect(user.account.displayName).to.equal('super user 1') | ||
51 | }) | ||
52 | |||
53 | it('Should have the correct video quota', async function () { | ||
54 | const user = await server.users.getMyInfo({ token: user1Token }) | ||
55 | expect(user.videoQuota).to.equal(5 * 1024 * 1024) | ||
56 | }) | ||
57 | |||
58 | it('Should have created the channel', async function () { | ||
59 | const { displayName } = await server.channels.get({ channelName: 'my_user_1_channel' }) | ||
60 | |||
61 | expect(displayName).to.equal('my channel rocks') | ||
62 | }) | ||
63 | |||
64 | it('Should remove me', async function () { | ||
65 | { | ||
66 | const { data } = await server.users.list() | ||
67 | expect(data.find(u => u.username === 'user_1')).to.not.be.undefined | ||
68 | } | ||
69 | |||
70 | await server.users.deleteMe({ token: user1Token }) | ||
71 | |||
72 | { | ||
73 | const { data } = await server.users.list() | ||
74 | expect(data.find(u => u.username === 'user_1')).to.be.undefined | ||
75 | } | ||
76 | }) | ||
77 | }) | ||
78 | |||
79 | describe('Registration requests', function () { | ||
80 | let id2: number | ||
81 | let id3: number | ||
82 | let id4: number | ||
83 | |||
84 | let user2Token: string | ||
85 | let user3Token: string | ||
86 | |||
87 | before(async function () { | ||
88 | this.timeout(60000) | ||
89 | |||
90 | await server.config.enableSignup(true) | ||
91 | |||
92 | { | ||
93 | const { id } = await server.registrations.requestRegistration({ | ||
94 | username: 'user4', | ||
95 | registrationReason: 'registration reason 4' | ||
96 | }) | ||
97 | |||
98 | id4 = id | ||
99 | } | ||
100 | }) | ||
101 | |||
102 | it('Should request a registration without a channel', async function () { | ||
103 | { | ||
104 | const { id } = await server.registrations.requestRegistration({ | ||
105 | username: 'user2', | ||
106 | displayName: 'my super user 2', | ||
107 | email: 'user2@example.com', | ||
108 | password: 'user2password', | ||
109 | registrationReason: 'registration reason 2' | ||
110 | }) | ||
111 | |||
112 | id2 = id | ||
113 | } | ||
114 | }) | ||
115 | |||
116 | it('Should request a registration with a channel', async function () { | ||
117 | const { id } = await server.registrations.requestRegistration({ | ||
118 | username: 'user3', | ||
119 | displayName: 'my super user 3', | ||
120 | channel: { | ||
121 | displayName: 'my user 3 channel', | ||
122 | name: 'super_user3_channel' | ||
123 | }, | ||
124 | email: 'user3@example.com', | ||
125 | password: 'user3password', | ||
126 | registrationReason: 'registration reason 3' | ||
127 | }) | ||
128 | |||
129 | id3 = id | ||
130 | }) | ||
131 | |||
132 | it('Should list these registration requests', async function () { | ||
133 | { | ||
134 | const { total, data } = await server.registrations.list({ sort: '-createdAt' }) | ||
135 | expect(total).to.equal(3) | ||
136 | expect(data).to.have.lengthOf(3) | ||
137 | |||
138 | { | ||
139 | expect(data[0].id).to.equal(id3) | ||
140 | expect(data[0].username).to.equal('user3') | ||
141 | expect(data[0].accountDisplayName).to.equal('my super user 3') | ||
142 | |||
143 | expect(data[0].channelDisplayName).to.equal('my user 3 channel') | ||
144 | expect(data[0].channelHandle).to.equal('super_user3_channel') | ||
145 | |||
146 | expect(data[0].createdAt).to.exist | ||
147 | expect(data[0].updatedAt).to.exist | ||
148 | |||
149 | expect(data[0].email).to.equal('user3@example.com') | ||
150 | expect(data[0].emailVerified).to.be.null | ||
151 | |||
152 | expect(data[0].moderationResponse).to.be.null | ||
153 | expect(data[0].registrationReason).to.equal('registration reason 3') | ||
154 | expect(data[0].state.id).to.equal(UserRegistrationState.PENDING) | ||
155 | expect(data[0].state.label).to.equal('Pending') | ||
156 | expect(data[0].user).to.be.null | ||
157 | } | ||
158 | |||
159 | { | ||
160 | expect(data[1].id).to.equal(id2) | ||
161 | expect(data[1].username).to.equal('user2') | ||
162 | expect(data[1].accountDisplayName).to.equal('my super user 2') | ||
163 | |||
164 | expect(data[1].channelDisplayName).to.be.null | ||
165 | expect(data[1].channelHandle).to.be.null | ||
166 | |||
167 | expect(data[1].createdAt).to.exist | ||
168 | expect(data[1].updatedAt).to.exist | ||
169 | |||
170 | expect(data[1].email).to.equal('user2@example.com') | ||
171 | expect(data[1].emailVerified).to.be.null | ||
172 | |||
173 | expect(data[1].moderationResponse).to.be.null | ||
174 | expect(data[1].registrationReason).to.equal('registration reason 2') | ||
175 | expect(data[1].state.id).to.equal(UserRegistrationState.PENDING) | ||
176 | expect(data[1].state.label).to.equal('Pending') | ||
177 | expect(data[1].user).to.be.null | ||
178 | } | ||
179 | |||
180 | { | ||
181 | expect(data[2].username).to.equal('user4') | ||
182 | } | ||
183 | } | ||
184 | |||
185 | { | ||
186 | const { total, data } = await server.registrations.list({ count: 1, start: 1, sort: 'createdAt' }) | ||
187 | |||
188 | expect(total).to.equal(3) | ||
189 | expect(data).to.have.lengthOf(1) | ||
190 | expect(data[0].id).to.equal(id2) | ||
191 | } | ||
192 | |||
193 | { | ||
194 | const { total, data } = await server.registrations.list({ search: 'user3' }) | ||
195 | expect(total).to.equal(1) | ||
196 | expect(data).to.have.lengthOf(1) | ||
197 | expect(data[0].id).to.equal(id3) | ||
198 | } | ||
199 | }) | ||
200 | |||
201 | it('Should reject a registration request', async function () { | ||
202 | await server.registrations.reject({ id: id4, moderationResponse: 'I do not want id 4 on this instance' }) | ||
203 | }) | ||
204 | |||
205 | it('Should have sent an email to the user explanining the registration has been rejected', async function () { | ||
206 | this.timeout(50000) | ||
207 | |||
208 | await waitJobs([ server ]) | ||
209 | |||
210 | const email = emails.find(e => e['to'][0]['address'] === 'user4@example.com') | ||
211 | expect(email).to.exist | ||
212 | |||
213 | expect(email['subject']).to.contain('been rejected') | ||
214 | expect(email['text']).to.contain('been rejected') | ||
215 | expect(email['text']).to.contain('I do not want id 4 on this instance') | ||
216 | }) | ||
217 | |||
218 | it('Should accept registration requests', async function () { | ||
219 | await server.registrations.accept({ id: id2, moderationResponse: 'Welcome id 2' }) | ||
220 | await server.registrations.accept({ id: id3, moderationResponse: 'Welcome id 3' }) | ||
221 | }) | ||
222 | |||
223 | it('Should have sent an email to the user explanining the registration has been accepted', async function () { | ||
224 | this.timeout(50000) | ||
225 | |||
226 | await waitJobs([ server ]) | ||
227 | |||
228 | { | ||
229 | const email = emails.find(e => e['to'][0]['address'] === 'user2@example.com') | ||
230 | expect(email).to.exist | ||
231 | |||
232 | expect(email['subject']).to.contain('been accepted') | ||
233 | expect(email['text']).to.contain('been accepted') | ||
234 | expect(email['text']).to.contain('Welcome id 2') | ||
235 | } | ||
236 | |||
237 | { | ||
238 | const email = emails.find(e => e['to'][0]['address'] === 'user3@example.com') | ||
239 | expect(email).to.exist | ||
240 | |||
241 | expect(email['subject']).to.contain('been accepted') | ||
242 | expect(email['text']).to.contain('been accepted') | ||
243 | expect(email['text']).to.contain('Welcome id 3') | ||
244 | } | ||
245 | }) | ||
246 | |||
247 | it('Should login with these users', async function () { | ||
248 | user2Token = await server.login.getAccessToken({ username: 'user2', password: 'user2password' }) | ||
249 | user3Token = await server.login.getAccessToken({ username: 'user3', password: 'user3password' }) | ||
250 | }) | ||
251 | |||
252 | it('Should have created the appropriate attributes for user 2', async function () { | ||
253 | const me = await server.users.getMyInfo({ token: user2Token }) | ||
254 | |||
255 | expect(me.username).to.equal('user2') | ||
256 | expect(me.account.displayName).to.equal('my super user 2') | ||
257 | expect(me.videoQuota).to.equal(5 * 1024 * 1024) | ||
258 | expect(me.videoChannels[0].name).to.equal('user2_channel') | ||
259 | expect(me.videoChannels[0].displayName).to.equal('Main user2 channel') | ||
260 | expect(me.role.id).to.equal(UserRole.USER) | ||
261 | expect(me.email).to.equal('user2@example.com') | ||
262 | }) | ||
263 | |||
264 | it('Should have created the appropriate attributes for user 3', async function () { | ||
265 | const me = await server.users.getMyInfo({ token: user3Token }) | ||
266 | |||
267 | expect(me.username).to.equal('user3') | ||
268 | expect(me.account.displayName).to.equal('my super user 3') | ||
269 | expect(me.videoQuota).to.equal(5 * 1024 * 1024) | ||
270 | expect(me.videoChannels[0].name).to.equal('super_user3_channel') | ||
271 | expect(me.videoChannels[0].displayName).to.equal('my user 3 channel') | ||
272 | expect(me.role.id).to.equal(UserRole.USER) | ||
273 | expect(me.email).to.equal('user3@example.com') | ||
274 | }) | ||
275 | |||
276 | it('Should list these accepted/rejected registration requests', async function () { | ||
277 | const { data } = await server.registrations.list({ sort: 'createdAt' }) | ||
278 | const { data: users } = await server.users.list() | ||
279 | |||
280 | { | ||
281 | expect(data[0].id).to.equal(id4) | ||
282 | expect(data[0].state.id).to.equal(UserRegistrationState.REJECTED) | ||
283 | expect(data[0].state.label).to.equal('Rejected') | ||
284 | |||
285 | expect(data[0].moderationResponse).to.equal('I do not want id 4 on this instance') | ||
286 | expect(data[0].user).to.be.null | ||
287 | |||
288 | expect(users.find(u => u.username === 'user4')).to.not.exist | ||
289 | } | ||
290 | |||
291 | { | ||
292 | expect(data[1].id).to.equal(id2) | ||
293 | expect(data[1].state.id).to.equal(UserRegistrationState.ACCEPTED) | ||
294 | expect(data[1].state.label).to.equal('Accepted') | ||
295 | |||
296 | expect(data[1].moderationResponse).to.equal('Welcome id 2') | ||
297 | expect(data[1].user).to.exist | ||
298 | |||
299 | const user2 = users.find(u => u.username === 'user2') | ||
300 | expect(data[1].user.id).to.equal(user2.id) | ||
301 | } | ||
302 | |||
303 | { | ||
304 | expect(data[2].id).to.equal(id3) | ||
305 | expect(data[2].state.id).to.equal(UserRegistrationState.ACCEPTED) | ||
306 | expect(data[2].state.label).to.equal('Accepted') | ||
307 | |||
308 | expect(data[2].moderationResponse).to.equal('Welcome id 3') | ||
309 | expect(data[2].user).to.exist | ||
310 | |||
311 | const user3 = users.find(u => u.username === 'user3') | ||
312 | expect(data[2].user.id).to.equal(user3.id) | ||
313 | } | ||
314 | }) | ||
315 | |||
316 | it('Shoulde delete a registration', async function () { | ||
317 | await server.registrations.delete({ id: id2 }) | ||
318 | await server.registrations.delete({ id: id3 }) | ||
319 | |||
320 | const { total, data } = await server.registrations.list() | ||
321 | expect(total).to.equal(1) | ||
322 | expect(data).to.have.lengthOf(1) | ||
323 | expect(data[0].id).to.equal(id4) | ||
324 | |||
325 | const { data: users } = await server.users.list() | ||
326 | |||
327 | for (const username of [ 'user2', 'user3' ]) { | ||
328 | expect(users.find(u => u.username === username)).to.exist | ||
329 | } | ||
330 | }) | ||
331 | |||
332 | it('Should request a registration without a channel, that will conflict with an already existing channel', async function () { | ||
333 | let id1: number | ||
334 | let id2: number | ||
335 | |||
336 | { | ||
337 | const { id } = await server.registrations.requestRegistration({ | ||
338 | registrationReason: 'tt', | ||
339 | username: 'user5', | ||
340 | password: 'user5password', | ||
341 | channel: { | ||
342 | displayName: 'channel 6', | ||
343 | name: 'user6_channel' | ||
344 | } | ||
345 | }) | ||
346 | |||
347 | id1 = id | ||
348 | } | ||
349 | |||
350 | { | ||
351 | const { id } = await server.registrations.requestRegistration({ | ||
352 | registrationReason: 'tt', | ||
353 | username: 'user6', | ||
354 | password: 'user6password' | ||
355 | }) | ||
356 | |||
357 | id2 = id | ||
358 | } | ||
359 | |||
360 | await server.registrations.accept({ id: id1, moderationResponse: 'tt' }) | ||
361 | await server.registrations.accept({ id: id2, moderationResponse: 'tt' }) | ||
362 | |||
363 | const user5Token = await server.login.getAccessToken('user5', 'user5password') | ||
364 | const user6Token = await server.login.getAccessToken('user6', 'user6password') | ||
365 | |||
366 | const user5 = await server.users.getMyInfo({ token: user5Token }) | ||
367 | const user6 = await server.users.getMyInfo({ token: user6Token }) | ||
368 | |||
369 | expect(user5.videoChannels[0].name).to.equal('user6_channel') | ||
370 | expect(user6.videoChannels[0].name).to.equal('user6_channel-1') | ||
371 | }) | ||
372 | }) | ||
373 | |||
374 | after(async function () { | ||
375 | MockSmtpServer.Instance.kill() | ||
376 | |||
377 | await cleanupTests([ server ]) | ||
378 | }) | ||
379 | }) | ||
diff --git a/server/tests/api/users/users-verification.ts b/server/tests/api/users/users-email-verification.ts index 19a8df9e1..cb84dc758 100644 --- a/server/tests/api/users/users-verification.ts +++ b/server/tests/api/users/users-email-verification.ts | |||
@@ -3,9 +3,16 @@ | |||
3 | import { expect } from 'chai' | 3 | import { expect } from 'chai' |
4 | import { MockSmtpServer } from '@server/tests/shared' | 4 | import { MockSmtpServer } from '@server/tests/shared' |
5 | import { HttpStatusCode } from '@shared/models' | 5 | import { HttpStatusCode } from '@shared/models' |
6 | import { cleanupTests, createSingleServer, PeerTubeServer, setAccessTokensToServers, waitJobs } from '@shared/server-commands' | 6 | import { |
7 | 7 | cleanupTests, | |
8 | describe('Test users account verification', function () { | 8 | ConfigCommand, |
9 | createSingleServer, | ||
10 | PeerTubeServer, | ||
11 | setAccessTokensToServers, | ||
12 | waitJobs | ||
13 | } from '@shared/server-commands' | ||
14 | |||
15 | describe('Test users email verification', function () { | ||
9 | let server: PeerTubeServer | 16 | let server: PeerTubeServer |
10 | let userId: number | 17 | let userId: number |
11 | let userAccessToken: string | 18 | let userAccessToken: string |
@@ -25,14 +32,7 @@ describe('Test users account verification', function () { | |||
25 | this.timeout(30000) | 32 | this.timeout(30000) |
26 | 33 | ||
27 | const port = await MockSmtpServer.Instance.collectEmails(emails) | 34 | const port = await MockSmtpServer.Instance.collectEmails(emails) |
28 | 35 | server = await createSingleServer(1, ConfigCommand.getEmailOverrideConfig(port)) | |
29 | const overrideConfig = { | ||
30 | smtp: { | ||
31 | hostname: '127.0.0.1', | ||
32 | port | ||
33 | } | ||
34 | } | ||
35 | server = await createSingleServer(1, overrideConfig) | ||
36 | 36 | ||
37 | await setAccessTokensToServers([ server ]) | 37 | await setAccessTokensToServers([ server ]) |
38 | }) | 38 | }) |
@@ -40,17 +40,18 @@ describe('Test users account verification', function () { | |||
40 | it('Should register user and send verification email if verification required', async function () { | 40 | it('Should register user and send verification email if verification required', async function () { |
41 | this.timeout(30000) | 41 | this.timeout(30000) |
42 | 42 | ||
43 | await server.config.updateCustomSubConfig({ | 43 | await server.config.updateExistingSubConfig({ |
44 | newConfig: { | 44 | newConfig: { |
45 | signup: { | 45 | signup: { |
46 | enabled: true, | 46 | enabled: true, |
47 | requiresApproval: false, | ||
47 | requiresEmailVerification: true, | 48 | requiresEmailVerification: true, |
48 | limit: 10 | 49 | limit: 10 |
49 | } | 50 | } |
50 | } | 51 | } |
51 | }) | 52 | }) |
52 | 53 | ||
53 | await server.users.register(user1) | 54 | await server.registrations.register(user1) |
54 | 55 | ||
55 | await waitJobs(server) | 56 | await waitJobs(server) |
56 | expectedEmailsLength++ | 57 | expectedEmailsLength++ |
@@ -127,17 +128,15 @@ describe('Test users account verification', function () { | |||
127 | 128 | ||
128 | it('Should register user not requiring email verification if setting not enabled', async function () { | 129 | it('Should register user not requiring email verification if setting not enabled', async function () { |
129 | this.timeout(5000) | 130 | this.timeout(5000) |
130 | await server.config.updateCustomSubConfig({ | 131 | await server.config.updateExistingSubConfig({ |
131 | newConfig: { | 132 | newConfig: { |
132 | signup: { | 133 | signup: { |
133 | enabled: true, | 134 | requiresEmailVerification: false |
134 | requiresEmailVerification: false, | ||
135 | limit: 10 | ||
136 | } | 135 | } |
137 | } | 136 | } |
138 | }) | 137 | }) |
139 | 138 | ||
140 | await server.users.register(user2) | 139 | await server.registrations.register(user2) |
141 | 140 | ||
142 | await waitJobs(server) | 141 | await waitJobs(server) |
143 | expect(emails).to.have.lengthOf(expectedEmailsLength) | 142 | expect(emails).to.have.lengthOf(expectedEmailsLength) |
@@ -152,9 +151,7 @@ describe('Test users account verification', function () { | |||
152 | await server.config.updateCustomSubConfig({ | 151 | await server.config.updateCustomSubConfig({ |
153 | newConfig: { | 152 | newConfig: { |
154 | signup: { | 153 | signup: { |
155 | enabled: true, | 154 | requiresEmailVerification: true |
156 | requiresEmailVerification: true, | ||
157 | limit: 10 | ||
158 | } | 155 | } |
159 | } | 156 | } |
160 | }) | 157 | }) |
diff --git a/server/tests/api/users/users.ts b/server/tests/api/users/users.ts index 93e2e489a..f1e170971 100644 --- a/server/tests/api/users/users.ts +++ b/server/tests/api/users/users.ts | |||
@@ -429,56 +429,6 @@ describe('Test users', function () { | |||
429 | }) | 429 | }) |
430 | }) | 430 | }) |
431 | 431 | ||
432 | describe('Registering a new user', function () { | ||
433 | let user15AccessToken: string | ||
434 | |||
435 | it('Should register a new user', async function () { | ||
436 | const user = { displayName: 'super user 15', username: 'user_15', password: 'my super password' } | ||
437 | const channel = { name: 'my_user_15_channel', displayName: 'my channel rocks' } | ||
438 | |||
439 | await server.users.register({ ...user, channel }) | ||
440 | }) | ||
441 | |||
442 | it('Should be able to login with this registered user', async function () { | ||
443 | const user15 = { | ||
444 | username: 'user_15', | ||
445 | password: 'my super password' | ||
446 | } | ||
447 | |||
448 | user15AccessToken = await server.login.getAccessToken(user15) | ||
449 | }) | ||
450 | |||
451 | it('Should have the correct display name', async function () { | ||
452 | const user = await server.users.getMyInfo({ token: user15AccessToken }) | ||
453 | expect(user.account.displayName).to.equal('super user 15') | ||
454 | }) | ||
455 | |||
456 | it('Should have the correct video quota', async function () { | ||
457 | const user = await server.users.getMyInfo({ token: user15AccessToken }) | ||
458 | expect(user.videoQuota).to.equal(5 * 1024 * 1024) | ||
459 | }) | ||
460 | |||
461 | it('Should have created the channel', async function () { | ||
462 | const { displayName } = await server.channels.get({ channelName: 'my_user_15_channel' }) | ||
463 | |||
464 | expect(displayName).to.equal('my channel rocks') | ||
465 | }) | ||
466 | |||
467 | it('Should remove me', async function () { | ||
468 | { | ||
469 | const { data } = await server.users.list() | ||
470 | expect(data.find(u => u.username === 'user_15')).to.not.be.undefined | ||
471 | } | ||
472 | |||
473 | await server.users.deleteMe({ token: user15AccessToken }) | ||
474 | |||
475 | { | ||
476 | const { data } = await server.users.list() | ||
477 | expect(data.find(u => u.username === 'user_15')).to.be.undefined | ||
478 | } | ||
479 | }) | ||
480 | }) | ||
481 | |||
482 | describe('User blocking', function () { | 432 | describe('User blocking', function () { |
483 | let user16Id: number | 433 | let user16Id: number |
484 | let user16AccessToken: string | 434 | let user16AccessToken: string |