From 63da15eb18065ef6c419f073c95fec6ef5541652 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 3 Jun 2021 09:06:51 +0200 Subject: [PATCH] Use random port for mock servers in tests --- server/tests/external-plugins/auto-block-videos.ts | 5 +++-- server/tests/external-plugins/auto-mute.ts | 5 +++-- shared/extra-utils/plugins/mock-blocklist.ts | 6 ++++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/server/tests/external-plugins/auto-block-videos.ts b/server/tests/external-plugins/auto-block-videos.ts index 1b91d141e..18ea17d78 100644 --- a/server/tests/external-plugins/auto-block-videos.ts +++ b/server/tests/external-plugins/auto-block-videos.ts @@ -40,6 +40,7 @@ describe('Official plugin auto-block videos', function () { let blocklistServer: MockBlocklist let server1Videos: Video[] = [] let server2Videos: Video[] = [] + let port: number before(async function () { this.timeout(60000) @@ -56,7 +57,7 @@ describe('Official plugin auto-block videos', function () { } 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' }) @@ -82,7 +83,7 @@ describe('Official plugin auto-block videos', function () { accessToken: servers[0].accessToken, npmName: 'peertube-plugin-auto-block-videos', settings: { - 'blocklist-urls': 'http://localhost:42100/blocklist', + 'blocklist-urls': `http://localhost:${port}/blocklist`, 'check-seconds-interval': 1 } }) diff --git a/server/tests/external-plugins/auto-mute.ts b/server/tests/external-plugins/auto-mute.ts index 687f56e98..09355d932 100644 --- a/server/tests/external-plugins/auto-mute.ts +++ b/server/tests/external-plugins/auto-mute.ts @@ -31,6 +31,7 @@ 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) @@ -47,7 +48,7 @@ describe('Official plugin auto-mute', function () { } 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' }) @@ -61,7 +62,7 @@ describe('Official plugin auto-mute', function () { accessToken: servers[0].accessToken, npmName: 'peertube-plugin-auto-mute', settings: { - 'blocklist-urls': 'http://localhost:42100/blocklist', + 'blocklist-urls': `http://localhost:${port}/blocklist`, 'check-seconds-interval': 1 } }) diff --git a/shared/extra-utils/plugins/mock-blocklist.ts b/shared/extra-utils/plugins/mock-blocklist.ts index 50e2289f1..d18f8224f 100644 --- a/shared/extra-utils/plugins/mock-blocklist.ts +++ b/shared/extra-utils/plugins/mock-blocklist.ts @@ -1,5 +1,6 @@ import * as express from 'express' import { Server } from 'http' +import { randomInt } from '@shared/core-utils' type BlocklistResponse = { data: { @@ -14,14 +15,15 @@ export class MockBlocklist { private server: Server initialize () { - return new Promise(res => { + return new Promise(res => { const app = express() app.get('/blocklist', (req: express.Request, res: express.Response) => { return res.json(this.body) }) - this.server = app.listen(42100, () => res()) + const port = 42201 + randomInt(1, 100) + this.server = app.listen(port, () => res(port)) }) }