From e5e7f7fe99bd0e8d6f3fa0b8ae8cf255ecaa6bf3 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Tue, 14 Aug 2018 09:16:32 +0200 Subject: [PATCH] Add tests when getting a blacklisted video --- server/lib/emailer.ts | 2 + .../tests/api/check-params/video-blacklist.ts | 59 +++++++++++++++---- 2 files changed, 50 insertions(+), 11 deletions(-) diff --git a/server/lib/emailer.ts b/server/lib/emailer.ts index a1212878f..c8398c9e7 100644 --- a/server/lib/emailer.ts +++ b/server/lib/emailer.ts @@ -138,6 +138,8 @@ class Emailer { async addVideoUnblacklistReportJob (videoId: number) { const video = await VideoModel.loadAndPopulateAccountAndServerAndTags(videoId) if (!video) throw new Error('Unknown Video id during Blacklist report.') + // It's not our user + if (video.remote === true) return const user = await UserModel.loadById(video.VideoChannel.Account.userId) diff --git a/server/tests/api/check-params/video-blacklist.ts b/server/tests/api/check-params/video-blacklist.ts index 415474718..473216236 100644 --- a/server/tests/api/check-params/video-blacklist.ts +++ b/server/tests/api/check-params/video-blacklist.ts @@ -5,7 +5,7 @@ import 'mocha' import { createUser, flushTests, - getBlacklistedVideosList, + getBlacklistedVideosList, getVideo, getVideoWithToken, killallServers, makePostBodyRequest, makePutBodyRequest, @@ -17,11 +17,14 @@ import { userLogin } from '../../utils' import { checkBadCountPagination, checkBadSortPagination, checkBadStartPagination } from '../../utils/requests/check-api-params' +import { VideoDetails } from '../../../../shared/models/videos' +import { expect } from 'chai' describe('Test video blacklist API validators', function () { let server: ServerInfo let notBlacklistedVideoId: number - let userAccessToken = '' + let userAccessToken1 = '' + let userAccessToken2 = '' // --------------------------------------------------------------- @@ -34,13 +37,22 @@ describe('Test video blacklist API validators', function () { await setAccessTokensToServers([ server ]) - const username = 'user1' - const password = 'my super password' - await createUser(server.url, server.accessToken, username, password) - userAccessToken = await userLogin(server, { username, password }) + { + const username = 'user1' + const password = 'my super password' + await createUser(server.url, server.accessToken, username, password) + userAccessToken1 = await userLogin(server, { username, password }) + } { - const res = await uploadVideo(server.url, server.accessToken, {}) + const username = 'user2' + const password = 'my super password' + await createUser(server.url, server.accessToken, username, password) + userAccessToken2 = await userLogin(server, { username, password }) + } + + { + const res = await uploadVideo(server.url, userAccessToken1, {}) server.video = res.body.video } @@ -74,7 +86,7 @@ describe('Test video blacklist API validators', function () { it('Should fail with a non admin user', async function () { const path = basePath + server.video + '/blacklist' const fields = {} - await makePostBodyRequest({ url: server.url, path, token: userAccessToken, fields, statusCodeExpected: 403 }) + await makePostBodyRequest({ url: server.url, path, token: userAccessToken2, fields, statusCodeExpected: 403 }) }) it('Should fail with an invalid reason', async function () { @@ -116,7 +128,7 @@ describe('Test video blacklist API validators', function () { it('Should fail with a non admin user', async function () { const path = basePath + server.video + '/blacklist' const fields = {} - await makePutBodyRequest({ url: server.url, path, token: userAccessToken, fields, statusCodeExpected: 403 }) + await makePutBodyRequest({ url: server.url, path, token: userAccessToken2, fields, statusCodeExpected: 403 }) }) it('Should fail with an invalid reason', async function () { @@ -134,13 +146,38 @@ describe('Test video blacklist API validators', function () { }) }) + describe('When getting blacklisted video', function () { + + it('Should fail with a non authenticated user', async function () { + await getVideo(server.url, server.video.uuid, 401) + }) + + it('Should fail with another user', async function () { + await getVideoWithToken(server.url, userAccessToken2, server.video.uuid, 403) + }) + + it('Should succeed with the owner authenticated user', async function () { + const res = await getVideoWithToken(server.url, userAccessToken1, server.video.uuid, 200) + const video: VideoDetails = res.body + + expect(video.blacklisted).to.be.true + }) + + it('Should succeed with an admin', async function () { + const res = await getVideoWithToken(server.url, server.accessToken, server.video.uuid, 200) + const video: VideoDetails = res.body + + 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 removeVideoFromBlacklist(server.url, 'fake token', server.video.uuid, 401) }) it('Should fail with a non admin user', async function () { - await removeVideoFromBlacklist(server.url, userAccessToken, server.video.uuid, 403) + await removeVideoFromBlacklist(server.url, userAccessToken2, server.video.uuid, 403) }) it('Should fail with an incorrect id', async function () { @@ -165,7 +202,7 @@ describe('Test video blacklist API validators', function () { }) it('Should fail with a non admin user', async function () { - await getBlacklistedVideosList(server.url, userAccessToken, 403) + await getBlacklistedVideosList(server.url, userAccessToken2, 403) }) it('Should fail with a bad start pagination', async function () { -- 2.25.1