]>
Commit | Line | Data |
---|---|---|
3cf68b86 C |
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 | } | |
60 | } | |
61 | } | |
62 | ||
63 | return {} | |
64 | } |