79 lines
2.3 KiB
TypeScript
79 lines
2.3 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();
|
|
});
|
|
});
|