getMyUserVideoRating,
getUsersList,
immutableAssign,
+ killallServers,
makeGetRequest,
makePostBodyRequest,
makePutBodyRequest,
makeUploadRequest,
registerUser,
removeUser,
+ reRunServer,
ServerInfo,
setAccessTokensToServers,
unblockUser,
import { waitJobs } from '../../../../shared/extra-utils/server/jobs'
import { expect } from 'chai'
import { UserAdminFlag } from '../../../../shared/models/users/user-flag.model'
+import { MockSmtpServer } from '../../../../shared/extra-utils/miscs/email'
describe('Test users API validators', function () {
const path = '/api/v1/users/'
let serverWithRegistrationDisabled: ServerInfo
let userAccessToken = ''
let moderatorAccessToken = ''
+ let emailPort: number
+ let overrideConfig: Object
// eslint-disable-next-line @typescript-eslint/no-unused-vars
let channelId: number
before(async function () {
this.timeout(30000)
+ const emails: object[] = []
+ emailPort = await MockSmtpServer.Instance.collectEmails(emails)
+
+ overrideConfig = { signup: { limit: 8 } }
+
{
const res = await Promise.all([
- flushAndRunServer(1, { signup: { limit: 7 } }),
+ flushAndRunServer(1, overrideConfig),
flushAndRunServer(2)
])
await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields })
})
+ it('Should fail with empty password and no smtp configured', async function () {
+ const fields = immutableAssign(baseCorrectParams, { password: '' })
+
+ await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields })
+ })
+
+ it('Should succeed with no password on a server with smtp enabled', async function () {
+ this.timeout(10000)
+
+ killallServers([ server ])
+
+ const config = immutableAssign(overrideConfig, {
+ smtp: {
+ hostname: 'localhost',
+ port: emailPort
+ }
+ })
+ await reRunServer(server, config)
+
+ const fields = immutableAssign(baseCorrectParams, {
+ password: '',
+ username: 'create_password',
+ email: 'create_password@example.com'
+ })
+
+ await makePostBodyRequest({
+ url: server.url,
+ path: path,
+ token: server.accessToken,
+ fields,
+ statusCodeExpected: 200
+ })
+ })
+
it('Should fail with invalid admin flags', async function () {
const fields = immutableAssign(baseCorrectParams, { adminFlags: 'toto' })
})
after(async function () {
+ MockSmtpServer.Instance.kill()
+
await cleanupTests([ server, serverWithRegistrationDisabled ])
})
})