65 lines
1.5 KiB
TypeScript
65 lines
1.5 KiB
TypeScript
|
import { ChildProcessWithoutNullStreams } from 'child_process'
|
||
|
import { basename } from 'path'
|
||
|
import { runCommand, runServer } from './server'
|
||
|
|
||
|
let appInstance: string
|
||
|
let app: ChildProcessWithoutNullStreams
|
||
|
|
||
|
async function beforeLocalSuite (suite: any) {
|
||
|
const config = buildConfig(suite.file)
|
||
|
|
||
|
await runCommand('npm run clean:server:test -- ' + appInstance)
|
||
|
app = runServer(appInstance, config)
|
||
|
}
|
||
|
|
||
|
function afterLocalSuite () {
|
||
|
app.kill()
|
||
|
app = undefined
|
||
|
}
|
||
|
|
||
|
function beforeLocalSession (config: { baseUrl: string }, capabilities: { browserName: string }) {
|
||
|
appInstance = capabilities['browserName'] === 'chrome' ? '1' : '2'
|
||
|
config.baseUrl = 'http://localhost:900' + appInstance
|
||
|
}
|
||
|
|
||
|
async function onBrowserStackPrepare () {
|
||
|
const appInstance = '1'
|
||
|
|
||
|
await runCommand('npm run clean:server:test -- ' + appInstance)
|
||
|
app = runServer(appInstance)
|
||
|
}
|
||
|
|
||
|
function onBrowserStackComplete () {
|
||
|
app.kill()
|
||
|
app = undefined
|
||
|
}
|
||
|
|
||
|
export {
|
||
|
beforeLocalSession,
|
||
|
afterLocalSuite,
|
||
|
beforeLocalSuite,
|
||
|
onBrowserStackPrepare,
|
||
|
onBrowserStackComplete
|
||
|
}
|
||
|
|
||
|
// ---------------------------------------------------------------------------
|
||
|
|
||
|
function buildConfig (suiteFile: string = undefined) {
|
||
|
const filename = basename(suiteFile)
|
||
|
|
||
|
if (filename === 'custom-server-defaults.e2e-spec.ts') {
|
||
|
return {
|
||
|
defaults: {
|
||
|
publish: {
|
||
|
download_enabled: false,
|
||
|
comments_enabled: false,
|
||
|
privacy: 4,
|
||
|
licence: 4
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return {}
|
||
|
}
|