mirror of https://github.com/Chocobozzz/PeerTube
				
				
				
			
		
			
				
	
	
		
			50 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
| import { ensureDir } from 'fs-extra'
 | |
| import { isGithubCI } from '@shared/core-utils'
 | |
| import { PeerTubeServer, RunServerOptions } from './server'
 | |
| 
 | |
| async function createSingleServer (serverNumber: number, configOverride?: Object, options: RunServerOptions = {}) {
 | |
|   const server = new PeerTubeServer({ serverNumber })
 | |
| 
 | |
|   await server.flushAndRun(configOverride, options)
 | |
| 
 | |
|   return server
 | |
| }
 | |
| 
 | |
| function createMultipleServers (totalServers: number, configOverride?: Object, options: RunServerOptions = {}) {
 | |
|   const serverPromises: Promise<PeerTubeServer>[] = []
 | |
| 
 | |
|   for (let i = 1; i <= totalServers; i++) {
 | |
|     serverPromises.push(createSingleServer(i, configOverride, options))
 | |
|   }
 | |
| 
 | |
|   return Promise.all(serverPromises)
 | |
| }
 | |
| 
 | |
| async function killallServers (servers: PeerTubeServer[]) {
 | |
|   return Promise.all(servers.map(s => s.kill()))
 | |
| }
 | |
| 
 | |
| async function cleanupTests (servers: PeerTubeServer[]) {
 | |
|   await killallServers(servers)
 | |
| 
 | |
|   if (isGithubCI()) {
 | |
|     await ensureDir('artifacts')
 | |
|   }
 | |
| 
 | |
|   let p: Promise<any>[] = []
 | |
|   for (const server of servers) {
 | |
|     p = p.concat(server.servers.cleanupTests())
 | |
|   }
 | |
| 
 | |
|   return Promise.all(p)
 | |
| }
 | |
| 
 | |
| // ---------------------------------------------------------------------------
 | |
| 
 | |
| export {
 | |
|   createSingleServer,
 | |
|   createMultipleServers,
 | |
|   cleanupTests,
 | |
|   killallServers
 | |
| }
 |