Add tests when getting a blacklisted video
authorChocobozzz <me@florianbigard.com>
Tue, 14 Aug 2018 07:16:32 +0000 (09:16 +0200)
committerChocobozzz <me@florianbigard.com>
Tue, 14 Aug 2018 07:27:19 +0000 (09:27 +0200)
server/lib/emailer.ts
server/tests/api/check-params/video-blacklist.ts

index a1212878fa3acf31efe9d5ed2b53d769963be75e..c8398c9e73031fa8f3b38d55bd91d63e52680687 100644 (file)
@@ -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)
 
index 4154747183e7b1e20951c02e0c7710354f1e0327..47321623676379633cc747a16424e4f3bcd667de 100644 (file)
@@ -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 () {