]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/tests/api/check-params/users-emails.ts
Bumped to version v5.2.1
[github/Chocobozzz/PeerTube.git] / server / tests / api / check-params / users-emails.ts
1 /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
2 import { HttpStatusCode, UserRole } from '@shared/models'
3 import { cleanupTests, createSingleServer, makePostBodyRequest, PeerTubeServer, setAccessTokensToServers } from '@shared/server-commands'
4
5 describe('Test users API validators', function () {
6 let server: PeerTubeServer
7
8 // ---------------------------------------------------------------
9
10 before(async function () {
11 this.timeout(30000)
12
13 server = await createSingleServer(1, {
14 rates_limit: {
15 ask_send_email: {
16 max: 10
17 }
18 }
19 })
20
21 await setAccessTokensToServers([ server ])
22 await server.config.enableSignup(true)
23
24 await server.users.generate('moderator2', UserRole.MODERATOR)
25
26 await server.registrations.requestRegistration({
27 username: 'request1',
28 registrationReason: 'tt'
29 })
30 })
31
32 describe('When asking a password reset', function () {
33 const path = '/api/v1/users/ask-reset-password'
34
35 it('Should fail with a missing email', async function () {
36 const fields = {}
37
38 await makePostBodyRequest({ url: server.url, path, fields })
39 })
40
41 it('Should fail with an invalid email', async function () {
42 const fields = { email: 'hello' }
43
44 await makePostBodyRequest({ url: server.url, path, fields })
45 })
46
47 it('Should success with the correct params', async function () {
48 const fields = { email: 'admin@example.com' }
49
50 await makePostBodyRequest({
51 url: server.url,
52 path,
53 fields,
54 expectedStatus: HttpStatusCode.NO_CONTENT_204
55 })
56 })
57 })
58
59 describe('When asking for an account verification email', function () {
60 const path = '/api/v1/users/ask-send-verify-email'
61
62 it('Should fail with a missing email', async function () {
63 const fields = {}
64
65 await makePostBodyRequest({ url: server.url, path, fields })
66 })
67
68 it('Should fail with an invalid email', async function () {
69 const fields = { email: 'hello' }
70
71 await makePostBodyRequest({ url: server.url, path, fields })
72 })
73
74 it('Should succeed with the correct params', async function () {
75 const fields = { email: 'admin@example.com' }
76
77 await makePostBodyRequest({
78 url: server.url,
79 path,
80 fields,
81 expectedStatus: HttpStatusCode.NO_CONTENT_204
82 })
83 })
84 })
85
86 describe('When asking for a registration verification email', function () {
87 const path = '/api/v1/users/registrations/ask-send-verify-email'
88
89 it('Should fail with a missing email', async function () {
90 const fields = {}
91
92 await makePostBodyRequest({ url: server.url, path, fields })
93 })
94
95 it('Should fail with an invalid email', async function () {
96 const fields = { email: 'hello' }
97
98 await makePostBodyRequest({ url: server.url, path, fields })
99 })
100
101 it('Should succeed with the correct params', async function () {
102 const fields = { email: 'request1@example.com' }
103
104 await makePostBodyRequest({
105 url: server.url,
106 path,
107 fields,
108 expectedStatus: HttpStatusCode.NO_CONTENT_204
109 })
110 })
111 })
112
113 after(async function () {
114 await cleanupTests([ server ])
115 })
116 })