diff --git a/server/tests/external-plugins/auto-mute.ts b/server/tests/external-plugins/auto-mute.ts index 49b104882..2f2c9102d 100644 --- a/server/tests/external-plugins/auto-mute.ts +++ b/server/tests/external-plugins/auto-mute.ts @@ -1,11 +1,25 @@ /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */ import 'mocha' - - -import { installPlugin, MockBlocklist, setAccessTokensToServers, uploadVideoAndGetId, updatePluginSettings, doubleFollow, getVideosList, wait } from '../../../shared/extra-utils' -import { cleanupTests, flushAndRunMultipleServers, ServerInfo } from '../../../shared/extra-utils/server/servers' import { expect } from 'chai' +import { removeAccountFromServerBlocklist } from '@shared/extra-utils/users/blocklist' +import { + doubleFollow, + getVideosList, + installPlugin, + MockBlocklist, + setAccessTokensToServers, + updatePluginSettings, + uploadVideoAndGetId, + wait +} from '../../../shared/extra-utils' +import { + cleanupTests, + flushAndRunMultipleServers, + killallServers, + reRunServer, + ServerInfo +} from '../../../shared/extra-utils/server/servers' describe('Official plugin auto-mute', function () { let servers: ServerInfo[] @@ -114,6 +128,44 @@ describe('Official plugin auto-mute', function () { expect(res.body.total).to.equal(2) }) + it('Should auto mute an account, manually unmute it and do not remute it automatically', async function () { + this.timeout(20000) + + const account = 'root@localhost:' + servers[1].port + + blocklistServer.replace({ + data: [ + { + value: account, + updatedAt: new Date().toISOString() + } + ] + }) + + await wait(2000) + + { + const res = await getVideosList(servers[0].url) + expect(res.body.total).to.equal(1) + } + + await removeAccountFromServerBlocklist(servers[0].url, servers[0].accessToken, account) + + { + const res = await getVideosList(servers[0].url) + expect(res.body.total).to.equal(2) + } + + killallServers([ servers[0] ]) + await reRunServer(servers[0]) + await wait(2000) + + { + const res = await getVideosList(servers[0].url) + expect(res.body.total).to.equal(2) + } + }) + after(async function () { await cleanupTests(servers) }) diff --git a/shared/extra-utils/plugins/mock-blocklist.ts b/shared/extra-utils/plugins/mock-blocklist.ts index ef57d96a8..6fe3dee9f 100644 --- a/shared/extra-utils/plugins/mock-blocklist.ts +++ b/shared/extra-utils/plugins/mock-blocklist.ts @@ -4,6 +4,7 @@ type BlocklistResponse = { data: { value: string action?: 'add' | 'remove' + updatedAt?: string }[] }