UNPKG

appium-webdriveragent-driver

Version:
198 lines (160 loc) 13.2 kB
'use strict'; var _regeneratorRuntime = require('babel-runtime/regenerator')['default']; var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default']; var _chai = require('chai'); var _chai2 = _interopRequireDefault(_chai); var _chaiAsPromised = require('chai-as-promised'); var _chaiAsPromised2 = _interopRequireDefault(_chaiAsPromised); var _nodeSimctl = require('node-simctl'); var _appiumIosSimulator = require('appium-ios-simulator'); var _requestPromise = require('request-promise'); var _requestPromise2 = _interopRequireDefault(_requestPromise); var _libWebDriverAgentJs = require('../../lib/webDriverAgent.js'); var _libWebDriverAgentJs2 = _interopRequireDefault(_libWebDriverAgentJs); var _teen_process = require('teen_process'); _chai2['default'].should(); _chai2['default'].use(_chaiAsPromised2['default']); var PLATFORM_VERSION = '9.0'; var testUrl = 'http://localhost:8100/tree'; describe('WebDriverAgent', function () { describe('with fresh sim', function () { var sim = undefined; before(function callee$2$0() { var simUdid; return _regeneratorRuntime.async(function callee$2$0$(context$3$0) { while (1) switch (context$3$0.prev = context$3$0.next) { case 0: this.timeout(2 * 60 * 1000); context$3$0.next = 3; return _regeneratorRuntime.awrap((0, _nodeSimctl.createDevice)('webDriverAgentTest', 'iPhone 6', PLATFORM_VERSION)); case 3: simUdid = context$3$0.sent; context$3$0.next = 6; return _regeneratorRuntime.awrap((0, _appiumIosSimulator.getSimulator)(simUdid)); case 6: sim = context$3$0.sent; case 7: case 'end': return context$3$0.stop(); } }, null, this); }); after(function callee$2$0() { return _regeneratorRuntime.async(function callee$2$0$(context$3$0) { while (1) switch (context$3$0.prev = context$3$0.next) { case 0: this.timeout(2 * 60 * 1000); context$3$0.next = 3; return _regeneratorRuntime.awrap((0, _nodeSimctl.deleteDevice)(sim.udid)); case 3: case 'end': return context$3$0.stop(); } }, null, this); }); describe('with running sim', function () { afterEach(function callee$3$0() { return _regeneratorRuntime.async(function callee$3$0$(context$4$0) { while (1) switch (context$4$0.prev = context$4$0.next) { case 0: this.timeout(60 * 1000); context$4$0.next = 3; return _regeneratorRuntime.awrap(sim.shutdown()); case 3: case 'end': return context$4$0.stop(); } }, null, this); }); it('should launch agent on a sim', function callee$3$0() { var agent; return _regeneratorRuntime.async(function callee$3$0$(context$4$0) { while (1) switch (context$4$0.prev = context$4$0.next) { case 0: this.timeout(6 * 60 * 1000); context$4$0.next = 3; return _regeneratorRuntime.awrap(sim.run()); case 3: agent = new _libWebDriverAgentJs2['default']({ sim: sim, platformVersion: PLATFORM_VERSION, host: 'localhost', port: 8100 }); context$4$0.next = 6; return _regeneratorRuntime.awrap(agent.launch('sessionId')); case 6: context$4$0.next = 8; return _regeneratorRuntime.awrap((0, _requestPromise2['default'])(testUrl)); case 8: context$4$0.next = 10; return _regeneratorRuntime.awrap(agent.quit()); case 10: case 'end': return context$4$0.stop(); } }, null, this); }); }); describe('with sim not booted', function () { it('should boot sim if not booted', function callee$3$0() { var agent; return _regeneratorRuntime.async(function callee$3$0$(context$4$0) { while (1) switch (context$4$0.prev = context$4$0.next) { case 0: this.timeout(75 * 1000); agent = new _libWebDriverAgentJs2['default']({ sim: sim, platformVersion: PLATFORM_VERSION, host: 'localhost', port: 8100 }); context$4$0.next = 4; return _regeneratorRuntime.awrap(agent.launch('sessionId')); case 4: context$4$0.next = 6; return _regeneratorRuntime.awrap((0, _requestPromise2['default'])(testUrl)); case 6: context$4$0.next = 8; return _regeneratorRuntime.awrap(agent.quit()); case 8: context$4$0.next = 10; return _regeneratorRuntime.awrap(sim.shutdown()); case 10: case 'end': return context$4$0.stop(); } }, null, this); }); it('should fail if xcodebuild fails', function callee$3$0() { var agent, prom; return _regeneratorRuntime.async(function callee$3$0$(context$4$0) { while (1) switch (context$4$0.prev = context$4$0.next) { case 0: this.timeout(35 * 1000); agent = new _libWebDriverAgentJs2['default']({ sim: sim, platformVersion: PLATFORM_VERSION, host: 'localhost', port: 8100 }); agent.createXcodeBuildSubProcess = function () { var args = ['-workspace', this.agentPath, // '-scheme', // 'XCTUITestRunner', '-destination', 'id=' + this.sim.udid, 'test']; return new _teen_process.SubProcess('xcodebuild', args); }; prom = agent.launch('sessionId'); context$4$0.next = 6; return _regeneratorRuntime.awrap(prom.should.be.rejectedWith('xcodebuild failed')); case 6: case 'end': return context$4$0.stop(); } }, null, this); }); }); }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvZnVuY3Rpb25hbC93ZWJkcml2ZXJhZ2VudC1lMmUtc3BlY3MuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O29CQUFpQixNQUFNOzs7OzhCQUNJLGtCQUFrQjs7OzswQkFDRixhQUFhOztrQ0FDM0Isc0JBQXNCOzs4QkFDL0IsaUJBQWlCOzs7O21DQUNWLDZCQUE2Qjs7Ozs0QkFDN0IsY0FBYzs7QUFFekMsa0JBQUssTUFBTSxFQUFFLENBQUM7QUFDZCxrQkFBSyxHQUFHLDZCQUFnQixDQUFDOztBQUV6QixJQUFNLGdCQUFnQixHQUFHLEtBQUssQ0FBQztBQUMvQixJQUFJLE9BQU8sR0FBRyw0QkFBNEIsQ0FBQzs7QUFFM0MsUUFBUSxDQUFDLGdCQUFnQixFQUFFLFlBQU07QUFDL0IsVUFBUSxDQUFDLGdCQUFnQixFQUFFLFlBQU07QUFDL0IsUUFBSSxHQUFHLFlBQUEsQ0FBQztBQUNSLFVBQU0sQ0FBQztVQUVELE9BQU87Ozs7QUFEWCxnQkFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDOzs2Q0FDUiw4QkFBYSxvQkFBb0IsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLENBQUM7OztBQUFoRixtQkFBTzs7NkNBQ0Msc0NBQWEsT0FBTyxDQUFDOzs7QUFBakMsZUFBRzs7Ozs7OztLQUNKLENBQUMsQ0FBQzs7QUFFSCxTQUFLLENBQUM7Ozs7QUFDSixnQkFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDOzs2Q0FDdEIsOEJBQWEsR0FBRyxDQUFDLElBQUksQ0FBQzs7Ozs7OztLQUM3QixDQUFDLENBQUM7O0FBRUgsWUFBUSxDQUFDLGtCQUFrQixFQUFFLFlBQU07QUFDakMsZUFBUyxDQUFDOzs7O0FBQ1Isa0JBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDOzsrQ0FDbEIsR0FBRyxDQUFDLFFBQVEsRUFBRTs7Ozs7OztPQUNyQixDQUFDLENBQUM7O0FBRUgsUUFBRSxDQUFDLDhCQUE4QixFQUFFO1lBRzdCLEtBQUs7Ozs7QUFGVCxrQkFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDOzsrQ0FDdEIsR0FBRyxDQUFDLEdBQUcsRUFBRTs7O0FBQ1gsbUJBQUssR0FBRyxxQ0FBbUI7QUFDN0IsbUJBQUcsRUFBRSxHQUFHO0FBQ1IsK0JBQWUsRUFBRSxnQkFBZ0I7QUFDakMsb0JBQUksRUFBRSxXQUFXO0FBQ2pCLG9CQUFJLEVBQUUsSUFBSTtlQUNYLENBQUM7OytDQUVJLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDOzs7OytDQUN6QixpQ0FBUSxPQUFPLENBQUM7Ozs7K0NBQ2hCLEtBQUssQ0FBQyxJQUFJLEVBQUU7Ozs7Ozs7T0FDbkIsQ0FBQyxDQUFDO0tBQ0osQ0FBQyxDQUFDOztBQUVILFlBQVEsQ0FBQyxxQkFBcUIsRUFBRSxZQUFNO0FBQ3BDLFFBQUUsQ0FBQywrQkFBK0IsRUFBRTtZQUU5QixLQUFLOzs7O0FBRFQsa0JBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQ3BCLG1CQUFLLEdBQUcscUNBQW1CO0FBQzdCLG1CQUFHLEVBQUUsR0FBRztBQUNSLCtCQUFlLEVBQUUsZ0JBQWdCO0FBQ2pDLG9CQUFJLEVBQUUsV0FBVztBQUNqQixvQkFBSSxFQUFFLElBQUk7ZUFDWCxDQUFDOzsrQ0FFSSxLQUFLLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQzs7OzsrQ0FDekIsaUNBQVEsT0FBTyxDQUFDOzs7OytDQUNoQixLQUFLLENBQUMsSUFBSSxFQUFFOzs7OytDQUNaLEdBQUcsQ0FBQyxRQUFRLEVBQUU7Ozs7Ozs7T0FDckIsQ0FBQyxDQUFDOztBQUVILFFBQUUsQ0FBQyxpQ0FBaUMsRUFBRTtZQUdoQyxLQUFLLEVBb0JMLElBQUk7Ozs7QUF0QlIsa0JBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDOztBQUVwQixtQkFBSyxHQUFHLHFDQUFtQjtBQUM3QixtQkFBRyxFQUFFLEdBQUc7QUFDUiwrQkFBZSxFQUFFLGdCQUFnQjtBQUNqQyxvQkFBSSxFQUFFLFdBQVc7QUFDakIsb0JBQUksRUFBRSxJQUFJO2VBQ1gsQ0FBQzs7QUFFRixtQkFBSyxDQUFDLDBCQUEwQixHQUFHLFlBQVk7QUFDN0Msb0JBQUksSUFBSSxHQUFHLENBQ1QsWUFBWSxFQUNaLElBQUksQ0FBQyxTQUFTOzs7QUFHZCw4QkFBYyxVQUNSLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUNuQixNQUFNLENBQ1AsQ0FBQztBQUNGLHVCQUFPLDZCQUFlLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztlQUMzQyxDQUFDOztBQUVFLGtCQUFJLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7OytDQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUM7Ozs7Ozs7T0FDdkQsQ0FBQyxDQUFDO0tBQ0osQ0FBQyxDQUFDO0dBQ0osQ0FBQyxDQUFDO0NBQ0osQ0FBQyxDQUFDIiwiZmlsZSI6InRlc3QvZnVuY3Rpb25hbC93ZWJkcml2ZXJhZ2VudC1lMmUtc3BlY3MuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2hhaSBmcm9tICdjaGFpJztcbmltcG9ydCBjaGFpQXNQcm9taXNlZCBmcm9tICdjaGFpLWFzLXByb21pc2VkJztcbmltcG9ydCB7IGNyZWF0ZURldmljZSwgZGVsZXRlRGV2aWNlIH0gZnJvbSAnbm9kZS1zaW1jdGwnO1xuaW1wb3J0IHsgZ2V0U2ltdWxhdG9yIH0gZnJvbSAnYXBwaXVtLWlvcy1zaW11bGF0b3InO1xuaW1wb3J0IHJlcXVlc3QgZnJvbSAncmVxdWVzdC1wcm9taXNlJztcbmltcG9ydCBXZWJEcml2ZXJBZ2VudCBmcm9tICcuLi8uLi9saWIvd2ViRHJpdmVyQWdlbnQuanMnO1xuaW1wb3J0IHsgU3ViUHJvY2VzcyB9IGZyb20gJ3RlZW5fcHJvY2Vzcyc7XG5cbmNoYWkuc2hvdWxkKCk7XG5jaGFpLnVzZShjaGFpQXNQcm9taXNlZCk7XG5cbmNvbnN0IFBMQVRGT1JNX1ZFUlNJT04gPSAnOS4wJztcbmxldCB0ZXN0VXJsID0gJ2h0dHA6Ly9sb2NhbGhvc3Q6ODEwMC90cmVlJztcblxuZGVzY3JpYmUoJ1dlYkRyaXZlckFnZW50JywgKCkgPT4ge1xuICBkZXNjcmliZSgnd2l0aCBmcmVzaCBzaW0nLCAoKSA9PiB7XG4gICAgbGV0IHNpbTtcbiAgICBiZWZvcmUoYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgdGhpcy50aW1lb3V0KDIgKiA2MCAqIDEwMDApO1xuICAgICAgbGV0IHNpbVVkaWQgPSBhd2FpdCBjcmVhdGVEZXZpY2UoJ3dlYkRyaXZlckFnZW50VGVzdCcsICdpUGhvbmUgNicsIFBMQVRGT1JNX1ZFUlNJT04pO1xuICAgICAgc2ltID0gYXdhaXQgZ2V0U2ltdWxhdG9yKHNpbVVkaWQpO1xuICAgIH0pO1xuXG4gICAgYWZ0ZXIoYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgdGhpcy50aW1lb3V0KDIgKiA2MCAqIDEwMDApO1xuICAgICAgYXdhaXQgZGVsZXRlRGV2aWNlKHNpbS51ZGlkKTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCd3aXRoIHJ1bm5pbmcgc2ltJywgKCkgPT4ge1xuICAgICAgYWZ0ZXJFYWNoKGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy50aW1lb3V0KDYwICogMTAwMCk7XG4gICAgICAgIGF3YWl0IHNpbS5zaHV0ZG93bigpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgbGF1bmNoIGFnZW50IG9uIGEgc2ltJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLnRpbWVvdXQoNiAqIDYwICogMTAwMCk7XG4gICAgICAgIGF3YWl0IHNpbS5ydW4oKTtcbiAgICAgICAgbGV0IGFnZW50ID0gbmV3IFdlYkRyaXZlckFnZW50KHtcbiAgICAgICAgICBzaW06IHNpbSxcbiAgICAgICAgICBwbGF0Zm9ybVZlcnNpb246IFBMQVRGT1JNX1ZFUlNJT04sXG4gICAgICAgICAgaG9zdDogJ2xvY2FsaG9zdCcsXG4gICAgICAgICAgcG9ydDogODEwMFxuICAgICAgICB9KTtcblxuICAgICAgICBhd2FpdCBhZ2VudC5sYXVuY2goJ3Nlc3Npb25JZCcpO1xuICAgICAgICBhd2FpdCByZXF1ZXN0KHRlc3RVcmwpO1xuICAgICAgICBhd2FpdCBhZ2VudC5xdWl0KCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCd3aXRoIHNpbSBub3QgYm9vdGVkJywgKCkgPT4ge1xuICAgICAgaXQoJ3Nob3VsZCBib290IHNpbSBpZiBub3QgYm9vdGVkJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLnRpbWVvdXQoNzUgKiAxMDAwKTtcbiAgICAgICAgbGV0IGFnZW50ID0gbmV3IFdlYkRyaXZlckFnZW50KHtcbiAgICAgICAgICBzaW06IHNpbSxcbiAgICAgICAgICBwbGF0Zm9ybVZlcnNpb246IFBMQVRGT1JNX1ZFUlNJT04sXG4gICAgICAgICAgaG9zdDogJ2xvY2FsaG9zdCcsXG4gICAgICAgICAgcG9ydDogODEwMFxuICAgICAgICB9KTtcblxuICAgICAgICBhd2FpdCBhZ2VudC5sYXVuY2goJ3Nlc3Npb25JZCcpO1xuICAgICAgICBhd2FpdCByZXF1ZXN0KHRlc3RVcmwpO1xuICAgICAgICBhd2FpdCBhZ2VudC5xdWl0KCk7XG4gICAgICAgIGF3YWl0IHNpbS5zaHV0ZG93bigpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgZmFpbCBpZiB4Y29kZWJ1aWxkIGZhaWxzJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLnRpbWVvdXQoMzUgKiAxMDAwKTtcblxuICAgICAgICBsZXQgYWdlbnQgPSBuZXcgV2ViRHJpdmVyQWdlbnQoe1xuICAgICAgICAgIHNpbTogc2ltLFxuICAgICAgICAgIHBsYXRmb3JtVmVyc2lvbjogUExBVEZPUk1fVkVSU0lPTixcbiAgICAgICAgICBob3N0OiAnbG9jYWxob3N0JyxcbiAgICAgICAgICBwb3J0OiA4MTAwXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGFnZW50LmNyZWF0ZVhjb2RlQnVpbGRTdWJQcm9jZXNzID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGxldCBhcmdzID0gW1xuICAgICAgICAgICAgJy13b3Jrc3BhY2UnLFxuICAgICAgICAgICAgdGhpcy5hZ2VudFBhdGgsXG4gICAgICAgICAgICAvLyAnLXNjaGVtZScsXG4gICAgICAgICAgICAvLyAnWENUVUlUZXN0UnVubmVyJyxcbiAgICAgICAgICAgICctZGVzdGluYXRpb24nLFxuICAgICAgICAgICAgYGlkPSR7dGhpcy5zaW0udWRpZH1gLFxuICAgICAgICAgICAgJ3Rlc3QnXG4gICAgICAgICAgXTtcbiAgICAgICAgICByZXR1cm4gbmV3IFN1YlByb2Nlc3MoJ3hjb2RlYnVpbGQnLCBhcmdzKTtcbiAgICAgICAgfTtcblxuICAgICAgICBsZXQgcHJvbSA9IGFnZW50LmxhdW5jaCgnc2Vzc2lvbklkJyk7XG4gICAgICAgIGF3YWl0IHByb20uc2hvdWxkLmJlLnJlamVjdGVkV2l0aCgneGNvZGVidWlsZCBmYWlsZWQnKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19