UNPKG

@testim/testim-cli

Version:

Command line interface for running Testing on you CI

70 lines (58 loc) 2.11 kB
/** * webdriverio * https://github.com/Camme/webdriverio * * A WebDriver module for nodejs. Either use the super easy help commands or use the base * Webdriver wire protocol commands. Its totally inspired by jellyfishs webdriver, but the * goal is to make all the webdriver protocol items available, as near the original as possible. * * Copyright (c) 2013 Camilo Tapia <camilo.tapia@gmail.com> * Licensed under the MIT license. * * Contributors: * Dan Jenkins <dan.jenkins@holidayextras.com> * Christian Bromann <mail@christian-bromann.com> * Vincent Voyer <vincent@zeroload.net> */ var WebdriverIO = require('./lib/webdriverio'), Multibrowser = require('./lib/multibrowser'), ErrorHandler = require('./lib/utils/ErrorHandler'), package = require('./package.json'), path = require('path'), fs = require('fs'); // expose version number module.exports.version = package.version; // expose error handler module.exports.ErrorHandler = ErrorHandler; // use the chained API reference to add static methods var remote = module.exports.remote = function remote(options, modifier) { options = options || {}; /** * initialise monad */ var wdio = WebdriverIO(options, modifier); /** * build prototype: commands */ ['protocol', 'commands'].forEach(function(commandType) { var dir = path.join(__dirname, 'lib', commandType), files = fs.readdirSync(dir); files.forEach(function(filename) { var commandName = filename.slice(0, -3); wdio.lift(commandName, require(path.join(dir, filename))); }); }); var prototype = wdio(); prototype.defer.resolve(); return prototype; }; module.exports.multiremote = function multiremote(options) { var multibrowser = new Multibrowser(); Object.keys(options).forEach(function(browserName) { multibrowser.addInstance( browserName, remote(options[browserName], multibrowser.getInstanceModifier()) ); }); return remote(options, multibrowser.getModifier()); };