diff --git a/docs/generated/manifests/packages.json b/docs/generated/manifests/packages.json index b44aec6cd1..5ed45108f1 100644 --- a/docs/generated/manifests/packages.json +++ b/docs/generated/manifests/packages.json @@ -15,12 +15,12 @@ "githubRoot": "https://github.com/nrwl/nx/blob/master", "name": "angular", "packageName": "@nrwl/angular", - "description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, Cypress, and Protractor. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Upgrading AngularJS applications \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.", + "description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, and Cypress. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Upgrading AngularJS applications \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.", "documents": { "/packages/angular/documents/overview": { "id": "overview", "name": "Overview", - "description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, Cypress, and Protractor. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Upgrading AngularJS applications \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.", + "description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, and Cypress. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Upgrading AngularJS applications \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.", "file": "generated/packages/angular/documents/overview", "itemList": [], "isExternal": false, @@ -31,7 +31,7 @@ "/packages/angular/documents/angular-nx-version-matrix": { "id": "angular-nx-version-matrix", "name": "Angular and Nx Version Matrix", - "description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, Cypress, and Protractor. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Upgrading AngularJS applications \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.", + "description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, and Cypress. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Upgrading AngularJS applications \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.", "file": "generated/packages/angular/documents/angular-nx-version-matrix", "itemList": [], "isExternal": false, diff --git a/docs/generated/packages-metadata.json b/docs/generated/packages-metadata.json index fdf2a24dd3..a97571dc94 100644 --- a/docs/generated/packages-metadata.json +++ b/docs/generated/packages-metadata.json @@ -11,12 +11,12 @@ "source": "/packages/add-nx-to-monorepo/src" }, { - "description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, Cypress, and Protractor. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Upgrading AngularJS applications \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.", + "description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, and Cypress. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Upgrading AngularJS applications \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.", "documents": [ { "id": "overview", "name": "Overview", - "description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, Cypress, and Protractor. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Upgrading AngularJS applications \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.", + "description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, and Cypress. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Upgrading AngularJS applications \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.", "file": "generated/packages/angular/documents/overview", "itemList": [], "isExternal": false, @@ -27,7 +27,7 @@ { "id": "angular-nx-version-matrix", "name": "Angular and Nx Version Matrix", - "description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, Cypress, and Protractor. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Upgrading AngularJS applications \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.", + "description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, and Cypress. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Upgrading AngularJS applications \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.", "file": "generated/packages/angular/documents/angular-nx-version-matrix", "itemList": [], "isExternal": false, diff --git a/docs/generated/packages/angular/documents/overview.md b/docs/generated/packages/angular/documents/overview.md index 8029726cb7..cd08d138aa 100644 --- a/docs/generated/packages/angular/documents/overview.md +++ b/docs/generated/packages/angular/documents/overview.md @@ -1,6 +1,7 @@ -The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: +The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries +within an Nx workspace. It provides: -- Integration with libraries such as Storybook, Jest, Cypress, Karma, and Protractor. +- Integration with libraries such as Storybook, Jest and Cypress. - Generators to help scaffold code quickly, including: - Micro Frontends - Libraries, both internal to your codebase and publishable to npm @@ -10,7 +11,8 @@ The Nx Plugin for Angular contains executors, generators, and utilities for mana - Utilities for automatic workspace refactoring. {% callout type="note" title="Currently using the Angular CLI?" %} -You can easily and mostly **automatically migrate from an Angular CLI** project to Nx! Learn more [here](/recipes/adopting-nx/migration-angular). +You can easily and mostly **automatically migrate from an Angular CLI** project to Nx! Learn +more [here](/recipes/adopting-nx/migration-angular). {% /callout %} ## Setting up the Angular plugin @@ -79,7 +81,9 @@ Read more about: ### Fallback to `@schematics/angular` -If you try to invoke a generator that is not present in `@nrwl/angular`, the request will automatically be forwarded on to `@schematics/angular`. So, even though there is no `@nrwl/angular:service` generator, the following command will successfully create a service: +If you try to invoke a generator that is not present in `@nrwl/angular`, the request will automatically be forwarded on +to `@schematics/angular`. So, even though there is no `@nrwl/angular:service` generator, the following command will +successfully create a service: ```shell nx g @nrwl/angular:service my-service diff --git a/docs/generated/packages/angular/generators/application.json b/docs/generated/packages/angular/generators/application.json index fac3e9aa73..549762f8b3 100644 --- a/docs/generated/packages/angular/generators/application.json +++ b/docs/generated/packages/angular/generators/application.json @@ -102,8 +102,8 @@ }, "e2eTestRunner": { "type": "string", - "enum": ["protractor", "cypress", "none"], - "description": "Test runner to use for end to end (E2E) tests. The `protractor` option is deprecated and it will be removed in v15.", + "enum": ["cypress", "none"], + "description": "Test runner to use for end to end (E2E) tests.", "default": "cypress" }, "tags": { diff --git a/docs/generated/packages/angular/generators/host.json b/docs/generated/packages/angular/generators/host.json index f1390aa8e7..856524fd58 100644 --- a/docs/generated/packages/angular/generators/host.json +++ b/docs/generated/packages/angular/generators/host.json @@ -109,7 +109,7 @@ }, "e2eTestRunner": { "type": "string", - "enum": ["protractor", "cypress", "none"], + "enum": ["cypress", "none"], "description": "Test runner to use for end to end (E2E) tests.", "default": "cypress" }, diff --git a/docs/generated/packages/angular/generators/init.json b/docs/generated/packages/angular/generators/init.json index 0560e42443..8eb9ad6271 100644 --- a/docs/generated/packages/angular/generators/init.json +++ b/docs/generated/packages/angular/generators/init.json @@ -24,7 +24,7 @@ }, "e2eTestRunner": { "type": "string", - "enum": ["protractor", "cypress", "none"], + "enum": ["cypress", "none"], "description": "Test runner to use for end to end (e2e) tests.", "default": "cypress", "x-priority": "important" diff --git a/docs/generated/packages/angular/generators/remote.json b/docs/generated/packages/angular/generators/remote.json index 0c6b75874f..793a89111a 100644 --- a/docs/generated/packages/angular/generators/remote.json +++ b/docs/generated/packages/angular/generators/remote.json @@ -103,7 +103,7 @@ }, "e2eTestRunner": { "type": "string", - "enum": ["protractor", "cypress", "none"], + "enum": ["cypress", "none"], "description": "Test runner to use for end to end (E2E) tests.", "default": "cypress" }, diff --git a/docs/shared/packages/angular/angular-plugin.md b/docs/shared/packages/angular/angular-plugin.md index 8029726cb7..cd08d138aa 100644 --- a/docs/shared/packages/angular/angular-plugin.md +++ b/docs/shared/packages/angular/angular-plugin.md @@ -1,6 +1,7 @@ -The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: +The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries +within an Nx workspace. It provides: -- Integration with libraries such as Storybook, Jest, Cypress, Karma, and Protractor. +- Integration with libraries such as Storybook, Jest and Cypress. - Generators to help scaffold code quickly, including: - Micro Frontends - Libraries, both internal to your codebase and publishable to npm @@ -10,7 +11,8 @@ The Nx Plugin for Angular contains executors, generators, and utilities for mana - Utilities for automatic workspace refactoring. {% callout type="note" title="Currently using the Angular CLI?" %} -You can easily and mostly **automatically migrate from an Angular CLI** project to Nx! Learn more [here](/recipes/adopting-nx/migration-angular). +You can easily and mostly **automatically migrate from an Angular CLI** project to Nx! Learn +more [here](/recipes/adopting-nx/migration-angular). {% /callout %} ## Setting up the Angular plugin @@ -79,7 +81,9 @@ Read more about: ### Fallback to `@schematics/angular` -If you try to invoke a generator that is not present in `@nrwl/angular`, the request will automatically be forwarded on to `@schematics/angular`. So, even though there is no `@nrwl/angular:service` generator, the following command will successfully create a service: +If you try to invoke a generator that is not present in `@nrwl/angular`, the request will automatically be forwarded on +to `@schematics/angular`. So, even though there is no `@nrwl/angular:service` generator, the following command will +successfully create a service: ```shell nx g @nrwl/angular:service my-service diff --git a/package.json b/package.json index 16c686fdd0..871bd93587 100644 --- a/package.json +++ b/package.json @@ -209,7 +209,6 @@ "prettier": "^2.6.2", "prettier-plugin-tailwindcss": "^0.1.5", "pretty-quick": "^3.1.0", - "protractor": "5.4.3", "raw-loader": "^4.0.2", "react-redux": "8.0.5", "react-refresh": "^0.10.0", diff --git a/packages/angular/package.json b/packages/angular/package.json index 99fae1007b..2920f2dbfa 100644 --- a/packages/angular/package.json +++ b/packages/angular/package.json @@ -2,7 +2,7 @@ "name": "@nrwl/angular", "version": "0.0.1", "private": false, - "description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, Cypress, and Protractor. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Upgrading AngularJS applications \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.", + "description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, and Cypress. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Upgrading AngularJS applications \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.", "repository": { "type": "git", "url": "https://github.com/nrwl/nx.git", diff --git a/packages/angular/src/generators/application/angular-v14/lib/add-e2e.ts b/packages/angular/src/generators/application/angular-v14/lib/add-e2e.ts index d4089552a1..b02fd23827 100644 --- a/packages/angular/src/generators/application/angular-v14/lib/add-e2e.ts +++ b/packages/angular/src/generators/application/angular-v14/lib/add-e2e.ts @@ -1,22 +1,11 @@ import type { Tree } from '@nrwl/devkit'; -import { getWorkspaceLayout, joinPathFragments } from '@nrwl/devkit'; import type { NormalizedSchema } from './normalized-schema'; import { cypressProjectGenerator } from '@nrwl/cypress'; - -import { E2eTestRunner } from '../../../../utils/test-runners'; - -import { addProtractor } from './add-protractor'; import { removeScaffoldedE2e } from './remove-scaffolded-e2e'; -import { updateE2eProject } from './update-e2e-project'; -import { Linter, lintProjectGenerator } from '@nrwl/linter'; export async function addE2e(tree: Tree, options: NormalizedSchema) { - if (options.e2eTestRunner === E2eTestRunner.Protractor) { - await addProtractor(tree, options); - } else { - removeScaffoldedE2e(tree, options, options.ngCliSchematicE2ERoot); - } + removeScaffoldedE2e(tree, options, options.ngCliSchematicE2ERoot); if (options.e2eTestRunner === 'cypress') { await cypressProjectGenerator(tree, { @@ -30,21 +19,4 @@ export async function addE2e(tree: Tree, options: NormalizedSchema) { rootProject: options.rootProject, }); } - - if (options.e2eTestRunner === E2eTestRunner.Protractor) { - updateE2eProject(tree, options); - if (options.linter === Linter.EsLint) { - await lintProjectGenerator(tree, { - project: options.e2eProjectName, - linter: options.linter, - eslintFilePatterns: [ - joinPathFragments(options.e2eProjectRoot, '**/*.ts'), - ], - unitTestRunner: options.unitTestRunner, - skipFormat: true, - setParserOptionsProject: options.setParserOptionsProject, - skipPackageJson: options.skipPackageJson, - }); - } - } } diff --git a/packages/angular/src/generators/application/angular-v14/lib/add-protractor.ts b/packages/angular/src/generators/application/angular-v14/lib/add-protractor.ts deleted file mode 100644 index 0e471834c2..0000000000 --- a/packages/angular/src/generators/application/angular-v14/lib/add-protractor.ts +++ /dev/null @@ -1,22 +0,0 @@ -import type { Tree } from '@nrwl/devkit'; -import { joinPathFragments, moveFilesToNewDirectory } from '@nrwl/devkit'; -import type { NormalizedSchema } from './normalized-schema'; - -export async function addProtractor(host: Tree, options: NormalizedSchema) { - const { wrapAngularDevkitSchematic } = require('@nrwl/devkit/ngcli-adapter'); - const protractorSchematic = wrapAngularDevkitSchematic( - '@schematics/angular', - 'e2e' - ); - - await protractorSchematic(host, { - relatedAppName: options.name, - rootSelector: `${options.prefix}-root`, - }); - - moveFilesToNewDirectory( - host, - joinPathFragments(options.appProjectRoot, 'e2e'), - options.e2eProjectRoot - ); -} diff --git a/packages/angular/src/generators/application/angular-v14/lib/index.ts b/packages/angular/src/generators/application/angular-v14/lib/index.ts index 09ad5e79c2..241220c850 100644 --- a/packages/angular/src/generators/application/angular-v14/lib/index.ts +++ b/packages/angular/src/generators/application/angular-v14/lib/index.ts @@ -1,6 +1,5 @@ export * from './add-e2e'; export * from './add-linting'; -export * from './add-protractor'; export * from './add-proxy-config'; export * from './add-unit-test-runner'; export * from './create-files'; diff --git a/packages/angular/src/generators/application/lib/add-e2e.ts b/packages/angular/src/generators/application/lib/add-e2e.ts index fa4162f8bc..d5503fdfa9 100644 --- a/packages/angular/src/generators/application/lib/add-e2e.ts +++ b/packages/angular/src/generators/application/lib/add-e2e.ts @@ -1,23 +1,11 @@ import type { Tree } from '@nrwl/devkit'; -import { joinPathFragments } from '@nrwl/devkit'; import type { NormalizedSchema } from './normalized-schema'; import { cypressProjectGenerator } from '@nrwl/cypress'; - -import { E2eTestRunner } from '../../../utils/test-runners'; - -import { addProtractor } from './add-protractor'; import { removeScaffoldedE2e } from './remove-scaffolded-e2e'; -import { updateE2eProject } from './update-e2e-project'; -import { Linter, lintProjectGenerator } from '@nrwl/linter'; export async function addE2e(tree: Tree, options: NormalizedSchema) { - if (options.e2eTestRunner === E2eTestRunner.Protractor) { - await addProtractor(tree, options); - } else { - removeScaffoldedE2e(tree, options, options.ngCliSchematicE2ERoot); - } - + removeScaffoldedE2e(tree, options, options.ngCliSchematicE2ERoot); if (options.e2eTestRunner === 'cypress') { await cypressProjectGenerator(tree, { name: options.e2eProjectName, @@ -30,21 +18,4 @@ export async function addE2e(tree: Tree, options: NormalizedSchema) { rootProject: options.rootProject, }); } - - if (options.e2eTestRunner === E2eTestRunner.Protractor) { - updateE2eProject(tree, options); - if (options.linter === Linter.EsLint) { - await lintProjectGenerator(tree, { - project: options.e2eProjectName, - linter: options.linter, - eslintFilePatterns: [ - joinPathFragments(options.e2eProjectRoot, '**/*.ts'), - ], - unitTestRunner: options.unitTestRunner, - skipFormat: true, - setParserOptionsProject: options.setParserOptionsProject, - skipPackageJson: options.skipPackageJson, - }); - } - } } diff --git a/packages/angular/src/generators/application/lib/add-protractor.ts b/packages/angular/src/generators/application/lib/add-protractor.ts deleted file mode 100644 index 0e471834c2..0000000000 --- a/packages/angular/src/generators/application/lib/add-protractor.ts +++ /dev/null @@ -1,22 +0,0 @@ -import type { Tree } from '@nrwl/devkit'; -import { joinPathFragments, moveFilesToNewDirectory } from '@nrwl/devkit'; -import type { NormalizedSchema } from './normalized-schema'; - -export async function addProtractor(host: Tree, options: NormalizedSchema) { - const { wrapAngularDevkitSchematic } = require('@nrwl/devkit/ngcli-adapter'); - const protractorSchematic = wrapAngularDevkitSchematic( - '@schematics/angular', - 'e2e' - ); - - await protractorSchematic(host, { - relatedAppName: options.name, - rootSelector: `${options.prefix}-root`, - }); - - moveFilesToNewDirectory( - host, - joinPathFragments(options.appProjectRoot, 'e2e'), - options.e2eProjectRoot - ); -} diff --git a/packages/angular/src/generators/application/lib/index.ts b/packages/angular/src/generators/application/lib/index.ts index 09ad5e79c2..241220c850 100644 --- a/packages/angular/src/generators/application/lib/index.ts +++ b/packages/angular/src/generators/application/lib/index.ts @@ -1,6 +1,5 @@ export * from './add-e2e'; export * from './add-linting'; -export * from './add-protractor'; export * from './add-proxy-config'; export * from './add-unit-test-runner'; export * from './create-files'; diff --git a/packages/angular/src/generators/application/schema.json b/packages/angular/src/generators/application/schema.json index 21c6a17ba9..223eac46a3 100644 --- a/packages/angular/src/generators/application/schema.json +++ b/packages/angular/src/generators/application/schema.json @@ -105,8 +105,8 @@ }, "e2eTestRunner": { "type": "string", - "enum": ["protractor", "cypress", "none"], - "description": "Test runner to use for end to end (E2E) tests. The `protractor` option is deprecated and it will be removed in v15.", + "enum": ["cypress", "none"], + "description": "Test runner to use for end to end (E2E) tests.", "default": "cypress" }, "tags": { diff --git a/packages/angular/src/generators/host/schema.json b/packages/angular/src/generators/host/schema.json index bfd782a3fb..f24b551c3c 100644 --- a/packages/angular/src/generators/host/schema.json +++ b/packages/angular/src/generators/host/schema.json @@ -112,7 +112,7 @@ }, "e2eTestRunner": { "type": "string", - "enum": ["protractor", "cypress", "none"], + "enum": ["cypress", "none"], "description": "Test runner to use for end to end (E2E) tests.", "default": "cypress" }, diff --git a/packages/angular/src/generators/init/angular-v14/init.ts b/packages/angular/src/generators/init/angular-v14/init.ts index 692a815583..4101f85b33 100755 --- a/packages/angular/src/generators/init/angular-v14/init.ts +++ b/packages/angular/src/generators/init/angular-v14/init.ts @@ -183,27 +183,6 @@ async function addE2ETestRunner( options: Schema ): Promise { switch (options.e2eTestRunner) { - case E2eTestRunner.Protractor: - return !options.skipPackageJson - ? addDependenciesToPackageJsonIfDontExist( - tree, - {}, - { - protractor: - backwardCompatibleVersions.angularV14.protractorVersion, - 'jasmine-core': - backwardCompatibleVersions.angularV14.jasmineCoreVersion, - 'jasmine-spec-reporter': - backwardCompatibleVersions.angularV14 - .jasmineSpecReporterVersion, - 'ts-node': backwardCompatibleVersions.angularV14.tsNodeVersion, - '@types/jasmine': - backwardCompatibleVersions.angularV14.typesJasmineVersion, - '@types/jasminewd2': - backwardCompatibleVersions.angularV14.typesJasminewd2Version, - } - ) - : () => {}; case E2eTestRunner.Cypress: return await cypressInitGenerator(tree, { skipPackageJson: options.skipPackageJson, diff --git a/packages/angular/src/generators/init/init.spec.ts b/packages/angular/src/generators/init/init.spec.ts index 17e7146408..477af7542b 100644 --- a/packages/angular/src/generators/init/init.spec.ts +++ b/packages/angular/src/generators/init/init.spec.ts @@ -198,44 +198,6 @@ describe('init', () => { ); }); }); - - describe('protractor', () => { - it('should add protractor dependencies', async () => { - // ACT - await init(tree, { - unitTestRunner: UnitTestRunner.None, - e2eTestRunner: E2eTestRunner.Protractor, - linter: Linter.EsLint, - skipFormat: false, - }); - - const { devDependencies } = readJson(tree, 'package.json'); - - // ASSERT - expect(devDependencies['protractor']).toBeDefined(); - expect(devDependencies['jasmine-core']).toBeDefined(); - expect(devDependencies['jasmine-spec-reporter']).toBeDefined(); - expect(devDependencies['@types/jasmine']).toBeDefined(); - expect(devDependencies['@types/jasminewd2']).toBeDefined(); - }); - - it('should set defaults', async () => { - // ACT - await init(tree, { - unitTestRunner: UnitTestRunner.None, - e2eTestRunner: E2eTestRunner.Protractor, - linter: Linter.EsLint, - skipFormat: false, - }); - - const { generators } = readJson(tree, 'nx.json'); - - // ASSERT - expect(generators['@nrwl/angular:application'].e2eTestRunner).toEqual( - 'protractor' - ); - }); - }); }); describe('--linter', () => { @@ -528,54 +490,6 @@ bar ); }); }); - - describe('protractor', () => { - it('should add protractor dependencies', async () => { - // ACT - await init(tree, { - unitTestRunner: UnitTestRunner.None, - e2eTestRunner: E2eTestRunner.Protractor, - linter: Linter.EsLint, - skipFormat: false, - }); - - const { devDependencies } = readJson(tree, 'package.json'); - - // ASSERT - expect(devDependencies['protractor']).toEqual( - backwardCompatibleVersions.angularV14.protractorVersion - ); - expect(devDependencies['jasmine-core']).toEqual( - backwardCompatibleVersions.angularV14.jasmineCoreVersion - ); - expect(devDependencies['jasmine-spec-reporter']).toEqual( - backwardCompatibleVersions.angularV14.jasmineSpecReporterVersion - ); - expect(devDependencies['@types/jasmine']).toEqual( - backwardCompatibleVersions.angularV14.typesJasmineVersion - ); - expect(devDependencies['@types/jasminewd2']).toEqual( - backwardCompatibleVersions.angularV14.typesJasminewd2Version - ); - }); - - it('should set defaults', async () => { - // ACT - await init(tree, { - unitTestRunner: UnitTestRunner.None, - e2eTestRunner: E2eTestRunner.Protractor, - linter: Linter.EsLint, - skipFormat: false, - }); - - const { generators } = readJson(tree, 'nx.json'); - - // ASSERT - expect(generators['@nrwl/angular:application'].e2eTestRunner).toEqual( - 'protractor' - ); - }); - }); }); describe('--linter', () => { diff --git a/packages/angular/src/generators/init/init.ts b/packages/angular/src/generators/init/init.ts index c2e4a881dc..60d4ed05c5 100755 --- a/packages/angular/src/generators/init/init.ts +++ b/packages/angular/src/generators/init/init.ts @@ -19,15 +19,9 @@ import { E2eTestRunner, UnitTestRunner } from '../../utils/test-runners'; import { angularDevkitVersion, angularVersion, - jasmineCoreVersion, - jasmineSpecReporterVersion, jestPresetAngularVersion, - protractorVersion, rxjsVersion, tsLibVersion, - tsNodeVersion, - typesJasmineVersion, - typesJasminewd2Version, zoneJsVersion, } from '../../utils/versions'; import { @@ -205,21 +199,6 @@ async function addE2ETestRunner( options: Schema ): Promise { switch (options.e2eTestRunner) { - case E2eTestRunner.Protractor: - return !options.skipPackageJson - ? addDependenciesToPackageJsonIfDontExist( - tree, - {}, - { - protractor: protractorVersion, - 'jasmine-core': jasmineCoreVersion, - 'jasmine-spec-reporter': jasmineSpecReporterVersion, - 'ts-node': tsNodeVersion, - '@types/jasmine': typesJasmineVersion, - '@types/jasminewd2': typesJasminewd2Version, - } - ) - : () => {}; case E2eTestRunner.Cypress: return cypressInitGenerator(tree, { skipPackageJson: options.skipPackageJson, diff --git a/packages/angular/src/generators/init/schema.json b/packages/angular/src/generators/init/schema.json index cddcf45ca5..283bb9edb1 100644 --- a/packages/angular/src/generators/init/schema.json +++ b/packages/angular/src/generators/init/schema.json @@ -21,7 +21,7 @@ }, "e2eTestRunner": { "type": "string", - "enum": ["protractor", "cypress", "none"], + "enum": ["cypress", "none"], "description": "Test runner to use for end to end (e2e) tests.", "default": "cypress", "x-priority": "important" diff --git a/packages/angular/src/generators/remote/schema.json b/packages/angular/src/generators/remote/schema.json index de295b1580..22601e3b5f 100644 --- a/packages/angular/src/generators/remote/schema.json +++ b/packages/angular/src/generators/remote/schema.json @@ -106,7 +106,7 @@ }, "e2eTestRunner": { "type": "string", - "enum": ["protractor", "cypress", "none"], + "enum": ["cypress", "none"], "description": "Test runner to use for end to end (E2E) tests.", "default": "cypress" }, diff --git a/packages/angular/src/utils/backward-compatible-versions.ts b/packages/angular/src/utils/backward-compatible-versions.ts index 556c4844d7..9207f21c44 100644 --- a/packages/angular/src/utils/backward-compatible-versions.ts +++ b/packages/angular/src/utils/backward-compatible-versions.ts @@ -35,11 +35,6 @@ export const backwardCompatibleVersions: Record< autoprefixerVersion: '^10.4.0', tsNodeVersion: '10.9.1', jestPresetAngularVersion: '~12.2.3', - protractorVersion: '~7.0.0', - jasmineCoreVersion: '~4.2.0', - jasmineSpecReporterVersion: '~7.0.0', - typesJasmineVersion: '~4.0.0', - typesJasminewd2Version: '~2.0.3', typesNodeVersion: '16.11.7', jasmineMarblesVersion: '^0.9.2', }, diff --git a/packages/angular/src/utils/test-runners.ts b/packages/angular/src/utils/test-runners.ts index 807bd72ca2..f0950951f3 100644 --- a/packages/angular/src/utils/test-runners.ts +++ b/packages/angular/src/utils/test-runners.ts @@ -4,11 +4,6 @@ export enum UnitTestRunner { } export enum E2eTestRunner { - /** - * @deprecated Protractor is no longer maintained. Support for generating - * E2E tests with it will be removed in v15. - */ - Protractor = 'protractor', Cypress = 'cypress', None = 'none', } diff --git a/packages/angular/src/utils/versions.ts b/packages/angular/src/utils/versions.ts index 19b59b63d1..d205a14988 100644 --- a/packages/angular/src/utils/versions.ts +++ b/packages/angular/src/utils/versions.ts @@ -26,10 +26,5 @@ export const autoprefixerVersion = '^10.4.0'; export const tsNodeVersion = '10.9.1'; export const jestPresetAngularVersion = '~13.0.0'; -export const protractorVersion = '~7.0.0'; -export const jasmineCoreVersion = '~4.2.0'; -export const jasmineSpecReporterVersion = '~7.0.0'; -export const typesJasmineVersion = '~4.0.0'; -export const typesJasminewd2Version = '~2.0.3'; export const typesNodeVersion = '16.11.7'; export const jasmineMarblesVersion = '^0.9.2';