/* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
-import 'mocha'
-import * as chai from 'chai'
-import { orderBy } from 'lodash'
+import { expect } from 'chai'
+import { FIXTURE_URLS } from '@server/tests/shared'
+import { sortObjectComparator } from '@shared/core-utils'
+import { UserAdminFlag, UserRole, VideoBlacklist, VideoBlacklistType } from '@shared/models'
import {
BlacklistCommand,
cleanupTests,
- doubleFollow,
createMultipleServers,
- ImportsCommand,
+ doubleFollow,
killallServers,
PeerTubeServer,
setAccessTokensToServers,
+ setDefaultChannelAvatar,
waitJobs
-} from '@shared/extra-utils'
-import { UserAdminFlag, UserRole, VideoBlacklist, VideoBlacklistType } from '@shared/models'
-
-const expect = chai.expect
+} from '@shared/server-commands'
describe('Test video blacklist', function () {
let servers: PeerTubeServer[] = []
}
before(async function () {
- this.timeout(50000)
+ this.timeout(120000)
// Run servers
servers = await createMultipleServers(2)
// Server 1 and server 2 follow each other
await doubleFollow(servers[0], servers[1])
+ await setDefaultChannelAvatar(servers[0])
// Upload 2 videos on server 2
await servers[1].videos.upload({ attributes: { name: 'My 1st video', description: 'A video on server 2' } })
expect(blacklistedVideos).to.be.an('array')
expect(blacklistedVideos.length).to.equal(2)
- const result = orderBy(body.data, [ 'id' ], [ 'desc' ])
+ const result = [ ...body.data ].sort(sortObjectComparator('id', 'desc'))
expect(blacklistedVideos).to.deep.equal(result)
})
expect(blacklistedVideos).to.be.an('array')
expect(blacklistedVideos.length).to.equal(2)
- const result = orderBy(body.data, [ 'name' ], [ 'desc' ])
+ const result = [ ...body.data ].sort(sortObjectComparator('name', 'desc'))
expect(blacklistedVideos).to.deep.equal(result)
})
expect(blacklistedVideos).to.be.an('array')
expect(blacklistedVideos.length).to.equal(2)
- const result = orderBy(body.data, [ 'createdAt' ])
+ const result = [ ...body.data ].sort(sortObjectComparator('createdAt', 'asc'))
expect(blacklistedVideos).to.deep.equal(result)
})
})
let video4UUID: string
before(async function () {
- this.timeout(10000)
-
{
const { uuid } = await servers[0].videos.upload({ attributes: { name: 'Video 3' } })
video3UUID = uuid
})
it('Should blacklist video 3 and keep it federated', async function () {
- this.timeout(10000)
-
await command.add({ videoId: video3UUID, reason: 'super reason', unfederate: false })
await waitJobs(servers)
})
it('Should unfederate the video', async function () {
- this.timeout(10000)
-
await command.add({ videoId: video4UUID, reason: 'super reason', unfederate: true })
await waitJobs(servers)
})
it('Should have the video unfederated even after an Update AP message', async function () {
- this.timeout(10000)
-
await servers[0].videos.update({ id: video4UUID, attributes: { description: 'super description' } })
await waitJobs(servers)
})
it('Should remove the video from blacklist and refederate the video', async function () {
- this.timeout(10000)
-
await command.remove({ videoId: video4UUID })
await waitJobs(servers)
this.timeout(15000)
const attributes = {
- targetUrl: ImportsCommand.getGoodVideoUrl(),
+ targetUrl: FIXTURE_URLS.goodVideo,
name: 'URL import',
channelId: channelOfUserWithoutFlag
}
it('Should auto blacklist a video on torrent import', async function () {
const attributes = {
- magnetUri: ImportsCommand.getMagnetURI(),
+ magnetUri: FIXTURE_URLS.magnet,
name: 'Torrent import',
channelId: channelOfUserWithoutFlag
}