@wdio/utils
Advanced tools
Comparing version 6.0.0-alpha.1 to 6.0.0-beta.0
@@ -12,8 +12,14 @@ "use strict"; | ||
}); | ||
Object.defineProperty(exports, "initialiseServices", { | ||
Object.defineProperty(exports, "initialiseWorkerService", { | ||
enumerable: true, | ||
get: function () { | ||
return _initialiseServices.default; | ||
return _initialiseServices.initialiseWorkerService; | ||
} | ||
}); | ||
Object.defineProperty(exports, "initialiseLauncherService", { | ||
enumerable: true, | ||
get: function () { | ||
return _initialiseServices.initialiseLauncherService; | ||
} | ||
}); | ||
Object.defineProperty(exports, "webdriverMonad", { | ||
@@ -124,3 +130,3 @@ enumerable: true, | ||
var _initialiseServices = _interopRequireDefault(require("./initialiseServices")); | ||
var _initialiseServices = require("./initialiseServices"); | ||
@@ -127,0 +133,0 @@ var _monad = _interopRequireDefault(require("./monad")); |
@@ -14,6 +14,6 @@ "use strict"; | ||
function initialisePlugin(name, type, target = 'default') { | ||
function initialisePlugin(name, type) { | ||
if (name[0] === '@' || _path.default.isAbsolute(name)) { | ||
const service = (0, _utils.safeRequire)(name); | ||
return service[target]; | ||
return service; | ||
} | ||
@@ -24,3 +24,3 @@ | ||
if (scopedPlugin) { | ||
return scopedPlugin[target]; | ||
return scopedPlugin; | ||
} | ||
@@ -31,3 +31,3 @@ | ||
if (plugin) { | ||
return plugin[target]; | ||
return plugin; | ||
} | ||
@@ -34,0 +34,0 @@ |
@@ -6,3 +6,4 @@ "use strict"; | ||
}); | ||
exports.default = initialiseServices; | ||
exports.initialiseLauncherService = initialiseLauncherService; | ||
exports.initialiseWorkerService = initialiseWorkerService; | ||
@@ -17,44 +18,83 @@ var _logger = _interopRequireDefault(require("@wdio/logger")); | ||
function initialiseServices(config, caps, type) { | ||
function initialiseServices(services) { | ||
const initialisedServices = []; | ||
if (!Array.isArray(config.services)) { | ||
return initialisedServices; | ||
} | ||
for (let serviceName of config.services) { | ||
let serviceConfig = {}; | ||
if (Array.isArray(serviceName)) { | ||
serviceConfig = Object.assign({}, serviceName[1] || {}); | ||
serviceName = serviceName[0]; | ||
for (let [serviceName, serviceConfig] of services) { | ||
if (typeof serviceName === 'object') { | ||
log.debug('initialise custom initiated service'); | ||
initialisedServices.push([serviceName, {}]); | ||
continue; | ||
} | ||
if (serviceName && typeof serviceName === 'object' && !Array.isArray(serviceName)) { | ||
log.debug('initialise custom initiated service'); | ||
initialisedServices.push(serviceName); | ||
if (typeof serviceName === 'function') { | ||
log.debug(`initialise custom service "${serviceName.name}"`); | ||
initialisedServices.push([serviceName, serviceConfig]); | ||
continue; | ||
} | ||
try { | ||
if (typeof serviceName === 'function') { | ||
log.debug(`initialise custom service "${serviceName.name}"`); | ||
initialisedServices.push(new serviceName(serviceConfig, caps, config)); | ||
log.debug(`initialise service "${serviceName}" as NPM package`); | ||
const service = (0, _initialisePlugin.default)(serviceName, 'service'); | ||
initialisedServices.push([service, serviceConfig, serviceName]); | ||
} | ||
return initialisedServices; | ||
} | ||
function sanitizeServiceArray(service) { | ||
return Array.isArray(service) ? service : [service, {}]; | ||
} | ||
function initialiseLauncherService(config, caps) { | ||
const ignoredWorkerServices = []; | ||
const launcherServices = []; | ||
try { | ||
const services = initialiseServices(config.services.map(sanitizeServiceArray)); | ||
for (const [service, serviceConfig, serviceName] of services) { | ||
if (typeof service === 'object' && !serviceName) { | ||
launcherServices.push(service); | ||
continue; | ||
} | ||
log.debug(`initialise wdio service "${serviceName}"`); | ||
const Service = (0, _initialisePlugin.default)(serviceName, 'service', type); | ||
const Launcher = service.launcher || service; | ||
if (!Service) { | ||
continue; | ||
if (typeof Launcher === 'function') { | ||
launcherServices.push(new Launcher(serviceConfig, caps, config)); | ||
} | ||
initialisedServices.push(new Service(serviceConfig, caps, config)); | ||
} catch (e) { | ||
log.error(e); | ||
if (serviceName && typeof service.default !== 'function' && typeof service !== 'function') { | ||
ignoredWorkerServices.push(serviceName); | ||
} | ||
} | ||
} catch (err) { | ||
log.error(err); | ||
} | ||
return initialisedServices; | ||
return { | ||
ignoredWorkerServices, | ||
launcherServices | ||
}; | ||
} | ||
function initialiseWorkerService(config, caps, ignoredWorkerServices = []) { | ||
const workerServices = config.services.map(sanitizeServiceArray).filter(([serviceName]) => !ignoredWorkerServices.includes(serviceName)); | ||
try { | ||
const services = initialiseServices(workerServices); | ||
return services.map(([service, serviceConfig, serviceName]) => { | ||
if (typeof service === 'object' && !serviceName) { | ||
return service; | ||
} | ||
const Service = service.default || service; | ||
if (typeof Service === 'function') { | ||
return new Service(serviceConfig, caps, config); | ||
} | ||
}).filter(Boolean); | ||
} catch (err) { | ||
log.error(err); | ||
return []; | ||
} | ||
} |
@@ -14,8 +14,2 @@ "use strict"; | ||
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } | ||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } | ||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } | ||
const testFnWrapper = function (...args) { | ||
@@ -49,3 +43,3 @@ return testFrameworkFnWrapper.call(this, { | ||
}; | ||
const beforeArgs = mochaJasmineCompatibility(beforeFnArgs(this), this); | ||
const beforeArgs = beforeFnArgs(this); | ||
await (0, _errorHandler.logHookError)(`Before${type}`, (await executeHooksWithArgs(beforeFn, beforeArgs)), cid); | ||
@@ -84,5 +78,2 @@ let promise; | ||
}); | ||
afterArgs = mochaJasmineCompatibility(afterArgs, this); | ||
afterArgs = mochaJasmineResultCompatibility(afterArgs, error, duration); | ||
afterArgs = cucumberCompatibility(afterArgs); | ||
await (0, _errorHandler.logHookError)(`After${type}`, (await executeHooksWithArgs(afterFn, [...afterArgs])), cid); | ||
@@ -97,42 +88,2 @@ | ||
exports.testFrameworkFnWrapper = testFrameworkFnWrapper; | ||
const mochaJasmineCompatibility = (hookArgs, { | ||
test = {} | ||
} = {}) => { | ||
let args = hookArgs; | ||
if (hookArgs.length < 4 && hookArgs[0] && typeof hookArgs[0] === 'object') { | ||
if (!args[0].title) { | ||
args[0].title = args[0].description; | ||
} | ||
args[0].fullTitle = test.fullTitle ? test.fullTitle() : hookArgs[0].fullName ? hookArgs[0].fullName : undefined; | ||
} | ||
return args; | ||
}; | ||
const mochaJasmineResultCompatibility = (afterArgs, error, duration) => { | ||
let args = afterArgs; | ||
if (afterArgs.length === 3 && afterArgs[0] && typeof afterArgs[0] === 'object') { | ||
args = [_objectSpread({}, afterArgs[0], { | ||
error, | ||
duration, | ||
passed: !error | ||
}), ...afterArgs.slice(1)]; | ||
} | ||
return args; | ||
}; | ||
const cucumberCompatibility = afterArgs => { | ||
let args = afterArgs; | ||
if (afterArgs.length === 5) { | ||
args = [...afterArgs.slice(0, 2), afterArgs[4], ...afterArgs.slice(2, 4)]; | ||
} | ||
return args; | ||
}; | ||
exports.testFrameworkFnWrapper = testFrameworkFnWrapper; |
{ | ||
"name": "@wdio/utils", | ||
"version": "6.0.0-alpha.1", | ||
"version": "6.0.0-beta.0", | ||
"description": "A WDIO helper utility to provide several utility functions used across the project.", | ||
@@ -34,3 +34,3 @@ "author": "Christian Bromann <christian@saucelabs.com>", | ||
"dependencies": { | ||
"@wdio/logger": "6.0.0-alpha.0" | ||
"@wdio/logger": "6.0.0-beta.0" | ||
}, | ||
@@ -40,3 +40,3 @@ "publishConfig": { | ||
}, | ||
"gitHead": "1b11d192fa30cd92724a21e3febbf40b9e5b3ba2" | ||
"gitHead": "478c5546246ce47c8344d29a4d36d067ab3a6983" | ||
} |
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
830
292
2
10
1
73
28891
+ Added@wdio/logger@6.0.0-beta.0(transitive)
- Removed@wdio/logger@6.0.0-alpha.0(transitive)
Updated@wdio/logger@6.0.0-beta.0