From 595d7c934c108615bc16acc68dbfee7f6bbe0102 Mon Sep 17 00:00:00 2001 From: Alan Agius Date: Thu, 14 May 2020 12:09:54 +0200 Subject: [PATCH] refactor: deprecate protractor `elementExplorer` Protractor `elementExplorer` debugger and element explorer cannot be used for Node.js 8+ since it relied on `_debugger` module. In protractor version 5, this resulted in the below error: ``` ** Angular Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200/ ** : Compiled successfully. [10:25:35] I/direct - Using ChromeDriver directly... [10:25:37] I/protractor - [10:25:37] I/protractor - ------- Element Explorer ------- [10:25:37] I/protractor - Starting WebDriver debugger in a child process. Element Explorer is still beta, please report issues at github.com/angular/protractor [10:25:37] I/protractor - [10:25:37] I/protractor - Type to see a list of locator strategies. [10:25:37] I/protractor - Use the `list` helper function to find elements by strategy: [10:25:37] I/protractor - e.g., list(by.binding('')) gets all bindings. [10:25:37] I/protractor - *********************************************************** * WARNING: _debugger module not available on Node.js 8 * * and higher. * * * * Use 'debugger' keyword instead: * * https://goo.gl/MvWqFh * *********************************************************** /Users/alanagius/cli-repos/demo-several/node_modules/protractor/built/debugger/debuggerCommons.js:14 throw e; ^ Error: Cannot find module '_debugger' Require stack: - /Users/alanagius/cli-repos/demo-several/node_modules/protractor/built/debugger/debuggerCommons.js - /Users/alanagius/cli-repos/demo-several/node_modules/protractor/built/debugger/clients/explorer.js at Function.Module._resolveFilename (internal/modules/cjs/loader.js:980:15) at Function.Module._load (internal/modules/cjs/loader.js:862:27) at Module.require (internal/modules/cjs/loader.js:1042:19) at require (internal/modules/cjs/helpers.js:77:18) at Object. (/Users/alanagius/cli-repos/demo-several/node_modules/protractor/built/debugger/debuggerCommons.js:3:18) at Module._compile (internal/modules/cjs/loader.js:1156:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1176:10) at Module.load (internal/modules/cjs/loader.js:1000:32) at Function.Module._load (internal/modules/cjs/loader.js:899:14) at Module.require (internal/modules/cjs/loader.js:1042:19) { code: 'MODULE_NOT_FOUND', requireStack: [ '/Users/alanagius/cli-repos/demo-several/node_modules/protractor/built/debugger/debuggerCommons.js', '/Users/alanagius/cli-repos/demo-several/node_modules/protractor/built/debugger/clients/explorer.js' ] } ``` but in protractor version 7, this logic was removed --- .../angular_devkit/build_angular/src/protractor/index.ts | 1 - .../build_angular/src/protractor/schema.json | 3 ++- tests/legacy-cli/e2e/tests/basic/e2e.ts | 7 ------- 3 files changed, 2 insertions(+), 9 deletions(-) diff --git a/packages/angular_devkit/build_angular/src/protractor/index.ts b/packages/angular_devkit/build_angular/src/protractor/index.ts index 88f7356d0893..1e867c4d0dd9 100644 --- a/packages/angular_devkit/build_angular/src/protractor/index.ts +++ b/packages/angular_devkit/build_angular/src/protractor/index.ts @@ -26,7 +26,6 @@ interface JasmineNodeOpts { function runProtractor(root: string, options: ProtractorBuilderOptions): Promise { const additionalProtractorConfig: Partial & Partial = { - elementExplorer: options.elementExplorer, baseUrl: options.baseUrl, specs: options.specs && options.specs.length ? options.specs : undefined, suite: options.suite, diff --git a/packages/angular_devkit/build_angular/src/protractor/schema.json b/packages/angular_devkit/build_angular/src/protractor/schema.json index 4fbf3cf04cb6..1b1513cffd66 100644 --- a/packages/angular_devkit/build_angular/src/protractor/schema.json +++ b/packages/angular_devkit/build_angular/src/protractor/schema.json @@ -38,7 +38,8 @@ "elementExplorer": { "type": "boolean", "description": "Start Protractor's Element Explorer for debugging.", - "default": false + "default": false, + "x-deprecated": "This option has no effect. See: https://github.com/angular/protractor/blob/master/docs/debugging.md#enabled-control-flow for alternative methods." }, "webdriverUpdate": { "type": "boolean", diff --git a/tests/legacy-cli/e2e/tests/basic/e2e.ts b/tests/legacy-cli/e2e/tests/basic/e2e.ts index c3c7db2d6c49..8f7ef2de0569 100644 --- a/tests/legacy-cli/e2e/tests/basic/e2e.ts +++ b/tests/legacy-cli/e2e/tests/basic/e2e.ts @@ -57,13 +57,6 @@ export default function () { }, `, `allScriptsTimeout: 11000,` )) - // Should start up Element Explorer - .then(() => execAndWaitForOutputToMatch('ng', ['e2e', 'test-project', '--element-explorer'], - /Element Explorer/)) - .then(() => killAllProcesses(), (err: any) => { - killAllProcesses(); - throw err; - }) // Should run side-by-side with `ng serve` .then(() => execAndWaitForOutputToMatch('ng', ['serve'], /: Compiled successfully./))