nx/packages/workspace/src/generators/move/lib/update-eslintrc-json.spec.ts
2021-04-26 15:16:09 -04:00

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',
})
);
});
});