X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Ftests%2Fexternal-plugins%2Fauto-mute.ts;h=f86c83808960adbe6d6cbfab67764fee0ac36e19;hb=5f8bd4cbb178290da7d8f81e996f19f0eccc8e4c;hp=2f2c9102db184533913f40d904ff822a2b561b94;hpb=91b8e675e26dd65e1ebb23706cb16b3a3f8bcf73;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/tests/external-plugins/auto-mute.ts b/server/tests/external-plugins/auto-mute.ts index 2f2c9102d..f86c83808 100644 --- a/server/tests/external-plugins/auto-mute.ts +++ b/server/tests/external-plugins/auto-mute.ts @@ -2,28 +2,27 @@ import 'mocha' import { expect } from 'chai' -import { removeAccountFromServerBlocklist } from '@shared/extra-utils/users/blocklist' +import { HttpStatusCode } from '@shared/core-utils' import { + cleanupTests, doubleFollow, + flushAndRunMultipleServers, getVideosList, - installPlugin, + killallServers, + makeGetRequest, MockBlocklist, + reRunServer, + ServerInfo, setAccessTokensToServers, - updatePluginSettings, uploadVideoAndGetId, wait -} from '../../../shared/extra-utils' -import { - cleanupTests, - flushAndRunMultipleServers, - killallServers, - reRunServer, - ServerInfo -} from '../../../shared/extra-utils/server/servers' +} from '@shared/extra-utils' describe('Official plugin auto-mute', function () { + const autoMuteListPath = '/plugins/auto-mute/router/api/v1/mute-list' let servers: ServerInfo[] let blocklistServer: MockBlocklist + let port: number before(async function () { this.timeout(30000) @@ -31,14 +30,12 @@ describe('Official plugin auto-mute', function () { servers = await flushAndRunMultipleServers(2) await setAccessTokensToServers(servers) - await installPlugin({ - url: servers[0].url, - accessToken: servers[0].accessToken, - npmName: 'peertube-plugin-auto-mute' - }) + for (const server of servers) { + await server.pluginsCommand.install({ npmName: 'peertube-plugin-auto-mute' }) + } blocklistServer = new MockBlocklist() - await blocklistServer.initialize() + port = await blocklistServer.initialize() await uploadVideoAndGetId({ server: servers[0], videoName: 'video server 1' }) await uploadVideoAndGetId({ server: servers[1], videoName: 'video server 2' }) @@ -47,12 +44,10 @@ describe('Official plugin auto-mute', function () { }) it('Should update plugin settings', async function () { - await updatePluginSettings({ - url: servers[0].url, - accessToken: servers[0].accessToken, + await servers[0].pluginsCommand.updateSettings({ npmName: 'peertube-plugin-auto-mute', settings: { - 'blocklist-urls': 'http://localhost:42100/blocklist', + 'blocklist-urls': `http://localhost:${port}/blocklist`, 'check-seconds-interval': 1 } }) @@ -149,7 +144,7 @@ describe('Official plugin auto-mute', function () { expect(res.body.total).to.equal(1) } - await removeAccountFromServerBlocklist(servers[0].url, servers[0].accessToken, account) + await servers[0].blocklistCommand.removeFromServerBlocklist({ account }) { const res = await getVideosList(servers[0].url) @@ -166,7 +161,68 @@ describe('Official plugin auto-mute', function () { } }) + it('Should not expose the auto mute list', async function () { + await makeGetRequest({ + url: servers[0].url, + path: '/plugins/auto-mute/router/api/v1/mute-list', + statusCodeExpected: HttpStatusCode.FORBIDDEN_403 + }) + }) + + it('Should enable auto mute list', async function () { + await servers[0].pluginsCommand.updateSettings({ + npmName: 'peertube-plugin-auto-mute', + settings: { + 'blocklist-urls': '', + 'check-seconds-interval': 1, + 'expose-mute-list': true + } + }) + + await makeGetRequest({ + url: servers[0].url, + path: '/plugins/auto-mute/router/api/v1/mute-list', + statusCodeExpected: HttpStatusCode.OK_200 + }) + }) + + it('Should mute an account on server 1, and server 2 auto mutes it', async function () { + this.timeout(20000) + + await servers[1].pluginsCommand.updateSettings({ + npmName: 'peertube-plugin-auto-mute', + settings: { + 'blocklist-urls': 'http://localhost:' + servers[0].port + autoMuteListPath, + 'check-seconds-interval': 1, + 'expose-mute-list': false + } + }) + + await servers[0].blocklistCommand.addToServerBlocklist({ account: 'root@localhost:' + servers[1].port }) + await servers[0].blocklistCommand.addToMyBlocklist({ server: 'localhost:' + servers[1].port }) + + const res = await makeGetRequest({ + url: servers[0].url, + path: '/plugins/auto-mute/router/api/v1/mute-list', + statusCodeExpected: HttpStatusCode.OK_200 + }) + + const data = res.body.data + expect(data).to.have.lengthOf(1) + expect(data[0].updatedAt).to.exist + expect(data[0].value).to.equal('root@localhost:' + servers[1].port) + + await wait(2000) + + for (const server of servers) { + const res = await getVideosList(server.url) + expect(res.body.total).to.equal(1) + } + }) + after(async function () { + await blocklistServer.terminate() + await cleanupTests(servers) }) })