UNPKG

@wdio/config

Version:
100 lines 4 kB
import type { Capabilities, Options, Services } from '@wdio/types'; import type { PathService, ModuleImportService } from '../types.js'; type Spec = string | string[]; interface TestrunnerOptionsWithParameters extends Omit<Options.Testrunner, 'capabilities'> { watch?: boolean; coverage?: boolean; spec?: string[]; suite?: string[]; multiRun?: number; capabilities?: Capabilities.RemoteCapabilities; rootDir: string; } interface MergeConfig extends Omit<Partial<TestrunnerOptionsWithParameters>, 'specs' | 'exclude'> { specs?: Spec[]; 'wdio:specs'?: Spec[]; exclude?: string[]; 'wdio:exclude'?: string[]; } export default class ConfigParser { #private; /** * config options parsed in via CLI arguments and applied before * trying to compile config file */ private _initialConfig; private _pathService; private _moduleRequireService; private _config; private _capabilities; constructor(configFilePath: string, /** * config options parsed in via CLI arguments and applied before * trying to compile config file */ _initialConfig?: Partial<TestrunnerOptionsWithParameters>, _pathService?: PathService, _moduleRequireService?: ModuleImportService); /** * initializes the config object */ initialize(object?: MergeConfig): Promise<void>; /** * merges config file with default values * @param {string} filename path of file relative to current directory */ private addConfigFile; /** * merge external object with config object * @param {Object} object desired object to merge into the config object * @param {boolean} [addPathToSpecs=true] this flag determines whether it is necessary to find paths to specs if the --spec parameter was passed in CLI */ private merge; /** * Add hooks from an existing service to the runner config. * @param {object} service - an object that contains hook methods. */ addService(service: Services.Hooks): void; /** * determine what specs to run based on the spec(s), suite(s), exclude * attributes from CLI, config and capabilities */ getSpecs(capSpecs?: Spec[], capExclude?: Spec[]): Spec[]; /** * sets config attribute with file paths from filtering * options from cli argument * * @param {string[]} cliArgFileList list of files in a string form * @param {Object} config config object that stores the spec and exclude attributes * cli argument * @return {String[]} List of files that should be included or excluded */ setFilePathToFilterOptions(cliArgFileList: string[], specs: Spec[]): string[]; /** * return configs */ getConfig(): Required<Options.Testrunner>; /** * return capabilities */ getCapabilities(i?: number): Capabilities.DesiredCapabilities | Capabilities.W3CCapabilities | Capabilities.RemoteCapabilities; /** * returns a flattened list of globbed files * * @param {String[] | String[][]} patterns list of files to glob * @param {Boolean} omitWarnings to indicate omission of warnings * @param {FileSystemPathService} findAndGlob system path service for expanding globbed file names * @param {number} hierarchyDepth depth to prevent recursive calling beyond a depth of 1 * @return {String[] | String[][]} list of files */ static getFilePaths(patterns: Spec[], rootDir: string, findAndGlob?: PathService, hierarchyDepth?: number): Spec[]; /** * returns specs files with the excludes filtered * * @param {String[] | String[][]} spec files - list of spec files * @param {string[]} excludeList files - list of exclude files * @return {String[] | String[][]} list of spec files with excludes removed */ filterSpecs(specs: Spec[], excludeList: string[]): Spec[]; shard(specs: Spec[]): Spec[]; } export {}; //# sourceMappingURL=ConfigParser.d.ts.map