import * as chai from 'chai'
import 'mocha'
-import { UserRole } from '../../../../shared/index'
+import { User, UserRole } from '../../../../shared/index'
import {
- createUser, flushTests, getBlacklistedVideosList, getMyUserInformation, getMyUserVideoQuotaUsed, getMyUserVideoRating,
- getUserInformation, getUsersList, getUsersListPaginationAndSort, getVideosList, killallServers, login, makePutBodyRequest, rateVideo,
- registerUser, removeUser, removeVideo, runServer, ServerInfo, testImage, updateMyAvatar, updateMyUser, updateUser, uploadVideo, userLogin
-} from '../../utils/index'
-import { follow } from '../../utils/server/follows'
-import { setAccessTokensToServers } from '../../utils/users/login'
-import { getMyVideos } from '../../utils/videos/videos'
+ blockUser,
+ createUser,
+ deleteMe,
+ flushTests,
+ getBlacklistedVideosList,
+ getMyUserInformation,
+ getMyUserVideoQuotaUsed,
+ getMyUserVideoRating,
+ getUserInformation,
+ getUsersList,
+ getUsersListPaginationAndSort,
+ getVideosList,
+ killallServers,
+ login,
+ makePutBodyRequest,
+ rateVideo,
+ registerUser,
+ removeUser,
+ removeVideo,
+ runServer,
+ ServerInfo,
+ testImage,
+ unblockUser,
+ updateMyAvatar,
+ updateMyUser,
+ updateUser,
+ uploadVideo,
+ userLogin
+} from '../../../../shared/utils/index'
+import { follow } from '../../../../shared/utils/server/follows'
+import { setAccessTokensToServers } from '../../../../shared/utils/users/login'
+import { getMyVideos } from '../../../../shared/utils/videos/videos'
const expect = chai.expect
const client = { id: 'client', secret: server.client.secret }
const res = await login(server.url, client, server.user, 400)
- expect(res.body.error).to.equal('Authentication failed.')
+ expect(res.body.error).to.contain('client is invalid')
})
it('Should not login with an invalid client secret', async function () {
const client = { id: server.client.id, secret: 'coucou' }
const res = await login(server.url, client, server.user, 400)
- expect(res.body.error).to.equal('Authentication failed.')
+ expect(res.body.error).to.contain('client is invalid')
})
it('Should not login with an invalid username', async function () {
const user = { username: 'captain crochet', password: server.user.password }
const res = await login(server.url, server.client, user, 400)
- expect(res.body.error).to.equal('Authentication failed.')
+ expect(res.body.error).to.contain('credentials are invalid')
})
it('Should not login with an invalid password', async function () {
const user = { username: server.user.username, password: 'mew_three' }
const res = await login(server.url, server.client, user, 400)
- expect(res.body.error).to.equal('Authentication failed.')
+ expect(res.body.error).to.contain('credentials are invalid')
})
it('Should not be able to upload a video', async function () {
it('Should be able to upload a video again')
it('Should be able to create a new user', async function () {
- await createUser(server.url, accessToken, user.username,user.password, 2 * 1024 * 1024)
+ await createUser(server.url, accessToken, user.username, user.password, 2 * 1024 * 1024)
})
it('Should be able to login with this user', async function () {
expect(user.videoQuota).to.equal(2 * 1024 * 1024)
expect(user.roleLabel).to.equal('User')
expect(user.id).to.be.a('number')
+ expect(user.account.displayName).to.equal('user_1')
expect(user.account.description).to.be.null
})
const data = res.body
expect(data.videoQuotaUsed).to.equal(218910)
+
+ const resUsers = await getUsersList(server.url, server.accessToken)
+
+ const users: User[] = resUsers.body.data
+ const tmpUser = users.find(u => u.username === user.username)
+ expect(tmpUser.videoQuotaUsed).to.equal(218910)
})
it('Should be able to list my videos', async function () {
expect(users[ 1 ].nsfwPolicy).to.equal('display')
})
+ it('Should search user by username', async function () {
+ const res = await getUsersListPaginationAndSort(server.url, server.accessToken, 0, 2, 'createdAt', 'oot')
+ const users = res.body.data as User[]
+
+ expect(res.body.total).to.equal(1)
+ expect(users.length).to.equal(1)
+
+ expect(users[ 0 ].username).to.equal('root')
+ })
+
+ it('Should search user by email', async function () {
+ {
+ const res = await getUsersListPaginationAndSort(server.url, server.accessToken, 0, 2, 'createdAt', 'r_1@exam')
+ const users = res.body.data as User[]
+
+ expect(res.body.total).to.equal(1)
+ expect(users.length).to.equal(1)
+
+ expect(users[ 0 ].username).to.equal('user_1')
+ expect(users[ 0 ].email).to.equal('user_1@example.com')
+ }
+
+ {
+ const res = await getUsersListPaginationAndSort(server.url, server.accessToken, 0, 2, 'createdAt', 'example')
+ const users = res.body.data as User[]
+
+ expect(res.body.total).to.equal(2)
+ expect(users.length).to.equal(2)
+
+ expect(users[ 0 ].username).to.equal('root')
+ expect(users[ 1 ].username).to.equal('user_1')
+ }
+ })
+
it('Should update my password', async function () {
await updateMyUser({
url: server.url,
accessToken: accessTokenUser,
+ currentPassword: 'super password',
newPassword: 'new password'
})
user.password = 'new password'
expect(user.nsfwPolicy).to.equal('do_not_list')
expect(user.videoQuota).to.equal(2 * 1024 * 1024)
expect(user.id).to.be.a('number')
+ expect(user.account.displayName).to.equal('user_1')
expect(user.account.description).to.be.null
})
expect(user.nsfwPolicy).to.equal('do_not_list')
expect(user.videoQuota).to.equal(2 * 1024 * 1024)
expect(user.id).to.be.a('number')
+ expect(user.account.displayName).to.equal('user_1')
expect(user.account.description).to.be.null
})
await testImage(server.url, 'avatar-resized', user.account.avatar.path, '.png')
})
+ it('Should be able to update my display name', async function () {
+ await updateMyUser({
+ url: server.url,
+ accessToken: accessTokenUser,
+ displayName: 'new display name'
+ })
+
+ const res = await getMyUserInformation(server.url, accessTokenUser)
+ const user = res.body
+
+ expect(user.username).to.equal('user_1')
+ expect(user.email).to.equal('updated@example.com')
+ expect(user.nsfwPolicy).to.equal('do_not_list')
+ expect(user.videoQuota).to.equal(2 * 1024 * 1024)
+ expect(user.id).to.be.a('number')
+ expect(user.account.displayName).to.equal('new display name')
+ expect(user.account.description).to.be.null
+ })
+
it('Should be able to update my description', async function () {
await updateMyUser({
url: server.url,
expect(user.nsfwPolicy).to.equal('do_not_list')
expect(user.videoQuota).to.equal(2 * 1024 * 1024)
expect(user.id).to.be.a('number')
+ expect(user.account.displayName).to.equal('new display name')
expect(user.account.description).to.equal('my super description updated')
})
expect(user.videoQuota).to.equal(5 * 1024 * 1024)
})
+ it('Should remove me', async function () {
+ {
+ const res = await getUsersList(server.url, server.accessToken)
+ expect(res.body.data.find(u => u.username === 'user_15')).to.not.be.undefined
+ }
+
+ await deleteMe(server.url, accessToken)
+
+ {
+ const res = await getUsersList(server.url, server.accessToken)
+ expect(res.body.data.find(u => u.username === 'user_15')).to.be.undefined
+ }
+ })
+
+ it('Should block and unblock a user', async function () {
+ const user16 = {
+ username: 'user_16',
+ password: 'my super password'
+ }
+ const resUser = await createUser(server.url, server.accessToken, user16.username, user16.password)
+ const user16Id = resUser.body.user.id
+
+ accessToken = await userLogin(server, user16)
+
+ await getMyUserInformation(server.url, accessToken, 200)
+ await blockUser(server.url, user16Id, server.accessToken)
+
+ await getMyUserInformation(server.url, accessToken, 401)
+ await userLogin(server, user16, 400)
+
+ await unblockUser(server.url, user16Id, server.accessToken)
+ accessToken = await userLogin(server, user16)
+ await getMyUserInformation(server.url, accessToken, 200)
+ })
+
after(async function () {
killallServers([ server ])