63 lines
1.6 KiB
TypeScript
63 lines
1.6 KiB
TypeScript
import { readJson, readProjectConfiguration, Tree } from '@nrwl/devkit';
|
|
import { createTreeWithEmptyWorkspace } from '@nrwl/devkit/testing';
|
|
|
|
import { Linter } from '../../../utils/lint';
|
|
|
|
import { Schema } from '../schema';
|
|
import { updateEslintrcJson } from './update-eslintrc-json';
|
|
import { libraryGenerator } from '../../library/library';
|
|
|
|
describe('updateEslint', () => {
|
|
let tree: Tree;
|
|
let schema: Schema;
|
|
|
|
beforeEach(async () => {
|
|
schema = {
|
|
projectName: 'my-lib',
|
|
destination: 'shared/my-destination',
|
|
importPath: undefined,
|
|
updateImportPath: true,
|
|
};
|
|
|
|
tree = createTreeWithEmptyWorkspace();
|
|
});
|
|
|
|
it('should handle .eslintrc.json not existing', async () => {
|
|
await libraryGenerator(tree, {
|
|
name: 'my-lib',
|
|
linter: Linter.TsLint,
|
|
});
|
|
|
|
const projectConfig = readProjectConfiguration(tree, 'my-lib');
|
|
|
|
expect(() => {
|
|
updateEslintrcJson(tree, schema, projectConfig);
|
|
}).not.toThrow();
|
|
});
|
|
|
|
it('should update .eslintrc.json extends path when project is moved to subdirectory', async () => {
|
|
await libraryGenerator(tree, {
|
|
name: 'my-lib',
|
|
linter: Linter.EsLint,
|
|
});
|
|
|
|
// This step is usually handled elsewhere
|
|
tree.rename(
|
|
'libs/my-lib/.eslintrc.json',
|
|
'libs/shared/my-destination/.eslintrc.json'
|
|
);
|
|
|
|
const projectConfig = readProjectConfiguration(tree, 'my-lib');
|
|
|
|
updateEslintrcJson(tree, schema, projectConfig);
|
|
|
|
expect(
|
|
readJson(tree, '/libs/shared/my-destination/.eslintrc.json')
|
|
).toEqual(
|
|
expect.objectContaining({
|
|
extends: '../../../.eslintrc.json',
|
|
})
|
|
);
|
|
});
|
|
});
|