155 lines
4.4 KiB
TypeScript
155 lines
4.4 KiB
TypeScript
import { Tree } from '@angular-devkit/schematics';
|
|
import { readWorkspace } from '@nrwl/workspace';
|
|
import { createEmptyWorkspace } from '@nrwl/workspace/testing';
|
|
import { callRule, runMigration } from '../../utils/testing';
|
|
import { updateWorkspace } from '@nrwl/workspace/src/utils/workspace';
|
|
|
|
describe('Update eslint and tslint exclude pattern for 9.4.0', () => {
|
|
let tree: Tree;
|
|
|
|
beforeEach(async () => {
|
|
tree = Tree.empty();
|
|
tree = createEmptyWorkspace(tree);
|
|
tree = await callRule(
|
|
updateWorkspace((workspace) => {
|
|
workspace.projects.add({
|
|
name: 'proj1',
|
|
root: 'apps/proj1',
|
|
architect: {
|
|
lint: {
|
|
builder: 'some-other-linter',
|
|
options: {
|
|
exclude: ['**/node_modules/**', '!apps/proj1/**'],
|
|
},
|
|
},
|
|
},
|
|
});
|
|
workspace.projects.add({
|
|
name: 'proj2',
|
|
root: 'apps/proj2',
|
|
architect: {
|
|
lint: {
|
|
builder: '@nrwl/linter:lint',
|
|
options: {
|
|
linter: 'eslint',
|
|
exclude: ['!apps/proj2/**', '**/node_modules/**'],
|
|
},
|
|
},
|
|
},
|
|
});
|
|
workspace.projects.add({
|
|
name: 'proj3',
|
|
root: 'apps/proj3',
|
|
architect: {
|
|
lint: {
|
|
builder: '@angular-devkit/build-angular:tslint',
|
|
options: {
|
|
linter: 'eslint',
|
|
exclude: ['!apps/proj3/**', '**/node_modules/**'],
|
|
},
|
|
},
|
|
},
|
|
});
|
|
workspace.projects.add({
|
|
name: 'proj4',
|
|
root: 'apps/proj4',
|
|
architect: {
|
|
lint: {
|
|
builder: '@angular-devkit/build-angular:tslint',
|
|
options: {
|
|
linter: 'tslint',
|
|
exclude: ['!apps/proj4/*', '**/node_modules/**'],
|
|
},
|
|
},
|
|
},
|
|
});
|
|
workspace.projects.add({
|
|
name: 'proj5',
|
|
root: 'apps/proj5',
|
|
architect: {
|
|
lint: {
|
|
builder: '@nrwl/linter:lint',
|
|
options: {
|
|
linter: 'tslint',
|
|
exclude: ['!apps/proj5/*', '**/node_modules/**'],
|
|
},
|
|
},
|
|
},
|
|
});
|
|
workspace.projects.add({
|
|
name: 'proj6',
|
|
root: 'libs/proj6',
|
|
architect: {
|
|
lint: {
|
|
builder: '@angular-devkit/build-angular:tslint',
|
|
options: {
|
|
linter: 'eslint',
|
|
exclude: [
|
|
'**/node_modules/**',
|
|
'libs/proj6/**',
|
|
'!libs/proj6/**',
|
|
],
|
|
},
|
|
},
|
|
},
|
|
});
|
|
workspace.projects.add({
|
|
name: 'proj7',
|
|
root: 'libs/proj7',
|
|
architect: {
|
|
lint: {
|
|
builder: '@nrwl/linter:lint',
|
|
options: {
|
|
linter: 'eslint',
|
|
exclude: [
|
|
'**/node_modules/**',
|
|
'libs/proj7/**',
|
|
'!libs/proj7/**',
|
|
],
|
|
},
|
|
},
|
|
},
|
|
});
|
|
}),
|
|
tree
|
|
);
|
|
});
|
|
|
|
it('should fix the exclude option when using tslint', async () => {
|
|
const result = await runMigration('update-linters-exclude', {}, tree);
|
|
|
|
const json = readWorkspace(result);
|
|
|
|
expect(json.projects.proj1.architect.lint.options.exclude).toEqual([
|
|
'**/node_modules/**',
|
|
'!apps/proj1/**',
|
|
]);
|
|
expect(json.projects.proj2.architect.lint.options.exclude).toEqual([
|
|
'!apps/proj2/**/*',
|
|
'**/node_modules/**',
|
|
]);
|
|
expect(json.projects.proj3.architect.lint.options.exclude).toEqual([
|
|
'!apps/proj3/**/*',
|
|
'**/node_modules/**',
|
|
]);
|
|
expect(json.projects.proj4.architect.lint.options.exclude).toEqual([
|
|
'!apps/proj4/*',
|
|
'**/node_modules/**',
|
|
]);
|
|
expect(json.projects.proj5.architect.lint.options.exclude).toEqual([
|
|
'!apps/proj5/*',
|
|
'**/node_modules/**',
|
|
]);
|
|
expect(json.projects.proj6.architect.lint.options.exclude).toEqual([
|
|
'**/node_modules/**',
|
|
'libs/proj6/**',
|
|
'!libs/proj6/**/*',
|
|
]);
|
|
expect(json.projects.proj7.architect.lint.options.exclude).toEqual([
|
|
'**/node_modules/**',
|
|
'libs/proj7/**',
|
|
'!libs/proj7/**/*',
|
|
]);
|
|
});
|
|
});
|