]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - shared/extra-utils/mock-servers/mock-plugin-blocklist.ts
Optimize torrent URL update
[github/Chocobozzz/PeerTube.git] / shared / extra-utils / mock-servers / mock-plugin-blocklist.ts
CommitLineData
8bff1fe0 1import * as express from 'express'
7820a54e 2import { Server } from 'http'
63da15eb 3import { randomInt } from '@shared/core-utils'
8bff1fe0
C
4
5type BlocklistResponse = {
6 data: {
7 value: string
8 action?: 'add' | 'remove'
91b8e675 9 updatedAt?: string
8bff1fe0
C
10 }[]
11}
12
13export class MockBlocklist {
14 private body: BlocklistResponse
7820a54e 15 private server: Server
8bff1fe0
C
16
17 initialize () {
63da15eb 18 return new Promise<number>(res => {
8bff1fe0
C
19 const app = express()
20
21 app.get('/blocklist', (req: express.Request, res: express.Response) => {
22 return res.json(this.body)
23 })
24
63da15eb
C
25 const port = 42201 + randomInt(1, 100)
26 this.server = app.listen(port, () => res(port))
8bff1fe0
C
27 })
28 }
29
30 replace (body: BlocklistResponse) {
31 this.body = body
32 }
7820a54e
C
33
34 terminate () {
35 if (this.server) this.server.close()
36 }
8bff1fe0 37}