Socket
Socket
Sign inDemoInstall

@wdio/utils

Package Overview
Dependencies
Maintainers
7
Versions
292
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@wdio/utils - npm Package Compare versions

Comparing version 6.0.0-alpha.1 to 6.0.0-beta.0

12

build/index.js

@@ -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"
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc