fix(testing): provide descriptive message when the project does not have targets defined. (#9795)
when trying to add cypress to a project that does not contain targets the project will error out because of a null reference. Now when trying to add to a project without a serve target a more descriptive message is logged stating to add a serve target or use the --baseUrl flag Note: a future update should add the parameter to override what target to use if so desired. ISSUES CLOSED: #9756
This commit is contained in:
parent
46e7b4d49c
commit
02cf4be49b
@ -413,6 +413,23 @@ describe('schematic:cypress-project', () => {
|
|||||||
expect(projectConfig.tags).toEqual([]);
|
expect(projectConfig.tags).toEqual([]);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should not throw an error when --project does not have targets', async () => {
|
||||||
|
const projectConf = readProjectConfiguration(tree, 'my-app');
|
||||||
|
delete projectConf.targets;
|
||||||
|
|
||||||
|
updateProjectConfiguration(tree, 'my-app', projectConf);
|
||||||
|
await cypressProjectGenerator(tree, {
|
||||||
|
name: 'my-app-e2e',
|
||||||
|
project: 'my-app',
|
||||||
|
linter: Linter.EsLint,
|
||||||
|
});
|
||||||
|
|
||||||
|
const projectConfig = readProjectConfiguration(tree, 'my-app-e2e');
|
||||||
|
expect(projectConfig.targets['e2e'].options.devServerTarget).toEqual(
|
||||||
|
'my-app:serve'
|
||||||
|
);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('--linter', () => {
|
describe('--linter', () => {
|
||||||
|
|||||||
@ -13,6 +13,8 @@ import {
|
|||||||
Tree,
|
Tree,
|
||||||
updateJson,
|
updateJson,
|
||||||
ProjectConfiguration,
|
ProjectConfiguration,
|
||||||
|
stripIndents,
|
||||||
|
logger,
|
||||||
} from '@nrwl/devkit';
|
} from '@nrwl/devkit';
|
||||||
import { Linter, lintProjectGenerator } from '@nrwl/linter';
|
import { Linter, lintProjectGenerator } from '@nrwl/linter';
|
||||||
import { runTasksInSerial } from '@nrwl/workspace/src/utilities/run-tasks-in-serial';
|
import { runTasksInSerial } from '@nrwl/workspace/src/utilities/run-tasks-in-serial';
|
||||||
@ -82,8 +84,15 @@ function addProject(tree: Tree, options: CypressProjectSchema) {
|
|||||||
};
|
};
|
||||||
} else if (options.project) {
|
} else if (options.project) {
|
||||||
const project = readProjectConfiguration(tree, options.project);
|
const project = readProjectConfiguration(tree, options.project);
|
||||||
|
|
||||||
|
if (!project.targets) {
|
||||||
|
logger.warn(stripIndents`
|
||||||
|
NOTE: Project, "${options.project}", does not have any targets defined and a baseUrl was not provided. Nx will use
|
||||||
|
"${options.project}:serve" as the devServerTarget. But you may need to define this target within the project, "${options.project}".
|
||||||
|
`);
|
||||||
|
}
|
||||||
const devServerTarget =
|
const devServerTarget =
|
||||||
project.targets.serve && project.targets.serve.defaultConfiguration
|
project.targets?.serve && project.targets?.serve?.defaultConfiguration
|
||||||
? `${options.project}:serve:${project.targets.serve.defaultConfiguration}`
|
? `${options.project}:serve:${project.targets.serve.defaultConfiguration}`
|
||||||
: `${options.project}:serve`;
|
: `${options.project}:serve`;
|
||||||
e2eProjectConfig = {
|
e2eProjectConfig = {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user