UNPKG

@testim/testim-cli

Version:

Command line interface for running Testing on you CI

86 lines (67 loc) 6.43 kB
/** * * Scroll to a specific element. You can also append/pass two offset values as parameter * to scroll to a specific position. * * <example> :scroll.js client // scroll to specific element .scroll('#myElement') // scroll to specific element with offset // scroll offset will be added to elements position .scroll('#myElement', 100, 100) // scroll to specific x and y position .scroll(0, 250) .end(); * </example> * * @param {String=} selector element to scroll to * @param {Number} xoffset x offset to scroll to * @param {Number} yoffset y offset to scroll to * * @uses protocol/element, protocol/elementIdLocation, protocol/touchScroll, protocol/execute * @type utility * */ 'use strict'; var _Promise = require('babel-runtime/core-js/promise')['default']; var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default']; Object.defineProperty(exports, '__esModule', { value: true }); var _scriptsScroll = require('../scripts/scroll'); var _scriptsScroll2 = _interopRequireDefault(_scriptsScroll); var scroll = function scroll(selector) { var _this = this; var xoffset = arguments.length <= 1 || arguments[1] === undefined ? 0 : arguments[1]; var yoffset = arguments.length <= 2 || arguments[2] === undefined ? 0 : arguments[2]; if (typeof selector === 'number' && typeof xoffset === 'number') { yoffset = xoffset; xoffset = selector; selector = null; } if (this.isMobile) { var queue = _Promise.resolve(); if (selector) { queue = this.element(selector); } return queue.then(function (res) { if (typeof res !== 'undefined') { selector = res.value.ELEMENT; } return _this.touchScroll(selector, xoffset, yoffset); }); } if (selector) { return this.element(selector).then(function (res) { return _this.elementIdLocation(res.value.ELEMENT); }).then(function (location) { return _this.execute(_scriptsScroll2['default'], location.value.x + xoffset, location.value.y + yoffset); }); } return this.execute(_scriptsScroll2['default'], xoffset, yoffset); }; exports['default'] = scroll; module.exports = exports['default']; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9jb21tYW5kcy9zY3JvbGwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzZCQTZCeUIsbUJBQW1COzs7O0FBRTVDLElBQUksTUFBTSxHQUFHLFNBQVQsTUFBTSxDQUFhLFFBQVEsRUFBNEI7OztRQUExQixPQUFPLHlEQUFHLENBQUM7UUFBRSxPQUFPLHlEQUFHLENBQUM7O0FBQ3JELFFBQUksT0FBTyxRQUFRLEtBQUssUUFBUSxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRTtBQUM3RCxlQUFPLEdBQUcsT0FBTyxDQUFBO0FBQ2pCLGVBQU8sR0FBRyxRQUFRLENBQUE7QUFDbEIsZ0JBQVEsR0FBRyxJQUFJLENBQUE7S0FDbEI7O0FBRUQsUUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO0FBQ2YsWUFBSSxLQUFLLEdBQUcsU0FBUSxPQUFPLEVBQUUsQ0FBQTs7QUFFN0IsWUFBSSxRQUFRLEVBQUU7QUFDVixpQkFBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7U0FDakM7O0FBRUQsZUFBTyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQUMsR0FBRyxFQUFLO0FBQ3ZCLGdCQUFJLE9BQU8sR0FBRyxLQUFLLFdBQVcsRUFBRTtBQUM1Qix3QkFBUSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFBO2FBQy9COztBQUVELG1CQUFPLE1BQUssV0FBVyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUE7U0FDdEQsQ0FBQyxDQUFBO0tBQ0w7O0FBRUQsUUFBSSxRQUFRLEVBQUU7QUFDVixlQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUMsR0FBRzttQkFDbkMsTUFBSyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztTQUFBLENBQzVDLENBQUMsSUFBSSxDQUFDLFVBQUMsUUFBUTttQkFDWixNQUFLLE9BQU8sNkJBQWUsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsT0FBTyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQztTQUFBLENBQ3JGLENBQUE7S0FDSjs7QUFFRCxXQUFPLElBQUksQ0FBQyxPQUFPLDZCQUFlLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQTtDQUN0RCxDQUFBOztxQkFFYyxNQUFNIiwiZmlsZSI6InNjcm9sbC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICpcbiAqIFNjcm9sbCB0byBhIHNwZWNpZmljIGVsZW1lbnQuIFlvdSBjYW4gYWxzbyBhcHBlbmQvcGFzcyB0d28gb2Zmc2V0IHZhbHVlcyBhcyBwYXJhbWV0ZXJcbiAqIHRvIHNjcm9sbCB0byBhIHNwZWNpZmljIHBvc2l0aW9uLlxuICpcbiAqIDxleGFtcGxlPlxuICAgIDpzY3JvbGwuanNcbiAgICBjbGllbnRcbiAgICAgICAgLy8gc2Nyb2xsIHRvIHNwZWNpZmljIGVsZW1lbnRcbiAgICAgICAgLnNjcm9sbCgnI215RWxlbWVudCcpXG5cbiAgICAgICAgLy8gc2Nyb2xsIHRvIHNwZWNpZmljIGVsZW1lbnQgd2l0aCBvZmZzZXRcbiAgICAgICAgLy8gc2Nyb2xsIG9mZnNldCB3aWxsIGJlIGFkZGVkIHRvIGVsZW1lbnRzIHBvc2l0aW9uXG4gICAgICAgIC5zY3JvbGwoJyNteUVsZW1lbnQnLCAxMDAsIDEwMClcblxuICAgICAgICAvLyBzY3JvbGwgdG8gc3BlY2lmaWMgeCBhbmQgeSBwb3NpdGlvblxuICAgICAgICAuc2Nyb2xsKDAsIDI1MClcbiAgICAgICAgLmVuZCgpO1xuICogPC9leGFtcGxlPlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nPX0gIHNlbGVjdG9yICBlbGVtZW50IHRvIHNjcm9sbCB0b1xuICogQHBhcmFtIHtOdW1iZXJ9ICAgeG9mZnNldCAgIHggb2Zmc2V0IHRvIHNjcm9sbCB0b1xuICogQHBhcmFtIHtOdW1iZXJ9ICAgeW9mZnNldCAgIHkgb2Zmc2V0IHRvIHNjcm9sbCB0b1xuICpcbiAqIEB1c2VzIHByb3RvY29sL2VsZW1lbnQsIHByb3RvY29sL2VsZW1lbnRJZExvY2F0aW9uLCBwcm90b2NvbC90b3VjaFNjcm9sbCwgcHJvdG9jb2wvZXhlY3V0ZVxuICogQHR5cGUgdXRpbGl0eVxuICpcbiAqL1xuXG5pbXBvcnQgc2Nyb2xsSGVscGVyIGZyb20gJy4uL3NjcmlwdHMvc2Nyb2xsJ1xuXG5sZXQgc2Nyb2xsID0gZnVuY3Rpb24gKHNlbGVjdG9yLCB4b2Zmc2V0ID0gMCwgeW9mZnNldCA9IDApIHtcbiAgICBpZiAodHlwZW9mIHNlbGVjdG9yID09PSAnbnVtYmVyJyAmJiB0eXBlb2YgeG9mZnNldCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgeW9mZnNldCA9IHhvZmZzZXRcbiAgICAgICAgeG9mZnNldCA9IHNlbGVjdG9yXG4gICAgICAgIHNlbGVjdG9yID0gbnVsbFxuICAgIH1cblxuICAgIGlmICh0aGlzLmlzTW9iaWxlKSB7XG4gICAgICAgIHZhciBxdWV1ZSA9IFByb21pc2UucmVzb2x2ZSgpXG5cbiAgICAgICAgaWYgKHNlbGVjdG9yKSB7XG4gICAgICAgICAgICBxdWV1ZSA9IHRoaXMuZWxlbWVudChzZWxlY3RvcilcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBxdWV1ZS50aGVuKChyZXMpID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcmVzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIHNlbGVjdG9yID0gcmVzLnZhbHVlLkVMRU1FTlRcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMudG91Y2hTY3JvbGwoc2VsZWN0b3IsIHhvZmZzZXQsIHlvZmZzZXQpXG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgaWYgKHNlbGVjdG9yKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQoc2VsZWN0b3IpLnRoZW4oKHJlcykgPT5cbiAgICAgICAgICAgIHRoaXMuZWxlbWVudElkTG9jYXRpb24ocmVzLnZhbHVlLkVMRU1FTlQpXG4gICAgICAgICkudGhlbigobG9jYXRpb24pID0+XG4gICAgICAgICAgICB0aGlzLmV4ZWN1dGUoc2Nyb2xsSGVscGVyLCBsb2NhdGlvbi52YWx1ZS54ICsgeG9mZnNldCwgbG9jYXRpb24udmFsdWUueSArIHlvZmZzZXQpXG4gICAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5leGVjdXRlKHNjcm9sbEhlbHBlciwgeG9mZnNldCwgeW9mZnNldClcbn1cblxuZXhwb3J0IGRlZmF1bHQgc2Nyb2xsXG4iXX0=