annotate core/tests/Drupal/Nightwatch/nightwatch.conf.js @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents af1871eacc83
children
rev   line source
Chris@17 1 import path from 'path';
Chris@17 2 import glob from 'glob';
Chris@17 3
Chris@17 4 // Find directories which have Nightwatch tests in them.
Chris@17 5 const regex = /(.*\/?tests\/?.*\/Nightwatch)\/.*/g;
Chris@17 6 const collectedFolders = {
Chris@17 7 Tests: [],
Chris@17 8 Commands: [],
Chris@17 9 Assertions: [],
Chris@18 10 Pages: [],
Chris@17 11 };
Chris@17 12 const searchDirectory = process.env.DRUPAL_NIGHTWATCH_SEARCH_DIRECTORY || '';
Chris@17 13
Chris@17 14 glob
Chris@17 15 .sync('**/tests/**/Nightwatch/**/*.js', {
Chris@17 16 cwd: path.resolve(process.cwd(), `../${searchDirectory}`),
Chris@17 17 ignore: process.env.DRUPAL_NIGHTWATCH_IGNORE_DIRECTORIES
Chris@17 18 ? process.env.DRUPAL_NIGHTWATCH_IGNORE_DIRECTORIES.split(',')
Chris@17 19 : [],
Chris@17 20 })
Chris@17 21 .forEach(file => {
Chris@17 22 let m = regex.exec(file);
Chris@17 23 while (m !== null) {
Chris@17 24 // This is necessary to avoid infinite loops with zero-width matches.
Chris@17 25 if (m.index === regex.lastIndex) {
Chris@17 26 regex.lastIndex += 1;
Chris@17 27 }
Chris@17 28
Chris@17 29 const key = `../${m[1]}`;
Chris@17 30 Object.keys(collectedFolders).forEach(folder => {
Chris@17 31 if (file.includes(`Nightwatch/${folder}`)) {
Chris@17 32 collectedFolders[folder].push(`${searchDirectory}${key}/${folder}`);
Chris@17 33 }
Chris@17 34 });
Chris@17 35 m = regex.exec(file);
Chris@17 36 }
Chris@17 37 });
Chris@17 38
Chris@17 39 // Remove duplicate folders.
Chris@17 40 Object.keys(collectedFolders).forEach(folder => {
Chris@17 41 collectedFolders[folder] = Array.from(new Set(collectedFolders[folder]));
Chris@17 42 });
Chris@17 43
Chris@17 44 module.exports = {
Chris@17 45 src_folders: collectedFolders.Tests,
Chris@17 46 output_folder: process.env.DRUPAL_NIGHTWATCH_OUTPUT,
Chris@17 47 custom_commands_path: collectedFolders.Commands,
Chris@17 48 custom_assertions_path: collectedFolders.Assertions,
Chris@18 49 page_objects_path: collectedFolders.Pages,
Chris@17 50 globals_path: 'tests/Drupal/Nightwatch/globals.js',
Chris@17 51 selenium: {
Chris@17 52 start_process: false,
Chris@17 53 },
Chris@17 54 test_settings: {
Chris@17 55 default: {
Chris@17 56 selenium_port: process.env.DRUPAL_TEST_WEBDRIVER_PORT,
Chris@17 57 selenium_host: process.env.DRUPAL_TEST_WEBDRIVER_HOSTNAME,
Chris@17 58 default_path_prefix: process.env.DRUPAL_TEST_WEBDRIVER_PATH_PREFIX || '',
Chris@17 59 desiredCapabilities: {
Chris@17 60 browserName: 'chrome',
Chris@17 61 acceptSslCerts: true,
Chris@17 62 chromeOptions: {
Chris@17 63 args: process.env.DRUPAL_TEST_WEBDRIVER_CHROME_ARGS
Chris@17 64 ? process.env.DRUPAL_TEST_WEBDRIVER_CHROME_ARGS.split(' ')
Chris@17 65 : [],
Chris@17 66 },
Chris@17 67 },
Chris@17 68 screenshots: {
Chris@17 69 enabled: true,
Chris@17 70 on_failure: true,
Chris@17 71 on_error: true,
Chris@17 72 path: `${process.env.DRUPAL_NIGHTWATCH_OUTPUT}/screenshots`,
Chris@17 73 },
Chris@17 74 end_session_on_fail: false,
Chris@17 75 },
Chris@17 76 },
Chris@17 77 };