Add tests to user roles

This commit is contained in:
Chocobozzz
2017-10-27 17:27:06 +02:00
parent 954605a804
commit 757f0da370
6 changed files with 92 additions and 22 deletions

View File

@@ -19,6 +19,7 @@ import {
makePostBodyRequest,
getUserAccessToken
} from '../../utils'
import { UserRole } from '../../../../shared'
describe('Test users API validators', function () {
const path = '/api/v1/users/'
@@ -92,6 +93,7 @@ describe('Test users API validators', function () {
username: 'ji',
email: 'test@example.com',
password: 'my_super_password',
role: UserRole.USER,
videoQuota: 42000000
}
@@ -103,7 +105,8 @@ describe('Test users API validators', function () {
username: 'my_super_username_which_is_very_long',
email: 'test@example.com',
password: 'my_super_password',
videoQuota: 42000000
videoQuota: 42000000,
role: UserRole.USER
}
await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields })
@@ -114,7 +117,8 @@ describe('Test users API validators', function () {
username: 'my username',
email: 'test@example.com',
password: 'my_super_password',
videoQuota: 42000000
videoQuota: 42000000,
role: UserRole.USER
}
await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields })
@@ -124,7 +128,8 @@ describe('Test users API validators', function () {
const fields = {
username: 'ji',
password: 'my_super_password',
videoQuota: 42000000
videoQuota: 42000000,
role: UserRole.USER
}
await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields })
@@ -135,7 +140,8 @@ describe('Test users API validators', function () {
username: 'my_super_username_which_is_very_long',
email: 'test_example.com',
password: 'my_super_password',
videoQuota: 42000000
videoQuota: 42000000,
role: UserRole.USER
}
await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields })
@@ -146,7 +152,8 @@ describe('Test users API validators', function () {
username: 'my_username',
email: 'test@example.com',
password: 'bla',
videoQuota: 42000000
videoQuota: 42000000,
role: UserRole.USER
}
await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields })
@@ -159,7 +166,8 @@ describe('Test users API validators', function () {
password: 'my super long password which is very very very very very very very very very very very very very very' +
'very very very very very very very very very very very very very very very veryv very very very very' +
'very very very very very very very very very very very very very very very very very very very very long',
videoQuota: 42000000
videoQuota: 42000000,
role: UserRole.USER
}
await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields })
@@ -170,7 +178,8 @@ describe('Test users API validators', function () {
username: 'my_username',
email: 'test@example.com',
password: 'my super password',
videoQuota: 42000000
videoQuota: 42000000,
role: UserRole.USER
}
await makePostBodyRequest({ url: server.url, path, token: 'super token', fields, statusCodeExpected: 401 })
@@ -181,7 +190,8 @@ describe('Test users API validators', function () {
username: 'user1',
email: 'test@example.com',
password: 'my super password',
videoQuota: 42000000
videoQuota: 42000000,
role: UserRole.USER
}
await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields, statusCodeExpected: 409 })
@@ -192,7 +202,8 @@ describe('Test users API validators', function () {
username: 'my_username',
email: 'user1@example.com',
password: 'my super password',
videoQuota: 42000000
videoQuota: 42000000,
role: UserRole.USER
}
await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields, statusCodeExpected: 409 })
@@ -202,7 +213,8 @@ describe('Test users API validators', function () {
const fields = {
username: 'my_username',
email: 'user1@example.com',
password: 'my super password'
password: 'my super password',
role: UserRole.USER
}
await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields })
@@ -213,7 +225,31 @@ describe('Test users API validators', function () {
username: 'my_username',
email: 'user1@example.com',
password: 'my super password',
videoQuota: -5
videoQuota: -5,
role: UserRole.USER
}
await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields })
})
it('Should fail without a user role', async function () {
const fields = {
username: 'my_username',
email: 'user1@example.com',
password: 'my super password',
videoQuota: 0
}
await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields })
})
it('Should fail with an invalid user role', async function () {
const fields = {
username: 'my_username',
email: 'user1@example.com',
password: 'my super password',
videoQuota: 0,
role: 88989
}
await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields })
@@ -224,7 +260,8 @@ describe('Test users API validators', function () {
username: 'user2',
email: 'test@example.com',
password: 'my super password',
videoQuota: -1
videoQuota: -1,
role: UserRole.USER
}
await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields, statusCodeExpected: 204 })
@@ -327,6 +364,14 @@ describe('Test users API validators', function () {
await makePutBodyRequest({ url: server.url, path: path + userId, token: server.accessToken, fields })
})
it('Should fail with an invalid user role attribute', async function () {
const fields = {
role: 54878
}
await makePutBodyRequest({ url: server.url, path: path + userId, token: server.accessToken, fields })
})
it('Should fail with an non authenticated user', async function () {
const fields = {
videoQuota: 42
@@ -338,7 +383,8 @@ describe('Test users API validators', function () {
it('Should succeed with the correct params', async function () {
const fields = {
email: 'email@example.com',
videoQuota: 42
videoQuota: 42,
role: UserRole.MODERATOR
}
await makePutBodyRequest({ url: server.url, path: path + userId, token: server.accessToken, fields, statusCodeExpected: 204 })

View File

@@ -25,10 +25,12 @@ import {
updateUser,
updateMyUser,
registerUser,
removeUser
removeUser,
killallServers,
getUserInformation,
getBlacklistedVideosList
} from '../utils'
import { killallServers } from '../utils/servers'
import { getUserInformation } from '../utils/users'
import { UserRole } from '../../../shared'
describe('Test users', function () {
let server: ServerInfo
@@ -188,6 +190,7 @@ describe('Test users', function () {
expect(user.email).to.equal('user_1@example.com')
expect(user.displayNSFW).to.be.false
expect(user.videoQuota).to.equal(2 * 1024 * 1024)
expect(user.roleLabel).to.equal('User')
expect(user.id).to.be.a('number')
})
@@ -234,6 +237,7 @@ describe('Test users', function () {
const user = users[0]
expect(user.username).to.equal('root')
expect(user.email).to.equal('admin1@example.com')
expect(user.roleLabel).to.equal('Administrator')
expect(user.displayNSFW).to.be.false
})
@@ -319,7 +323,7 @@ describe('Test users', function () {
})
it('Should be able to update another user', async function () {
await updateUser(server.url, userId, accessToken, 'updated2@example.com', 42)
await updateUser(server.url, userId, accessToken, 'updated2@example.com', 42, UserRole.MODERATOR)
const res = await getUserInformation(server.url, accessToken, userId)
const user = res.body
@@ -328,9 +332,18 @@ describe('Test users', function () {
expect(user.email).to.equal('updated2@example.com')
expect(user.displayNSFW).to.be.ok
expect(user.videoQuota).to.equal(42)
expect(user.roleLabel).to.equal('Moderator')
expect(user.id).to.be.a('number')
})
it('Should not be able to delete a user by a moderator', async function () {
await removeUser(server.url, 2, accessTokenUser, 403)
})
it('Should be able to list video blacklist by a moderator', async function () {
await getBlacklistedVideosList(server.url, accessTokenUser)
})
it('Should be able to remove this user', async function () {
await removeUser(server.url, userId, accessToken)
})