diff --git a/packages/storybook/src/schematics/configuration/configuration.spec.ts b/packages/storybook/src/schematics/configuration/configuration.spec.ts index 0166440c55..3c507ffab6 100644 --- a/packages/storybook/src/schematics/configuration/configuration.spec.ts +++ b/packages/storybook/src/schematics/configuration/configuration.spec.ts @@ -1,7 +1,11 @@ import { Tree } from '@angular-devkit/schematics'; -import { readJsonInTree, getProjectConfig } from '@nrwl/workspace'; +import { + readJsonInTree, + getProjectConfig, + updateJsonInTree, +} from '@nrwl/workspace'; -import { createTestUILib, runSchematic } from '../../utils/testing'; +import { callRule, createTestUILib, runSchematic } from '../../utils/testing'; import { getTsConfigContent, TsConfig } from '../../utils/utils'; import * as fileUtils from '@nrwl/workspace/src/core/file-utils'; @@ -143,4 +147,36 @@ describe('schematic:configuration', () => { ] `); }); + + it("should update the project's .eslintrc.json if config exists", async () => { + appTree = await createTestUILib('test-ui-lib2', '@nrwl/angular', { + linter: 'eslint', + }); + + appTree = await callRule( + updateJsonInTree('libs/test-ui-lib2/.eslintrc.json', (json) => { + json.parserOptions = { + project: [], + }; + return json; + }), + appTree + ); + + const tree = await runSchematic( + 'configuration', + { name: 'test-ui-lib2' }, + appTree + ); + + expect( + readJsonInTree(tree, 'libs/test-ui-lib2/.eslintrc.json').parserOptions + ).toMatchInlineSnapshot(` + Object { + "project": Array [ + "libs/test-ui-lib2/.storybook/tsconfig.json", + ], + } + `); + }); }); diff --git a/packages/storybook/src/schematics/configuration/configuration.ts b/packages/storybook/src/schematics/configuration/configuration.ts index 1b6aebae2a..d7c61b509f 100644 --- a/packages/storybook/src/schematics/configuration/configuration.ts +++ b/packages/storybook/src/schematics/configuration/configuration.ts @@ -241,6 +241,7 @@ function updateLintConfig(schema: StorybookConfigureSchema): Rule { `${projectConfig.root}/.storybook/tsconfig.json` ); } + return json; } ); }, diff --git a/packages/storybook/src/utils/testing.ts b/packages/storybook/src/utils/testing.ts index 644548267a..1422dbc674 100644 --- a/packages/storybook/src/utils/testing.ts +++ b/packages/storybook/src/utils/testing.ts @@ -63,13 +63,15 @@ export function runMigration(migrationName: string, options: any, tree: Tree) { export async function createTestUILib( libName: string, - collectionName: '@nrwl/angular' | '@nrwl/react' + collectionName: '@nrwl/angular' | '@nrwl/react', + options: any = {} ): Promise { let appTree = Tree.empty(); appTree = createEmptyWorkspace(appTree); appTree = await callRule( externalSchematic(collectionName, 'library', { name: libName, + ...options, }), appTree );