aboutsummaryrefslogtreecommitdiffhomepage
path: root/shared/extra-utils/mock-servers/mock-429.ts
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2021-11-16 11:17:52 +0100
committerChocobozzz <me@florianbigard.com>2021-11-16 11:34:24 +0100
commit3455c2656e257ae3d9b4169af58b6889d9904148 (patch)
tree72ef7035ffd9030cffe8e73d7c1265241c120173 /shared/extra-utils/mock-servers/mock-429.ts
parentac03618098e430acb21c075bdba57ce6d377b12d (diff)
downloadPeerTube-3455c2656e257ae3d9b4169af58b6889d9904148.tar.gz
PeerTube-3455c2656e257ae3d9b4169af58b6889d9904148.tar.zst
PeerTube-3455c2656e257ae3d9b4169af58b6889d9904148.zip
Test and log request retries
Diffstat (limited to 'shared/extra-utils/mock-servers/mock-429.ts')
-rw-r--r--shared/extra-utils/mock-servers/mock-429.ts33
1 files changed, 33 insertions, 0 deletions
diff --git a/shared/extra-utils/mock-servers/mock-429.ts b/shared/extra-utils/mock-servers/mock-429.ts
new file mode 100644
index 000000000..9e0d1281a
--- /dev/null
+++ b/shared/extra-utils/mock-servers/mock-429.ts
@@ -0,0 +1,33 @@
1import express from 'express'
2import { Server } from 'http'
3import { getPort, randomListen, terminateServer } from './utils'
4
5export 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}