]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - shared/extra-utils/mock-servers/utils.ts
Random listen for mocked servers
[github/Chocobozzz/PeerTube.git] / shared / extra-utils / mock-servers / utils.ts
index 64d94c8688a14642575ae68fa8075947cb1e7d9b..2356424392f3fdf729456bb20cb55aa610673587 100644 (file)
@@ -1,4 +1,18 @@
+import { Express } from 'express'
 import { Server } from 'http'
+import { AddressInfo } from 'net'
+
+function randomListen (app: Express) {
+  return new Promise<Server>(res => {
+    const server = app.listen(0, () => res(server))
+  })
+}
+
+function getPort (server: Server) {
+  const address = server.address() as AddressInfo
+
+  return address.port
+}
 
 function terminateServer (server: Server) {
   if (!server) return Promise.resolve()
@@ -13,5 +27,7 @@ function terminateServer (server: Server) {
 }
 
 export {
+  randomListen,
+  getPort,
   terminateServer
 }