makePostBodyRequest,
getUserAccessToken
} from '../../utils'
+import { UserRole } from '../../../../shared'
describe('Test users API validators', function () {
const path = '/api/v1/users/'
.get(path)
.query({ start: 'hello' })
.set('Accept', 'application/json')
+ .set('Authorization', 'Bearer ' + server.accessToken)
.expect(400)
})
.get(path)
.query({ count: 'hello' })
.set('Accept', 'application/json')
+ .set('Authorization', 'Bearer ' + server.accessToken)
.expect(400)
})
.get(path)
.query({ sort: 'hello' })
.set('Accept', 'application/json')
+ .set('Authorization', 'Bearer ' + server.accessToken)
.expect(400)
})
+
+ it('Should fail with a non authenticated user', async function () {
+ await request(server.url)
+ .get(path)
+ .set('Accept', 'application/json')
+ .expect(401)
+ })
+
+ it('Should fail with a non admin user', async function () {
+ await request(server.url)
+ .get(path)
+ .set('Accept', 'application/json')
+ .set('Authorization', 'Bearer ' + userAccessToken)
+ .expect(403)
+ })
})
describe('When adding a new user', function () {
username: 'ji',
email: 'test@example.com',
password: 'my_super_password',
+ role: UserRole.USER,
videoQuota: 42000000
}
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 })
+ })
+
+ it('Should fail with a not lowercase username', async function () {
+ const fields = {
+ username: 'Toto',
+ email: 'test@example.com',
+ password: 'my_super_password',
+ videoQuota: 42000000,
+ role: UserRole.USER
}
await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields })
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 })
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 })
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 })
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 })
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 })
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 })
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 })
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 })
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 })
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 })
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 })
describe('When updating a user', function () {
before(async function () {
- const res = await getUsersList(server.url)
+ const res = await getUsersList(server.url, server.accessToken)
userId = res.body.data[1].id
rootId = res.body.data[2].id
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
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 })