UNPKG

2.64 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const url = require("url");
4const config_1 = require("../models/config");
5const require_project_module_1 = require("../utilities/require-project-module");
6const Task = require('../ember-cli/lib/models/task');
7const SilentError = require('silent-error');
8exports.E2eTask = Task.extend({
9 run: function (e2eTaskOptions) {
10 const projectConfig = config_1.CliConfig.fromProject().config;
11 const projectRoot = this.project.root;
12 const protractorLauncher = require_project_module_1.requireProjectModule(projectRoot, 'protractor/built/launcher');
13 if (projectConfig.project && projectConfig.project.ejected) {
14 throw new SilentError('An ejected project cannot use the build command anymore.');
15 }
16 return new Promise(function () {
17 let promise = Promise.resolve();
18 let additionalProtractorConfig = {
19 elementExplorer: e2eTaskOptions.elementExplorer
20 };
21 // use serve url as override for protractors baseUrl
22 if (e2eTaskOptions.serve) {
23 additionalProtractorConfig.baseUrl = url.format({
24 protocol: e2eTaskOptions.ssl ? 'https' : 'http',
25 hostname: e2eTaskOptions.host,
26 port: e2eTaskOptions.port.toString()
27 });
28 }
29 if (e2eTaskOptions.specs.length !== 0) {
30 additionalProtractorConfig['specs'] = e2eTaskOptions.specs;
31 }
32 if (e2eTaskOptions.webdriverUpdate) {
33 // webdriver-manager can only be accessed via a deep import from within
34 // protractor/node_modules. A double deep import if you will.
35 const webdriverUpdate = require_project_module_1.requireProjectModule(projectRoot, 'protractor/node_modules/webdriver-manager/built/lib/cmds/update');
36 // run `webdriver-manager update --standalone false --gecko false --quiet`
37 // if you change this, update the command comment in prev line, and in `eject` task
38 promise = promise.then(() => webdriverUpdate.program.run({
39 standalone: false,
40 gecko: false,
41 quiet: true
42 }));
43 }
44 // Don't call resolve(), protractor will manage exiting the process itself
45 return promise.then(() => protractorLauncher.init(e2eTaskOptions.config, additionalProtractorConfig));
46 });
47 }
48});
49//# sourceMappingURL=/users/hans/sources/angular-cli/tasks/e2e.js.map
\No newline at end of file