diff options
Diffstat (limited to 'client/e2e/src/utils/hooks.ts')
-rw-r--r-- | client/e2e/src/utils/hooks.ts | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/client/e2e/src/utils/hooks.ts b/client/e2e/src/utils/hooks.ts new file mode 100644 index 000000000..e42c6a5d8 --- /dev/null +++ b/client/e2e/src/utils/hooks.ts | |||
@@ -0,0 +1,64 @@ | |||
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 | } | ||