1 import { spawn } from 'child_process';
2 import path from 'path';
4 import mkdirp from 'mkdirp';
5 import chromedriver from 'chromedriver';
6 import nightwatchSettings from './nightwatch.conf';
8 const commandAsWebserver = command => {
9 if (process.env.DRUPAL_TEST_WEBSERVER_USER) {
10 return `sudo -u ${process.env.DRUPAL_TEST_WEBSERVER_USER} ${command}`;
17 if (JSON.parse(process.env.DRUPAL_TEST_CHROMEDRIVER_AUTOSTART)) {
23 if (JSON.parse(process.env.DRUPAL_TEST_CHROMEDRIVER_AUTOSTART)) {
28 afterEach: (browser, done) => {
29 // Writes the console log - used by the "logAndEnd" command.
31 browser.drupalLogConsole &&
32 (!browser.drupalLogConsoleOnlyOnError ||
33 browser.currentTest.results.errors > 0 ||
34 browser.currentTest.results.failed > 0)
36 const resultPath = path.join(
38 `../../../${nightwatchSettings.output_folder}/consoleLogs/${
39 browser.currentTest.module
43 browser.currentTest.results.errors > 0 ||
44 browser.currentTest.results.failed > 0
47 mkdirp.sync(resultPath);
48 const now = new Date().toString().replace(/[\s]+/g, '-');
50 browser.currentTest.name || browser.currentTest.module
51 ).replace(/[\s/]+/g, '-');
53 .getLog('browser', logEntries => {
54 const browserLog = JSON.stringify(logEntries, null, ' ');
56 `${resultPath}/${testName}_${status}_${now}_console.json`,