]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/tests/shared/mock-servers/mock-429.ts
shared/ typescript types dir server-commands
[github/Chocobozzz/PeerTube.git] / server / tests / shared / mock-servers / mock-429.ts
1 import express from 'express'
2 import { Server } from 'http'
3 import { getPort, randomListen, terminateServer } from './shared'
4
5 export class Mock429 {
6 private server: Server
7 private responseSent = false
8
9 async initialize () {
10 const app = express()
11
12 app.get('/', (req: express.Request, res: express.Response, next: express.NextFunction) => {
13
14 if (!this.responseSent) {
15 this.responseSent = true
16
17 // Retry after 5 seconds
18 res.header('retry-after', '2')
19 return res.sendStatus(429)
20 }
21
22 return res.sendStatus(200)
23 })
24
25 this.server = await randomListen(app)
26
27 return getPort(this.server)
28 }
29
30 terminate () {
31 return terminateServer(this.server)
32 }
33 }