fix(core): fix migration adding duplicate implicit dependencies

This commit is contained in:
Jason Jean 2020-02-03 12:09:57 -05:00 committed by Victor Savkin
parent 04a9c5edbb
commit be495c27ef
2 changed files with 27 additions and 2 deletions

View File

@ -41,4 +41,26 @@ describe('Update 8.12.0', () => {
tags: []
});
});
it('should not add duplicate implicit dependencies for e2e projects', async () => {
tree = await callRule(
updateJsonInTree<NxJson>('nx.json', json => {
json.projects['my-app-e2e'].implicitDependencies = ['my-app'];
return json;
}),
tree
);
const result = await runMigration('add-implicit-e2e-deps', {}, tree);
const nxJson = readJsonInTree<NxJson>(result, 'nx.json');
expect(nxJson.projects['my-app-e2e']).toEqual({
tags: [],
implicitDependencies: ['my-app']
});
expect(nxJson.projects['my-non-existent-app-e2e']).toEqual({
tags: []
});
});
});

View File

@ -12,10 +12,13 @@ import { formatFiles } from '@nrwl/workspace/src/utils/rules/format-files';
const addE2eImplicitDependencies = updateJsonInTree<NxJson>('nx.json', json => {
Object.keys(json.projects).forEach(proj => {
if (proj.endsWith('-e2e') && json.projects[proj.replace(/-e2e$/, '')]) {
const implicitE2eName = proj.replace(/-e2e$/, '');
if (proj.endsWith('-e2e') && json.projects[implicitE2eName]) {
json.projects[proj].implicitDependencies =
json.projects[proj].implicitDependencies || [];
json.projects[proj].implicitDependencies.push(proj.replace(/-e2e$/, ''));
if (!json.projects[proj].implicitDependencies.includes(implicitE2eName)) {
json.projects[proj].implicitDependencies.push(implicitE2eName);
}
}
});
return json;