+ it('Should succeed with the correct params', async function () {
+ const path = basePath + servers[0].store.videoCreated.shortUUID + '/blacklist'
+ const fields = { reason: 'hello' }
+
+ await makePutBodyRequest({
+ url: servers[0].url,
+ path,
+ token: servers[0].accessToken,
+ fields,
+ expectedStatus: HttpStatusCode.NO_CONTENT_204
+ })
+ })
+ })
+
+ describe('When getting blacklisted video', function () {
+
+ it('Should fail with a non authenticated user', async function () {
+ await servers[0].videos.get({ id: servers[0].store.videoCreated.uuid, expectedStatus: HttpStatusCode.UNAUTHORIZED_401 })
+ })
+
+ it('Should fail with another user', async function () {
+ await servers[0].videos.getWithToken({
+ token: userAccessToken2,
+ id: servers[0].store.videoCreated.uuid,
+ expectedStatus: HttpStatusCode.FORBIDDEN_403
+ })
+ })
+
+ it('Should succeed with the owner authenticated user', async function () {
+ const video = await servers[0].videos.getWithToken({ token: userAccessToken1, id: servers[0].store.videoCreated.uuid })
+ expect(video.blacklisted).to.be.true
+ })
+
+ it('Should succeed with an admin', async function () {
+ const video = servers[0].store.videoCreated
+
+ for (const id of [ video.id, video.uuid, video.shortUUID ]) {
+ const video = await servers[0].videos.getWithToken({ id, expectedStatus: HttpStatusCode.OK_200 })
+ expect(video.blacklisted).to.be.true
+ }
+ })
+ })
+
+ describe('When removing a video in blacklist', function () {
+
+ it('Should fail with a non authenticated user', async function () {
+ await command.remove({
+ token: 'fake token',
+ videoId: servers[0].store.videoCreated.uuid,
+ expectedStatus: HttpStatusCode.UNAUTHORIZED_401
+ })
+ })
+
+ it('Should fail with a non admin user', async function () {
+ await command.remove({
+ token: userAccessToken2,
+ videoId: servers[0].store.videoCreated.uuid,
+ expectedStatus: HttpStatusCode.FORBIDDEN_403
+ })
+ })