aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/tests/utils
diff options
context:
space:
mode:
authorChocobozzz <florian.bigard@gmail.com>2017-09-07 15:27:35 +0200
committerChocobozzz <florian.bigard@gmail.com>2017-09-07 15:54:34 +0200
commitfdbda9e3d6564ec908733c7019305f6a3c363a9f (patch)
treec596034156f167e7cfafe41c4a3fc6adda488a0d /server/tests/utils
parent04de542abd940f9d2ca213fba3c68580c6c9b78a (diff)
downloadPeerTube-fdbda9e3d6564ec908733c7019305f6a3c363a9f.tar.gz
PeerTube-fdbda9e3d6564ec908733c7019305f6a3c363a9f.tar.zst
PeerTube-fdbda9e3d6564ec908733c7019305f6a3c363a9f.zip
Add tests for npm run scripts
Diffstat (limited to 'server/tests/utils')
-rw-r--r--server/tests/utils/cli.ts24
-rw-r--r--server/tests/utils/index.ts1
-rw-r--r--server/tests/utils/servers.ts9
-rw-r--r--server/tests/utils/videos.ts17
4 files changed, 49 insertions, 2 deletions
diff --git a/server/tests/utils/cli.ts b/server/tests/utils/cli.ts
new file mode 100644
index 000000000..5f07a832e
--- /dev/null
+++ b/server/tests/utils/cli.ts
@@ -0,0 +1,24 @@
1import { exec } from 'child_process'
2
3import { ServerInfo } from './servers'
4
5function getEnvCli (server?: ServerInfo) {
6 return `NODE_ENV=test NODE_APP_INSTANCE=${server.serverNumber}`
7}
8
9async function execCLI (command: string) {
10 return new Promise((res, rej) => {
11 exec(command, (err, stdout, stderr) => {
12 if (err) return rej(err)
13
14 return res(stdout)
15 })
16 })
17}
18
19// ---------------------------------------------------------------------------
20
21export {
22 execCLI,
23 getEnvCli
24}
diff --git a/server/tests/utils/index.ts b/server/tests/utils/index.ts
index 9077b0568..0fa28f2af 100644
--- a/server/tests/utils/index.ts
+++ b/server/tests/utils/index.ts
@@ -1,3 +1,4 @@
1export * from './cli'
1export * from './clients' 2export * from './clients'
2export * from './config' 3export * from './config'
3export * from './login' 4export * from './login'
diff --git a/server/tests/utils/servers.ts b/server/tests/utils/servers.ts
index 272a8935e..88027f74e 100644
--- a/server/tests/utils/servers.ts
+++ b/server/tests/utils/servers.ts
@@ -5,6 +5,7 @@ interface ServerInfo {
5 app: ChildProcess, 5 app: ChildProcess,
6 url: string 6 url: string
7 host: string 7 host: string
8 serverNumber: number
8 9
9 client: { 10 client: {
10 id: string, 11 id: string,
@@ -65,9 +66,10 @@ function flushTests () {
65 }) 66 })
66} 67}
67 68
68function runServer (serverNumber: number) { 69function runServer (serverNumber: number, configOverride?: Object) {
69 const server: ServerInfo = { 70 const server: ServerInfo = {
70 app: null, 71 app: null,
72 serverNumber: serverNumber,
71 url: `http://localhost:${9000 + serverNumber}`, 73 url: `http://localhost:${9000 + serverNumber}`,
72 host: `localhost:${9000 + serverNumber}`, 74 host: `localhost:${9000 + serverNumber}`,
73 client: { 75 client: {
@@ -98,6 +100,11 @@ function runServer (serverNumber: number) {
98 const env = Object.create(process.env) 100 const env = Object.create(process.env)
99 env['NODE_ENV'] = 'test' 101 env['NODE_ENV'] = 'test'
100 env['NODE_APP_INSTANCE'] = serverNumber.toString() 102 env['NODE_APP_INSTANCE'] = serverNumber.toString()
103
104 if (configOverride !== undefined) {
105 env['NODE_CONFIG'] = JSON.stringify(configOverride)
106 }
107
101 const options = { 108 const options = {
102 silent: true, 109 silent: true,
103 env: env, 110 env: env,
diff --git a/server/tests/utils/videos.ts b/server/tests/utils/videos.ts
index 42b7dd05a..509a2430a 100644
--- a/server/tests/utils/videos.ts
+++ b/server/tests/utils/videos.ts
@@ -1,8 +1,11 @@
1import { readFile } from 'fs'
1import * as request from 'supertest' 2import * as request from 'supertest'
2import { join, isAbsolute } from 'path' 3import { join, isAbsolute } from 'path'
4import * as parseTorrent from 'parse-torrent'
3 5
4import { makeGetRequest } from './requests' 6import { makeGetRequest } from './requests'
5import { readFilePromise } from './miscs' 7import { readFilePromise } from './miscs'
8import { ServerInfo } from './servers'
6 9
7type VideoAttributes = { 10type VideoAttributes = {
8 name?: string 11 name?: string
@@ -232,6 +235,17 @@ function rateVideo (url: string, accessToken: string, id: number, rating: string
232 .expect(specialStatus) 235 .expect(specialStatus)
233} 236}
234 237
238function parseTorrentVideo (server: ServerInfo, videoUUID: string) {
239 return new Promise<any>((res, rej) => {
240 const torrentPath = join(__dirname, '..', '..', '..', 'test' + server.serverNumber, 'torrents', videoUUID + '.torrent')
241 readFile(torrentPath, (err, data) => {
242 if (err) return rej(err)
243
244 return res(parseTorrent(data))
245 })
246 })
247}
248
235// --------------------------------------------------------------------------- 249// ---------------------------------------------------------------------------
236 250
237export { 251export {
@@ -250,5 +264,6 @@ export {
250 testVideoImage, 264 testVideoImage,
251 uploadVideo, 265 uploadVideo,
252 updateVideo, 266 updateVideo,
253 rateVideo 267 rateVideo,
268 parseTorrentVideo
254} 269}