1 | "use strict";
|
2 | const url = require('url');
|
3 | const require_project_module_1 = require('../utilities/require-project-module');
|
4 | const Task = require('../ember-cli/lib/models/task');
|
5 | exports.E2eTask = Task.extend({
|
6 | run: function (e2eTaskOptions) {
|
7 | const projectRoot = this.project.root;
|
8 | const protractorLauncher = require_project_module_1.requireProjectModule(projectRoot, 'protractor/built/launcher');
|
9 | return new Promise(function () {
|
10 | let promise = Promise.resolve();
|
11 | let additionalProtractorConfig = {
|
12 | elementExplorer: e2eTaskOptions.elementExplorer
|
13 | };
|
14 |
|
15 | if (e2eTaskOptions.serve) {
|
16 | additionalProtractorConfig.baseUrl = url.format({
|
17 | protocol: e2eTaskOptions.ssl ? 'https' : 'http',
|
18 | hostname: e2eTaskOptions.host,
|
19 | port: e2eTaskOptions.port.toString()
|
20 | });
|
21 | }
|
22 | if (e2eTaskOptions.specs.length !== 0) {
|
23 | additionalProtractorConfig['specs'] = e2eTaskOptions.specs;
|
24 | }
|
25 | if (e2eTaskOptions.webdriverUpdate) {
|
26 |
|
27 |
|
28 | const webdriverUpdate = require_project_module_1.requireProjectModule(projectRoot, 'protractor/node_modules/webdriver-manager/built/lib/cmds/update');
|
29 |
|
30 | promise = promise.then(() => webdriverUpdate.program.run({
|
31 | standalone: false,
|
32 | gecko: false,
|
33 | quiet: true
|
34 | }));
|
35 | }
|
36 |
|
37 | return promise.then(() => protractorLauncher.init(e2eTaskOptions.config, additionalProtractorConfig));
|
38 | });
|
39 | }
|
40 | });
|
41 |
|
\ | No newline at end of file |