nx/nx-dev/nx-dev-e2e/src/packages.spec.ts
Jack Hsu 2e621f324c
feat(misc): v19 cleanup for Nx plugins (#23104)
This PR removes deprecated code that's been slated for removal in Nx 19
- mentioned as `TODO(v19)` comments.

## Breaking Changes

- **CNW:** `create-nx-workspace` no longer support `--preset=empty` and
`--preset=core`, use `--preset=apps` and `--preset=npm` respectively.
Deprecated in Nx 15.9.
- **Next.js:** `NX_` environment variables are no longer bundled into
Next.js apps, use `NEXT_PUBLIC` instead. Deprecated in Nx 16.8.
- **Webpack, Storybook, Esbuild:** `NX_` environment variables are no
longer bundled into browser bundles, use `NX_PUBLIC` instead. This
removes the possibility of intentional bundling of `NX_` variables.
Deprecated in Nx 18.
- **Cypress:** `cypressComponentConfiguration` generator removed from
`@nx/cypress`, use `configurationGenerator`instead. Deprecated in Nx
16.8.
- **Cypress:** `cypressProjectGenerator` generator removed from
`@nx/cypress`, use `configurationGenerator` instead. Deprecated in Nx
15.9.
- **Expo:** `withNxWebpack` removed from `@nx/expo`, use [metro
bundler](https://docs.expo.dev/guides/customizing-metro/)
(https://docs.expo.dev/guides/customizing-metro/) in app.json instead.
There is a migration to handle this in Nx 19. Deprecated in Nx 15.8.

## Deferred to v20

- **JS:** `classProperties.loose` option removed from `@nx/js/babel`
preset, use `loose` instead. Deprecated in Nx 17.0.
- **ESLint:** Low priority task to "deviations from
@typescript-eslint/recommended" for our lint rules. @JamesHenry will
look at this later before Nx 20, but it is unimportant.
- **React:** component testing does not work with Project Crystal, and
we need the executor + built-in webpack configs to run CT. Will do a
follow-up on this after Nx 19 release. Related issue:
https://github.com/nrwl/nx/issues/21546
- **Next.js:** `withStylus` removal from `@nx/next`, use SASS instead.
It hasn't worked, but we kept the file to throw an error when used.
Deprecated in Nx 17.0.
- **Next.js**: `@nx/next:component` and `@nx/next:page` generators to
not derive the `components` and `app`/`pages` directory. Use `nx g
@nx/next:component apps/myapp/components/button` instead. Deprecated in
Nx 17.0.
- **Webpack:** `isolatedConfig` option removal from
`@nx/webpack:webpack` executor. There is a migration to handle this in
Nx 19. Deprecated in in Nx 17.2.
- **Angular:** `executeWebpackDevServerBuilder` removal from
`@nx/angular/executors`, use `executeDevServerBuilder` instead.
Deprecated in Nx 17.0.
2024-05-02 13:37:12 -04:00

461 lines
14 KiB
TypeScript

import { assertTextOnPage } from './helpers';
import { test } from '@playwright/test';
const pages: Array<{ title: string; path: string }> = [
{ title: '@nx/angular', path: '/packages/angular' },
{
title: '@nx/angular:add-linting',
path: '/packages/angular/generators/add-linting',
},
{
title: '@nx/angular:application',
path: '/packages/angular/generators/application',
},
{
title: '@nx/angular:component',
path: '/packages/angular/generators/component',
},
{
title: '@nx/angular:component-cypress-spec',
path: '/packages/angular/generators/component-cypress-spec',
},
{
title: '@nx/angular:component-story',
path: '/packages/angular/generators/component-story',
},
{ title: '@nx/angular:init', path: '/packages/angular/generators/init' },
{
title: '@nx/angular:library',
path: '/packages/angular/generators/library',
},
{
title: '@nx/angular:library-secondary-entry-point',
path: '/packages/angular/generators/library-secondary-entry-point',
},
{
title: '@nx/angular:remote',
path: '/packages/angular/generators/remote',
},
{ title: '@nx/angular:move', path: '/packages/angular/generators/move' },
{
title: '@nx/angular:convert-to-with-mf',
path: '/packages/angular/generators/convert-to-with-mf',
},
{ title: '@nx/angular:host', path: '/packages/angular/generators/host' },
{
title: '@nx/angular:ng-add',
path: '/packages/angular/generators/ng-add',
},
{ title: '@nx/angular:ngrx', path: '/packages/angular/generators/ngrx' },
{ title: '@nx/angular:scam', path: '/packages/angular/generators/scam' },
{
title: '@nx/angular:scam-directive',
path: '/packages/angular/generators/scam-directive',
},
{
title: '@nx/angular:scam-pipe',
path: '/packages/angular/generators/scam-pipe',
},
{
title: '@nx/angular:setup-mf',
path: '/packages/angular/generators/setup-mf',
},
{
title: '@nx/angular:setup-tailwind',
path: '/packages/angular/generators/setup-tailwind',
},
{
title: '@nx/angular:stories',
path: '/packages/angular/generators/stories',
},
{
title: '@nx/',
path: '/packages/angular/generators/storybook-configuration',
},
{
title: '@nx/angular:web-worker',
path: '/packages/angular/generators/web-worker',
},
{
title: '@nx/angular:delegate-build',
path: '/packages/angular/executors/delegate-build',
},
{
title: '@nx/angular:ng-packagr-lite',
path: '/packages/angular/executors/ng-packagr-lite',
},
{
title: '@nx/angular:package',
path: '/packages/angular/executors/package',
},
{ title: 'create-nx-plugin', path: '/packages/create-nx-plugin' },
{
title: 'create-nx-workspace',
path: '/packages/create-nx-workspace',
},
{ title: '@nx/cypress', path: '/packages/cypress' },
{ title: '@nx/cypress:init', path: '/packages/cypress/generators/init' },
{
title: '@nx/cypress:cypress',
path: '/packages/cypress/executors/cypress',
},
{ title: '@nx/detox', path: '/packages/detox' },
{ title: '@nx/detox:init', path: '/packages/detox/generators/init' },
{
title: '@nx/detox:application',
path: '/packages/detox/generators/application',
},
{ title: '@nx/detox:build', path: '/packages/detox/executors/build' },
{ title: '@nx/detox:test', path: '/packages/detox/executors/test' },
{ title: '@nx/devkit', path: '/packages/devkit' },
{ title: '@nx/esbuild', path: '/packages/esbuild' },
{
title: '@nx/esbuild:esbuild',
path: '/packages/esbuild/executors/esbuild',
},
{ title: '@nx/eslint-plugin', path: '/packages/eslint-plugin' },
{ title: '@nx/expo', path: '/packages/expo' },
{
title: '@nx/expo:init',
path: '/packages/expo/generators/init',
},
{
title: '@nx/expo:application',
path: '/packages/expo/generators/application',
},
{
title: '@nx/expo:library',
path: '/packages/expo/generators/library',
},
{
title: '@nx/expo:component',
path: '/packages/expo/generators/component',
},
{
title: '@nx/expo:start',
path: '/packages/expo/executors/start',
},
{
title: '@nx/expo:sync-deps',
path: '/packages/expo/executors/sync-deps',
},
{
title: '@nx/expo:ensure-symlink',
path: '/packages/expo/executors/ensure-symlink',
},
{ title: '@nx/express', path: '/packages/express' },
{ title: '@nx/express:init', path: '/packages/express/generators/init' },
{
title: '@nx/express:application',
path: '/packages/express/generators/application',
},
{ title: '@nx/jest', path: '/packages/jest' },
{ title: '@nx/jest:init', path: '/packages/jest/generators/init' },
{
title: '@nx/jest:configuration',
path: '/packages/jest/generators/configuration',
},
{ title: '@nx/jest', path: '/packages/jest/executors/jest' },
{ title: '@nx/js', path: '/packages/js' },
{ title: '@nx/js:library', path: '/packages/js/generators/library' },
{ title: '@nx/js:init', path: '/packages/js/generators/init' },
{
title: '@nx/js:convert-to-swc',
path: '/packages/js/generators/convert-to-swc',
},
{ title: '@nx/js:tsc', path: '/packages/js/executors/tsc' },
{ title: '@nx/js:swc', path: '/packages/js/executors/swc' },
{ title: '@nx/eslint', path: '/packages/eslint' },
{
title: '@nx/eslint:workspace-rules-project',
path: '/packages/eslint/generators/workspace-rules-project',
},
{
title: '@nx/eslint',
path: '/packages/eslint/generators/workspace-rule',
},
{ title: '@nx/eslint', path: '/packages/eslint/executors/lint' },
{ title: '@nx/nest', path: '/packages/nest' },
{
title: '@nx/nest:application',
path: '/packages/nest/generators/application',
},
{ title: '@nx/nest:init', path: '/packages/nest/generators/init' },
{ title: '@nx/nest:library', path: '/packages/nest/generators/library' },
{ title: '@nx/nest:class', path: '/packages/nest/generators/class' },
{
title: '@nx/nest:controller',
path: '/packages/nest/generators/controller',
},
{
title: '@nx/nest:decorator',
path: '/packages/nest/generators/decorator',
},
{ title: '@nx/nest:filter', path: '/packages/nest/generators/filter' },
{ title: '@nx/nest:gateway', path: '/packages/nest/generators/gateway' },
{ title: '@nx/nest:guard', path: '/packages/nest/generators/guard' },
{
title: '@nx/nest:interceptor',
path: '/packages/nest/generators/interceptor',
},
{
title: '@nx/nest:interface',
path: '/packages/nest/generators/interface',
},
{
title: '@nx/nest:middleware',
path: '/packages/nest/generators/middleware',
},
{ title: '@nx/nest:module', path: '/packages/nest/generators/module' },
{ title: '@nx/nest:pipe', path: '/packages/nest/generators/pipe' },
{
title: '@nx/nest:provider',
path: '/packages/nest/generators/provider',
},
{
title: '@nx/nest:resolver',
path: '/packages/nest/generators/resolver',
},
{
title: '@nx/nest:resource',
path: '/packages/nest/generators/resource',
},
{ title: '@nx/nest:service', path: '/packages/nest/generators/service' },
{ title: '@nx/next', path: '/packages/next' },
{ title: '@nx/next:init', path: '/packages/next/generators/init' },
{
title: '@nx/next:application',
path: '/packages/next/generators/application',
},
{ title: '@nx/next:page', path: '/packages/next/generators/page' },
{
title: '@nx/next:component',
path: '/packages/next/generators/component',
},
{ title: '@nx/next:library', path: '/packages/next/generators/library' },
{ title: '@nx/next:build', path: '/packages/next/executors/build' },
{ title: '@nx/next:server', path: '/packages/next/executors/server' },
{ title: '@nx/next:export', path: '/packages/next/executors/export' },
{ title: '@nx/node', path: '/packages/node' },
{ title: '@nx/node:init', path: '/packages/node/generators/init' },
{
title: '@nx/node:application',
path: '/packages/node/generators/application',
},
{ title: '@nx/node:library', path: '/packages/node/generators/library' },
{ title: 'nx', path: '/packages/nx' },
{ title: 'nx:noop', path: '/packages/nx/executors/noop' },
{
title: 'nx:run-commands',
path: '/packages/nx/executors/run-commands',
},
{ title: 'nx:run-script', path: '/packages/nx/executors/run-script' },
{ title: 'plugin', path: '/packages/plugin' },
{
title: '@nx/plugin:plugin',
path: '/packages/plugin/generators/plugin',
},
{
title: '@nx/plugin:e2e-project',
path: '/packages/plugin/generators/e2e-project',
},
{
title: '@nx/plugin:migration',
path: '/packages/plugin/generators/migration',
},
{
title: '@nx/plugin:generator',
path: '/packages/plugin/generators/generator',
},
{
title: '@nx/plugin:executor',
path: '/packages/plugin/generators/executor',
},
{ title: '@nx/react', path: '/packages/react' },
{ title: '@nx/react:init', path: '/packages/react/generators/init' },
{
title: '@nx/react:application',
path: '/packages/react/generators/application',
},
{
title: '@nx/react:library',
path: '/packages/react/generators/library',
},
{
title: '@nx/react:component',
path: '/packages/react/generators/component',
},
{ title: '@nx/react:redux', path: '/packages/react/generators/redux' },
{
title: '@nx/react:storybook-configuration',
path: '/packages/react/generators/storybook-configuration',
},
{
title: '@nx/react:component-story',
path: '/packages/react/generators/component-story',
},
{
title: '@nx/react:stories',
path: '/packages/react/generators/stories',
},
{
title: '@nx/react:component-cypress-spec',
path: '/packages/react/generators/component-cypress-spec',
},
{ title: '@nx/react:hook', path: '/packages/react/generators/hook' },
{ title: '@nx/react:host', path: '/packages/react/generators/host' },
{ title: '@nx/react:remote', path: '/packages/react/generators/remote' },
{
title: '@nx/react:module-federation-dev-server',
path: '/packages/react/executors/module-federation-dev-server',
},
{ title: '@nx/react-native', path: '/packages/react-native' },
{
title: '@nx/react-native:init',
path: '/packages/react-native/generators/init',
},
{
title: '@nx/react-native:application',
path: '/packages/react-native/generators/application',
},
{
title: '@nx/react-native:library',
path: '/packages/react-native/generators/library',
},
{
title: '@nx/react-native:component',
path: '/packages/react-native/generators/component',
},
{
title: '@nx/',
path: '/packages/react-native/generators/storybook-configuration',
},
{
title: '@nx/react-native:component-story',
path: '/packages/react-native/generators/component-story',
},
{
title: '@nx/react-native:stories',
path: '/packages/react-native/generators/stories',
},
{
title: '@nx/react-native:upgrade-native',
path: '/packages/react-native/generators/upgrade-native',
},
{
title: '@nx/react-native:run-android',
path: '/packages/react-native/executors/run-android',
},
{
title: '@nx/react-native:run-ios',
path: '/packages/react-native/executors/run-ios',
},
{
title: '@nx/react-native:bundle',
path: '/packages/react-native/executors/bundle',
},
{
title: '@nx/react-native:build-android',
path: '/packages/react-native/executors/build-android',
},
{
title: '@nx/react-native:start',
path: '/packages/react-native/executors/start',
},
{
title: '@nx/react-native:sync-deps',
path: '/packages/react-native/executors/sync-deps',
},
{
title: '@nx/react-native:ensure-symlink',
path: '/packages/react-native/executors/ensure-symlink',
},
{
title: '@nx/react-native:storybook',
path: '/packages/react-native/executors/storybook',
},
{ title: '@nx/storybook', path: '/packages/storybook' },
{
title: '@nx/storybook:init',
path: '/packages/storybook/generators/init',
},
{
title: '@nx/storybook:configuration',
path: '/packages/storybook/generators/configuration',
},
{
title: '@nx/storybook:cypress-project',
path: '/packages/storybook/generators/cypress-project',
},
{
title: '@nx/storybook:storybook',
path: '/packages/storybook/executors/storybook',
},
{
title: '@nx/storybook:build',
path: '/packages/storybook/executors/build',
},
{ title: '@nx/web', path: '/packages/web' },
{ title: '@nx/web:init', path: '/packages/web/generators/init' },
{
title: '@nx/web:application',
path: '/packages/web/generators/application',
},
{
title: '@nx/webpack:webpack',
path: '/packages/webpack/executors/webpack',
},
{ title: '@nx/rollup:rollup', path: '/packages/rollup/executors/rollup' },
{
title: '@nx/webpack:dev-server',
path: '/packages/webpack/executors/dev-server',
},
{
title: '@nx/web:file-server',
path: '/packages/web/executors/file-server',
},
{
title: '@nx/workspace:preset',
path: '/packages/workspace/generators/preset',
},
{
title: '@nx/workspace:move',
path: '/packages/workspace/generators/move',
},
{
title: '@nx/workspace:remove',
path: '/packages/workspace/generators/remove',
},
{
title: '@nx/workspace:new',
path: '/packages/workspace/generators/new',
},
{
title: '@nx/workspace:run-command',
path: '/packages/workspace/generators/run-commands',
},
{
title: '@nx/workspace:fix-configuration',
path: '/packages/workspace/generators/fix-configuration',
},
{
title: '@nx/workspace:npm-package',
path: '/packages/workspace/generators/npm-package',
},
{
title: '@nx/workspace:ci-workflow',
path: '/packages/workspace/generators/ci-workflow',
},
{
title: '@nx/workspace:counter',
path: '/packages/workspace/executors/counter',
},
];
/**
* Asserting all the packages pages are accounted for and accessible.
* Generation of the pages is manual since we want to make sure the change is intended.
*/
test.describe('nx-dev: Packages Section', () => {
pages.forEach((page) => assertTextOnPage(page.path, page.title));
});