X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Ftests%2Fapi%2Fvideos%2Fvideo-abuse.ts;h=0cd6f22c76252b7e69d2616700055d8ada20c088;hb=822c7e610d19e3320519a6ae5c90c01db971f03f;hp=3a7b623daa2ba3d46ede1aa5ef8ad308cace0e80;hpb=2a8c5d0af13f3ccb9a505e1fbc9d324b9d33ba1f;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/tests/api/videos/video-abuse.ts b/server/tests/api/videos/video-abuse.ts index 3a7b623da..0cd6f22c7 100644 --- a/server/tests/api/videos/video-abuse.ts +++ b/server/tests/api/videos/video-abuse.ts @@ -4,19 +4,25 @@ import * as chai from 'chai' import 'mocha' import { VideoAbuse, VideoAbuseState } from '../../../../shared/models/videos' import { + cleanupTests, deleteVideoAbuse, flushAndRunMultipleServers, getVideoAbusesList, getVideosList, - killallServers, reportVideoAbuse, ServerInfo, setAccessTokensToServers, updateVideoAbuse, uploadVideo -} from '../../../../shared/utils/index' -import { doubleFollow } from '../../../../shared/utils/server/follows' -import { waitJobs } from '../../../../shared/utils/server/jobs' +} from '../../../../shared/extra-utils/index' +import { doubleFollow } from '../../../../shared/extra-utils/server/follows' +import { waitJobs } from '../../../../shared/extra-utils/server/jobs' +import { + addAccountToServerBlocklist, + addServerToServerBlocklist, + removeAccountFromServerBlocklist, + removeServerFromServerBlocklist +} from '../../../../shared/extra-utils/users/blocklist' const expect = chai.expect @@ -89,7 +95,7 @@ describe('Test video abuses', function () { const abuse: VideoAbuse = res1.body.data[0] expect(abuse.reason).to.equal('my super bad reason') expect(abuse.reporterAccount.name).to.equal('root') - expect(abuse.reporterAccount.host).to.equal('localhost:9001') + expect(abuse.reporterAccount.host).to.equal('localhost:' + servers[0].port) expect(abuse.video.id).to.equal(servers[0].video.id) const res2 = await getVideoAbusesList(servers[1].url, servers[1].accessToken) @@ -117,7 +123,7 @@ describe('Test video abuses', function () { const abuse1: VideoAbuse = res1.body.data[0] expect(abuse1.reason).to.equal('my super bad reason') expect(abuse1.reporterAccount.name).to.equal('root') - expect(abuse1.reporterAccount.host).to.equal('localhost:9001') + expect(abuse1.reporterAccount.host).to.equal('localhost:' + servers[0].port) expect(abuse1.video.id).to.equal(servers[0].video.id) expect(abuse1.state.id).to.equal(VideoAbuseState.PENDING) expect(abuse1.state.label).to.equal('Pending') @@ -126,7 +132,7 @@ describe('Test video abuses', function () { const abuse2: VideoAbuse = res1.body.data[1] expect(abuse2.reason).to.equal('my super bad reason 2') expect(abuse2.reporterAccount.name).to.equal('root') - expect(abuse2.reporterAccount.host).to.equal('localhost:9001') + expect(abuse2.reporterAccount.host).to.equal('localhost:' + servers[0].port) expect(abuse2.video.id).to.equal(servers[1].video.id) expect(abuse2.state.id).to.equal(VideoAbuseState.PENDING) expect(abuse2.state.label).to.equal('Pending') @@ -140,7 +146,7 @@ describe('Test video abuses', function () { abuseServer2 = res2.body.data[0] expect(abuseServer2.reason).to.equal('my super bad reason 2') expect(abuseServer2.reporterAccount.name).to.equal('root') - expect(abuseServer2.reporterAccount.host).to.equal('localhost:9001') + expect(abuseServer2.reporterAccount.host).to.equal('localhost:' + servers[0].port) expect(abuseServer2.state.id).to.equal(VideoAbuseState.PENDING) expect(abuseServer2.state.label).to.equal('Pending') expect(abuseServer2.moderationComment).to.be.null @@ -163,16 +169,79 @@ describe('Test video abuses', function () { expect(res.body.data[0].moderationComment).to.equal('It is valid') }) + it('Should hide video abuses from blocked accounts', async function () { + this.timeout(10000) + + { + await reportVideoAbuse(servers[1].url, servers[1].accessToken, servers[0].video.uuid, 'will mute this') + await waitJobs(servers) + + const res = await getVideoAbusesList(servers[0].url, servers[0].accessToken) + expect(res.body.total).to.equal(3) + } + + const accountToBlock = 'root@localhost:' + servers[1].port + + { + await addAccountToServerBlocklist(servers[ 0 ].url, servers[ 0 ].accessToken, accountToBlock) + + const res = await getVideoAbusesList(servers[ 0 ].url, servers[ 0 ].accessToken) + expect(res.body.total).to.equal(2) + + const abuse = res.body.data.find(a => a.reason === 'will mute this') + expect(abuse).to.be.undefined + } + + { + await removeAccountFromServerBlocklist(servers[ 0 ].url, servers[ 0 ].accessToken, accountToBlock) + + const res = await getVideoAbusesList(servers[ 0 ].url, servers[ 0 ].accessToken) + expect(res.body.total).to.equal(3) + } + }) + + it('Should hide video abuses from blocked servers', async function () { + const serverToBlock = servers[1].host + + { + await addServerToServerBlocklist(servers[ 0 ].url, servers[ 0 ].accessToken, servers[1].host) + + const res = await getVideoAbusesList(servers[ 0 ].url, servers[ 0 ].accessToken) + expect(res.body.total).to.equal(2) + + const abuse = res.body.data.find(a => a.reason === 'will mute this') + expect(abuse).to.be.undefined + } + + { + await removeServerFromServerBlocklist(servers[ 0 ].url, servers[ 0 ].accessToken, serverToBlock) + + const res = await getVideoAbusesList(servers[ 0 ].url, servers[ 0 ].accessToken) + expect(res.body.total).to.equal(3) + } + }) + it('Should delete the video abuse', async function () { + this.timeout(10000) + await deleteVideoAbuse(servers[1].url, servers[1].accessToken, abuseServer2.video.uuid, abuseServer2.id) - const res = await getVideoAbusesList(servers[1].url, servers[1].accessToken) - expect(res.body.total).to.equal(0) - expect(res.body.data).to.be.an('array') - expect(res.body.data.length).to.equal(0) + await waitJobs(servers) + + { + const res = await getVideoAbusesList(servers[1].url, servers[1].accessToken) + expect(res.body.total).to.equal(1) + expect(res.body.data.length).to.equal(1) + expect(res.body.data[0].id).to.not.equal(abuseServer2.id) + } + + { + const res = await getVideoAbusesList(servers[0].url, servers[0].accessToken) + expect(res.body.total).to.equal(3) + } }) after(async function () { - killallServers(servers) + await cleanupTests(servers) }) })