nx/packages/workspace/src/schematics/remove/lib/check-targets.spec.ts
Jason Jean e06822da7e
chore(repo): update prettier to v2 (#2934)
this is just for the repo, and not the workspace

Co-authored-by: Rares Matei <matei.rar@gmail.com>
2020-04-29 01:09:37 -04:00

79 lines
2.4 KiB
TypeScript

import { Tree } from '@angular-devkit/schematics';
import { UnitTestTree } from '@angular-devkit/schematics/testing';
import { updateWorkspaceInTree } from '@nrwl/workspace/src/utils/ast-utils';
import { createEmptyWorkspace } from '@nrwl/workspace/testing';
import { callRule } from '../../../utils/testing';
import { Schema } from '../schema';
import { checkTargets } from './check-targets';
describe('checkTargets Rule', () => {
let tree: UnitTestTree;
let schema: Schema;
beforeEach(async () => {
tree = new UnitTestTree(Tree.empty());
tree = createEmptyWorkspace(tree) as UnitTestTree;
schema = {
projectName: 'ng-app',
skipFormat: false,
forceRemove: false,
};
tree = (await callRule(
updateWorkspaceInTree((workspace) => {
return {
version: 1,
projects: {
'ng-app': {
projectType: 'application',
schematics: {},
root: 'apps/ng-app',
sourceRoot: 'apps/ng-app/src',
prefix: 'happyorg',
architect: {
build: {
builder: '@angular-devkit/build-angular:browser',
options: {},
},
},
},
'ng-app-e2e': {
root: 'apps/ng-app-e2e',
sourceRoot: 'apps/ng-app-e2e/src',
projectType: 'application',
architect: {
e2e: {
builder: '@nrwl/cypress:cypress',
options: {
cypressConfig: 'apps/ng-app-e2e/cypress.json',
tsConfig: 'apps/ng-app-e2e/tsconfig.e2e.json',
devServerTarget: 'ng-app:serve',
},
},
},
},
},
};
}),
tree
)) as UnitTestTree;
});
it('should throw an error if another project targets', async () => {
await expect(callRule(checkTargets(schema), tree)).rejects.toThrow();
});
it('should NOT throw an error if no other project targets', async () => {
schema.projectName = 'ng-app-e2e';
await expect(callRule(checkTargets(schema), tree)).resolves.not.toThrow();
});
it('should not error if forceRemove is true', async () => {
schema.forceRemove = true;
await expect(callRule(checkTargets(schema), tree)).resolves.not.toThrow();
});
});