@wdio/config
Advanced tools
Comparing version 6.9.0 to 6.10.0
@@ -1,58 +0,5 @@ | ||
import type { Hooks } from './types'; | ||
export declare const DEFAULT_CONFIGS: () => { | ||
specs: never[]; | ||
suites: {}; | ||
exclude: never[]; | ||
outputDir: undefined; | ||
logLevel: "info"; | ||
logLevels: {}; | ||
excludeDriverLogs: never[]; | ||
bail: number; | ||
waitforInterval: number; | ||
waitforTimeout: number; | ||
framework: "mocha"; | ||
reporters: never[]; | ||
services: never[]; | ||
maxInstances: number; | ||
maxInstancesPerCapability: number; | ||
filesToWatch: never[]; | ||
connectionRetryTimeout: number; | ||
connectionRetryCount: number; | ||
execArgv: never[]; | ||
runnerEnv: {}; | ||
runner: "local"; | ||
mochaOpts: { | ||
timeout: number; | ||
}; | ||
jasmineNodeOpts: { | ||
defaultTimeoutInterval: number; | ||
}; | ||
cucumberOpts: { | ||
timeout: number; | ||
}; | ||
onPrepare: never[]; | ||
onWorkerStart: never[]; | ||
before: never[]; | ||
beforeSession: never[]; | ||
beforeSuite: never[]; | ||
beforeHook: never[]; | ||
beforeTest: never[]; | ||
beforeCommand: never[]; | ||
afterCommand: never[]; | ||
afterTest: never[]; | ||
afterHook: never[]; | ||
afterSuite: never[]; | ||
afterSession: never[]; | ||
after: never[]; | ||
onComplete: never[]; | ||
onReload: never[]; | ||
beforeFeature: never[]; | ||
beforeScenario: never[]; | ||
beforeStep: never[]; | ||
afterStep: never[]; | ||
afterScenario: never[]; | ||
afterFeature: never[]; | ||
}; | ||
import type { ConfigOptions, Hooks } from './types'; | ||
export declare const DEFAULT_CONFIGS: () => ConfigOptions; | ||
export declare const SUPPORTED_HOOKS: (keyof Hooks)[]; | ||
export declare const SUPPORTED_FILE_EXTENSIONS: string[]; | ||
//# sourceMappingURL=constants.d.ts.map |
@@ -0,119 +1,18 @@ | ||
/// <reference types="webdriver" /> | ||
/// <reference types="webdriverio/webdriverio-core" /> | ||
/// <reference types="webdriverio" /> | ||
/// <reference types="@wdio/cucumber-framework" /> | ||
import type { ConfigOptions, Hooks } from '../types'; | ||
export default class ConfigParser { | ||
static getFilePaths(patterns: any, omitWarnings: any): string[]; | ||
_config: { | ||
specs: never[]; | ||
suites: {}; | ||
exclude: never[]; | ||
outputDir: undefined; | ||
logLevel: "info"; | ||
logLevels: {}; | ||
excludeDriverLogs: never[]; | ||
bail: number; | ||
waitforInterval: number; | ||
waitforTimeout: number; | ||
framework: "mocha"; | ||
reporters: never[]; | ||
services: never[]; | ||
maxInstances: number; | ||
maxInstancesPerCapability: number; | ||
filesToWatch: never[]; | ||
connectionRetryTimeout: number; | ||
connectionRetryCount: number; | ||
execArgv: never[]; | ||
runnerEnv: {}; | ||
runner: "local"; | ||
mochaOpts: { | ||
timeout: number; | ||
}; | ||
jasmineNodeOpts: { | ||
defaultTimeoutInterval: number; | ||
}; | ||
cucumberOpts: { | ||
timeout: number; | ||
}; | ||
onPrepare: never[]; | ||
onWorkerStart: never[]; | ||
before: never[]; | ||
beforeSession: never[]; | ||
beforeSuite: never[]; | ||
beforeHook: never[]; | ||
beforeTest: never[]; | ||
beforeCommand: never[]; | ||
afterCommand: never[]; | ||
afterTest: never[]; | ||
afterHook: never[]; | ||
afterSuite: never[]; | ||
afterSession: never[]; | ||
after: never[]; | ||
onComplete: never[]; | ||
onReload: never[]; | ||
beforeFeature: never[]; | ||
beforeScenario: never[]; | ||
beforeStep: never[]; | ||
afterStep: never[]; | ||
afterScenario: never[]; | ||
afterFeature: never[]; | ||
}; | ||
_capabilities: any[]; | ||
private _config; | ||
private _capabilities; | ||
addConfigFile(filename: string): void; | ||
merge(object?: Object): void; | ||
addService(service: Object): void; | ||
getSpecs(capSpecs: any, capExclude: any): string[]; | ||
setFilePathToFilterOptions(cliArgFileList: string, config: Object): string[]; | ||
getConfig(): { | ||
specs: never[]; | ||
suites: {}; | ||
exclude: never[]; | ||
outputDir: undefined; | ||
logLevel: "info"; | ||
logLevels: {}; | ||
excludeDriverLogs: never[]; | ||
bail: number; | ||
waitforInterval: number; | ||
waitforTimeout: number; | ||
framework: "mocha"; | ||
reporters: never[]; | ||
services: never[]; | ||
maxInstances: number; | ||
maxInstancesPerCapability: number; | ||
filesToWatch: never[]; | ||
connectionRetryTimeout: number; | ||
connectionRetryCount: number; | ||
execArgv: never[]; | ||
runnerEnv: {}; | ||
runner: "local"; | ||
mochaOpts: { | ||
timeout: number; | ||
}; | ||
jasmineNodeOpts: { | ||
defaultTimeoutInterval: number; | ||
}; | ||
cucumberOpts: { | ||
timeout: number; | ||
}; | ||
onPrepare: never[]; | ||
onWorkerStart: never[]; | ||
before: never[]; | ||
beforeSession: never[]; | ||
beforeSuite: never[]; | ||
beforeHook: never[]; | ||
beforeTest: never[]; | ||
beforeCommand: never[]; | ||
afterCommand: never[]; | ||
afterTest: never[]; | ||
afterHook: never[]; | ||
afterSuite: never[]; | ||
afterSession: never[]; | ||
after: never[]; | ||
onComplete: never[]; | ||
onReload: never[]; | ||
beforeFeature: never[]; | ||
beforeScenario: never[]; | ||
beforeStep: never[]; | ||
afterStep: never[]; | ||
afterScenario: never[]; | ||
afterFeature: never[]; | ||
}; | ||
getCapabilities(i: any): any; | ||
merge(object?: ConfigOptions): void; | ||
addService(service: Hooks): void; | ||
getSpecs(capSpecs?: string[], capExclude?: string[]): string[]; | ||
setFilePathToFilterOptions(cliArgFileList: string[], config: string[]): string[]; | ||
getConfig(): ConfigOptions; | ||
getCapabilities(i?: number): WebDriver.DesiredCapabilities | WebDriver.W3CCapabilities | import("webdriverio").MultiRemoteCapabilities | (WebDriver.DesiredCapabilities | WebDriver.W3CCapabilities)[]; | ||
static getFilePaths(patterns: string[], omitWarnings?: boolean): string[]; | ||
} | ||
//# sourceMappingURL=ConfigParser.d.ts.map |
@@ -59,31 +59,34 @@ "use strict"; | ||
if (spec.length > 0) { | ||
this._config.specs = [...this.setFilePathToFilterOptions(spec, this._config.specs)]; | ||
this._config.specs = this.setFilePathToFilterOptions(spec, this._config.specs); | ||
} | ||
if (exclude.length > 0) { | ||
this._config.exclude = [...this.setFilePathToFilterOptions(exclude, this._config.exclude)]; | ||
this._config.exclude = this.setFilePathToFilterOptions(exclude, this._config.exclude); | ||
} | ||
let defaultBackend = utils_1.detectBackend({}); | ||
if ((this._config.protocol === defaultBackend.protocol) && | ||
(this._config.hostname === defaultBackend.hostname) && | ||
(this._config.port === defaultBackend.port) && | ||
(this._config.path === defaultBackend.path)) { | ||
delete this._config.protocol; | ||
delete this._config.hostname; | ||
delete this._config.port; | ||
delete this._config.path; | ||
} | ||
this._config = deepmerge_1.default(utils_1.detectBackend(this._config), this._config, MERGE_OPTIONS); | ||
} | ||
addService(service) { | ||
for (let hookName of constants_1.SUPPORTED_HOOKS) { | ||
if (!service[hookName]) { | ||
const addHook = (hookName, hook) => { | ||
const existingHooks = this._config[hookName]; | ||
if (!existingHooks) { | ||
this._config[hookName] = hook.bind(service); | ||
} | ||
else if (typeof existingHooks === 'function') { | ||
this._config[hookName] = [existingHooks, hook.bind(service)]; | ||
} | ||
else { | ||
this._config[hookName] = [...existingHooks, hook.bind(service)]; | ||
} | ||
}; | ||
for (const hookName of constants_1.SUPPORTED_HOOKS) { | ||
const hooksToBeAdded = service[hookName]; | ||
if (!hooksToBeAdded) { | ||
continue; | ||
} | ||
if (typeof service[hookName] === 'function') { | ||
this._config[hookName].push(service[hookName].bind(service)); | ||
if (typeof hooksToBeAdded === 'function') { | ||
addHook(hookName, hooksToBeAdded); | ||
} | ||
else if (Array.isArray(service[hookName])) { | ||
for (let hook of service[hookName]) { | ||
if (typeof hook === 'function') { | ||
this._config[hookName].push(hook.bind(service)); | ||
else if (Array.isArray(hooksToBeAdded)) { | ||
for (const hookToAdd of hooksToBeAdded) { | ||
if (typeof hookToAdd === 'function') { | ||
addHook(hookName, hookToAdd); | ||
} | ||
@@ -95,2 +98,3 @@ } | ||
getSpecs(capSpecs, capExclude) { | ||
var _a; | ||
let specs = ConfigParser.getFilePaths(this._config.specs); | ||
@@ -103,4 +107,7 @@ let spec = Array.isArray(this._config.spec) ? this._config.spec : []; | ||
for (let suiteName of suites) { | ||
let suite = this._config.suites[suiteName]; | ||
if (suite && Array.isArray(suite)) { | ||
let suite = (_a = this._config.suites) === null || _a === void 0 ? void 0 : _a[suiteName]; | ||
if (!suite) { | ||
log.warn(`No suite was found with name "${suiteName}"`); | ||
} | ||
if (Array.isArray(suite)) { | ||
suiteSpecs = suiteSpecs.concat(ConfigParser.getFilePaths(suite)); | ||
@@ -154,3 +161,3 @@ } | ||
} | ||
return filesToFilter; | ||
return [...filesToFilter]; | ||
} | ||
@@ -161,3 +168,3 @@ getConfig() { | ||
getCapabilities(i) { | ||
if (typeof i === 'number' && this._capabilities[i]) { | ||
if (typeof i === 'number' && Array.isArray(this._capabilities) && this._capabilities[i]) { | ||
return this._capabilities[i]; | ||
@@ -170,11 +177,8 @@ } | ||
if (typeof patterns === 'string') { | ||
patterns = utils_1.removeLineNumbers(patterns); | ||
patterns = [patterns]; | ||
} | ||
else { | ||
patterns = patterns.map(pattern => utils_1.removeLineNumbers(pattern)); | ||
} | ||
if (!Array.isArray(patterns)) { | ||
throw new Error('specs or exclude property should be an array of strings'); | ||
} | ||
patterns = patterns.map(pattern => utils_1.removeLineNumbers(pattern)); | ||
for (let pattern of patterns) { | ||
@@ -181,0 +185,0 @@ let filenames = glob_1.default.sync(pattern); |
@@ -9,11 +9,14 @@ /// <reference types="webdriverio/webdriverio-core" /> | ||
export interface ConfigOptions extends Omit<WebdriverIO.Config, 'capabilities' | keyof WebdriverIO.Hooks>, Hooks { | ||
spec?: string[]; | ||
suite?: string[]; | ||
capabilities?: Capabilities; | ||
specFileRetryAttempts?: number; | ||
cucumberFeaturesWithLineNumbers?: string[]; | ||
} | ||
export declare type DefaultOptions<T> = { | ||
[k in keyof T]: { | ||
[k in keyof T]?: { | ||
type: 'string' | 'number' | 'object' | 'boolean' | 'function'; | ||
default?: T[k]; | ||
required?: boolean; | ||
validate?: (option: k) => void; | ||
validate?: (option: T[k]) => void; | ||
match?: RegExp; | ||
@@ -20,0 +23,0 @@ }; |
{ | ||
"name": "@wdio/config", | ||
"version": "6.9.0", | ||
"version": "6.10.0", | ||
"description": "A helper utility to parse and validate WebdriverIO options", | ||
@@ -33,3 +33,3 @@ "author": "Christian Bromann <christian@saucelabs.com>", | ||
}, | ||
"gitHead": "b933815152731bba96cdb85843b37d896cfd42d4" | ||
"gitHead": "f7968c4d925835a2a971bbf9c0f4fdb3911ec8d9" | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
25302
482