import * as request from 'supertest'
import { makePostBodyRequest, makePutBodyRequest, updateAvatarRequest } from '../requests/requests'
-
-import { UserRole } from '../../index'
import { NSFWPolicyType } from '../../models/videos/nsfw-policy.type'
-import { ServerInfo, userLogin } from '..'
import { UserAdminFlag } from '../../models/users/user-flag.model'
+import { UserRegister } from '../../models/users/user-register.model'
+import { UserRole } from '../../models/users/user-role'
+import { ServerInfo } from '../server/servers'
+import { userLogin } from './login'
type CreateUserArgs = { url: string,
accessToken: string,
.expect(specialStatus)
}
+function registerUserWithChannel (options: {
+ url: string,
+ user: { username: string, password: string, displayName?: string },
+ channel: { name: string, displayName: string }
+}) {
+ const path = '/api/v1/users/register'
+ const body: UserRegister = {
+ username: options.user.username,
+ password: options.user.password,
+ email: options.user.username + '@example.com',
+ channel: options.channel
+ }
+
+ if (options.user.displayName) {
+ Object.assign(body, { displayName: options.user.displayName })
+ }
+
+ return makePostBodyRequest({
+ url: options.url,
+ path,
+ fields: body,
+ statusCodeExpected: 204
+ })
+}
+
function getMyUserInformation (url: string, accessToken: string, specialStatus = 200) {
const path = '/api/v1/users/me'
function getUsersListPaginationAndSort (url: string, accessToken: string, start: number, count: number, sort: string, search?: string) {
const path = '/api/v1/users'
+ const query = {
+ start,
+ count,
+ sort,
+ search
+ }
+
return request(url)
.get(path)
- .query({ start })
- .query({ count })
- .query({ sort })
- .query({ search })
+ .query(query)
.set('Accept', 'application/json')
.set('Authorization', 'Bearer ' + accessToken)
.expect(200)
})
}
-function verifyEmail (url: string, userId: number, verificationString: string, statusCodeExpected = 204) {
+function verifyEmail (url: string, userId: number, verificationString: string, isPendingEmail = false, statusCodeExpected = 204) {
const path = '/api/v1/users/' + userId + '/verify-email'
return makePostBodyRequest({
url,
path,
- fields: { verificationString },
+ fields: {
+ verificationString,
+ isPendingEmail
+ },
statusCodeExpected
})
}
getMyUserInformation,
getMyUserVideoRating,
deleteMe,
+ registerUserWithChannel,
getMyUserVideoQuotaUsed,
getUsersList,
getUsersListPaginationAndSort,