diff --git a/packages/react/src/generators/application/application.spec.ts b/packages/react/src/generators/application/application.spec.ts index aad4b2a699cc4..01e1b8d2e9818 100644 --- a/packages/react/src/generators/application/application.spec.ts +++ b/packages/react/src/generators/application/application.spec.ts @@ -311,6 +311,14 @@ describe('app', () => { ); }); + it('should setup jest with babel-jest support', async () => { + await applicationGenerator(appTree, { ...schema, name: 'my-app' }); + + expect(appTree.read('apps/my-app/jest.config.ts').toString()).toContain( + "['babel-jest', { presets: ['@nrwl/react/babel'] }]" + ); + }); + it('should setup jest without serializers', async () => { await applicationGenerator(appTree, { ...schema, name: 'my-app' }); diff --git a/packages/react/src/generators/library/library.spec.ts b/packages/react/src/generators/library/library.spec.ts index c49f4560ca0dc..7968042c5fc62 100644 --- a/packages/react/src/generators/library/library.spec.ts +++ b/packages/react/src/generators/library/library.spec.ts @@ -224,6 +224,12 @@ describe('lib', () => { } `); }); + it('should update jest.config.ts for babel', async () => { + await libraryGenerator(appTree, { ...defaultSchema, compiler: 'babel' }); + expect(appTree.read('libs/my-lib/jest.config.ts', 'utf-8')).toContain( + "['babel-jest', { presets: ['@nrwl/react/babel'] }]" + ); + }); }); describe('nested', () => { @@ -270,6 +276,16 @@ describe('lib', () => { ).toBeTruthy(); }); + it('should update jest.config.ts for babel', async () => { + await libraryGenerator(appTree, { + ...defaultSchema, + directory: 'myDir', + compiler: 'babel', + }); + expect( + appTree.read('libs/my-dir/my-lib/jest.config.ts', 'utf-8') + ).toContain("['babel-jest', { presets: ['@nrwl/react/babel'] }]"); + }); it('should update workspace.json', async () => { await libraryGenerator(appTree, { ...defaultSchema, directory: 'myDir' }); const workspaceJson = readJson(appTree, '/workspace.json'); diff --git a/packages/react/src/generators/library/library.ts b/packages/react/src/generators/library/library.ts index 07a0c77016a91..9e24c73af255c 100644 --- a/packages/react/src/generators/library/library.ts +++ b/packages/react/src/generators/library/library.ts @@ -46,7 +46,7 @@ import { import componentGenerator from '../component/component'; import init from '../init/init'; import { Schema } from './schema'; - +import { updateJestConfigContent } from '../../utils/jest-utils'; export interface NormalizedSchema extends Schema { name: string; fileName: string; @@ -99,6 +99,16 @@ export async function libraryGenerator(host: Tree, schema: Schema) { compiler: options.compiler, }); tasks.push(jestTask); + const jestConfigPath = joinPathFragments( + options.projectRoot, + options.js ? 'jest.config.js' : 'jest.config.ts' + ); + if (options.compiler === 'babel' && host.exists(jestConfigPath)) { + const updatedContent = updateJestConfigContent( + host.read(jestConfigPath, 'utf-8') + ); + host.write(jestConfigPath, updatedContent); + } } if (options.component) {