+ const res = await getVideosList(servers[0].url)
+ const videos = res.body.data
+
+ expect(videos).to.have.lengthOf(1)
+ expect(videos[0].name).to.equal('video server 1')
+ })
+
+ it('Should unmute server 2', async function () {
+ await postCommand(servers[0], 'unblockServer', { hostToUnblock: `localhost:${servers[1].port}` })
+
+ const res = await getVideosList(servers[0].url)
+ const videos = res.body.data
+
+ expect(videos).to.have.lengthOf(2)
+ })
+
+ it('Should mute account of server 2', async function () {
+ await postCommand(servers[0], 'blockAccount', { handleToBlock: `root@localhost:${servers[1].port}` })
+
+ const res = await getVideosList(servers[0].url)
+ const videos = res.body.data
+
+ expect(videos).to.have.lengthOf(1)
+ expect(videos[0].name).to.equal('video server 1')
+ })
+
+ it('Should unmute account of server 2', async function () {
+ await postCommand(servers[0], 'unblockAccount', { handleToUnblock: `root@localhost:${servers[1].port}` })
+
+ const res = await getVideosList(servers[0].url)
+ const videos = res.body.data
+
+ expect(videos).to.have.lengthOf(2)
+ })
+
+ it('Should blacklist video', async function () {
+ this.timeout(10000)
+
+ await postCommand(servers[0], 'blacklist', { videoUUID: videoUUIDServer1, unfederate: true })
+
+ await waitJobs(servers)
+
+ for (const server of servers) {
+ const res = await getVideosList(server.url)
+ const videos = res.body.data
+
+ expect(videos).to.have.lengthOf(1)
+ expect(videos[0].name).to.equal('video server 2')
+ }
+ })
+
+ it('Should unblacklist video', async function () {
+ this.timeout(10000)
+
+ await postCommand(servers[0], 'unblacklist', { videoUUID: videoUUIDServer1 })
+
+ await waitJobs(servers)
+
+ for (const server of servers) {
+ const res = await getVideosList(server.url)
+ const videos = res.body.data
+
+ expect(videos).to.have.lengthOf(2)
+ }
+ })
+ })
+
+ describe('Videos', function () {
+ let videoUUID: string
+
+ before(async () => {
+ const res = await uploadVideoAndGetId({ server: servers[0], videoName: 'video1' })
+ videoUUID = res.uuid
+ })
+
+ it('Should remove a video after a view', async function () {
+ this.timeout(40000)
+
+ // Should not throw -> video exists
+ await getVideo(servers[0].url, videoUUID)
+ // Should delete the video
+ await viewVideo(servers[0].url, videoUUID)
+
+ await waitUntilLog(servers[0], 'Video deleted by plugin four.')
+
+ try {
+ // Should throw because the video should have been deleted
+ await getVideo(servers[0].url, videoUUID)
+ throw new Error('Video exists')
+ } catch (err) {
+ if (err.message.includes('exists')) throw err
+ }
+
+ await checkVideoFilesWereRemoved(videoUUID, servers[0].internalServerNumber)
+ })
+
+ it('Should have fetched the video by URL', async function () {
+ await waitUntilLog(servers[0], `video from DB uuid is ${videoUUID}`)
+ })