From 84e7ff2757b6736df4277fb2c1d48d3ca0a760ae Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 23 Sep 2022 16:23:06 +0200 Subject: [PATCH] Test akismet plugin signup --- server/tests/external-plugins/akismet.ts | 45 +++++++++++++++---- shared/server-commands/users/users-command.ts | 5 ++- 2 files changed, 40 insertions(+), 10 deletions(-) diff --git a/server/tests/external-plugins/akismet.ts b/server/tests/external-plugins/akismet.ts index 557fc3daf..974bf0011 100644 --- a/server/tests/external-plugins/akismet.ts +++ b/server/tests/external-plugins/akismet.ts @@ -21,7 +21,9 @@ describe('Official plugin Akismet', function () { servers = await createMultipleServers(2) await setAccessTokensToServers(servers) - await servers[0].plugins.install({ npmName: 'peertube-plugin-akismet' }) + await servers[0].plugins.install({ + npmName: 'peertube-plugin-akismet' + }) if (!process.env.AKISMET_KEY) throw new Error('Missing AKISMET_KEY from env') @@ -71,6 +73,8 @@ describe('Official plugin Akismet', function () { const { uuid } = await servers[0].videos.quickUpload({ name: 'video 1' }) videoUUID = uuid + + await waitJobs(servers) }) it('Should not detect a thread as spam', async function () { @@ -109,19 +113,44 @@ describe('Official plugin Akismet', function () { it('Should detect a thread as spam', async function () { this.timeout(30000) - await servers[1].comments.createThread({ videoId: videoUUID, text: 'remote comment 2' }) await servers[1].comments.addReplyToLastThread({ text: 'akismet-guaranteed-spam' }) await waitJobs(servers) const { data } = await servers[0].comments.listThreads({ videoId: videoUUID }) - expect(data).to.have.lengthOf(2) + expect(data).to.have.lengthOf(1) - for (const thread of data) { - const tree = await servers[0].comments.getThread({ videoId: videoUUID, threadId: thread.id }) - if (tree.comment.text === 'remote comment 1') continue + const thread = data[0] + const tree = await servers[0].comments.getThread({ videoId: videoUUID, threadId: thread.id }) + expect(tree.children).to.have.lengthOf(1) + }) + }) - expect(tree.children).to.have.lengthOf(0) - } + describe('Signup', function () { + + before(async function () { + await servers[0].config.updateExistingSubConfig({ + newConfig: { + signup: { + enabled: true + } + } + }) + }) + + it('Should allow signup', async function () { + await servers[0].users.register({ + username: 'user1', + displayName: 'user 1' + }) + }) + + it('Should detect a signup as SPAM', async function () { + await servers[0].users.register({ + username: 'user2', + displayName: 'user 2', + email: 'akismet-guaranteed-spam@example.com', + expectedStatus: HttpStatusCode.FORBIDDEN_403 + }) }) }) diff --git a/shared/server-commands/users/users-command.ts b/shared/server-commands/users/users-command.ts index d8303848d..e7d021059 100644 --- a/shared/server-commands/users/users-command.ts +++ b/shared/server-commands/users/users-command.ts @@ -217,12 +217,13 @@ export class UsersCommand extends AbstractCommand { username: string password?: string displayName?: string + email?: string channel?: { name: string displayName: string } }) { - const { username, password = 'password', displayName, channel } = options + const { username, password = 'password', displayName, channel, email = username + '@example.com' } = options const path = '/api/v1/users/register' return this.postBodyRequest({ @@ -232,7 +233,7 @@ export class UsersCommand extends AbstractCommand { fields: { username, password, - email: username + '@example.com', + email, displayName, channel },