]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - client/e2e/src/utils/hooks.ts
Enhance plugin video fields
[github/Chocobozzz/PeerTube.git] / client / e2e / src / utils / hooks.ts
1 import { ChildProcessWithoutNullStreams } from 'child_process'
2 import { basename } from 'path'
3 import { runCommand, runServer } from './server'
4
5 let appInstance: string
6 let app: ChildProcessWithoutNullStreams
7
8 async function beforeLocalSuite (suite: any) {
9 const config = buildConfig(suite.file)
10
11 await runCommand('npm run clean:server:test -- ' + appInstance)
12 app = runServer(appInstance, config)
13 }
14
15 function afterLocalSuite () {
16 app.kill()
17 app = undefined
18 }
19
20 function beforeLocalSession (config: { baseUrl: string }, capabilities: { browserName: string }) {
21 appInstance = capabilities['browserName'] === 'chrome' ? '1' : '2'
22 config.baseUrl = 'http://localhost:900' + appInstance
23 }
24
25 async function onBrowserStackPrepare () {
26 const appInstance = '1'
27
28 await runCommand('npm run clean:server:test -- ' + appInstance)
29 app = runServer(appInstance)
30 }
31
32 function onBrowserStackComplete () {
33 app.kill()
34 app = undefined
35 }
36
37 export {
38 beforeLocalSession,
39 afterLocalSuite,
40 beforeLocalSuite,
41 onBrowserStackPrepare,
42 onBrowserStackComplete
43 }
44
45 // ---------------------------------------------------------------------------
46
47 function buildConfig (suiteFile: string = undefined) {
48 const filename = basename(suiteFile)
49
50 if (filename === 'custom-server-defaults.e2e-spec.ts') {
51 return {
52 defaults: {
53 publish: {
54 download_enabled: false,
55 comments_enabled: false,
56 privacy: 4,
57 licence: 4
58 },
59 p2p: {
60 webapp: {
61 enabled: false
62 },
63 embed: {
64 enabled: false
65 }
66 }
67 }
68 }
69 }
70
71 return {}
72 }