75 lines
2.2 KiB
TypeScript
75 lines
2.2 KiB
TypeScript
import { Tree } from '@angular-devkit/schematics';
|
|
import { SchematicTestRunner } from '@angular-devkit/schematics/testing';
|
|
import * as path from 'path';
|
|
import { createEmptyWorkspace } from '@nrwl/workspace/testing';
|
|
import { createApp, createLib, createWebApp } from '../../utils/testing';
|
|
|
|
describe('Migrate babel setup', () => {
|
|
let tree: Tree;
|
|
let schematicRunner: SchematicTestRunner;
|
|
|
|
beforeEach(async () => {
|
|
tree = Tree.empty();
|
|
tree = createEmptyWorkspace(tree);
|
|
schematicRunner = new SchematicTestRunner(
|
|
'@nrwl/react',
|
|
path.join(__dirname, '../../../migrations.json')
|
|
);
|
|
tree.overwrite(
|
|
'package.json',
|
|
JSON.stringify({
|
|
dependencies: {
|
|
react: '16.13.1',
|
|
'react-dom': '16.13.1',
|
|
},
|
|
})
|
|
);
|
|
});
|
|
|
|
it(`should create .babelrc for projects without them`, async () => {
|
|
tree = await createApp(tree, 'demo');
|
|
tree = await createLib(tree, 'ui');
|
|
|
|
tree = await schematicRunner
|
|
.runSchematicAsync('babelrc-9.4.0', {}, tree)
|
|
.toPromise();
|
|
|
|
expect(tree.exists('/babel.config.json')).toBe(true);
|
|
expect(tree.exists('/apps/demo/.babelrc')).toBe(true);
|
|
expect(tree.exists('/libs/ui/.babelrc')).toBe(true);
|
|
});
|
|
|
|
it(`should not overwrite existing .babelrc files`, async () => {
|
|
tree = await createApp(tree, 'demo');
|
|
tree.create('/apps/demo/.babelrc', '{}');
|
|
|
|
tree = await schematicRunner
|
|
.runSchematicAsync('babelrc-9.4.0', {}, tree)
|
|
.toPromise();
|
|
|
|
const content = tree.read('/apps/demo/.babelrc').toString();
|
|
expect(content).toEqual('{}');
|
|
});
|
|
|
|
it(`should not migrate non-React projects`, async () => {
|
|
tree = await createWebApp(tree, 'demo');
|
|
|
|
tree = await schematicRunner
|
|
.runSchematicAsync('babelrc-9.4.0', {}, tree)
|
|
.toPromise();
|
|
|
|
expect(tree.exists('/apps/demo/.babelrc')).toBe(false);
|
|
});
|
|
|
|
it(`should not overwrite babel.config.js file`, async () => {
|
|
tree.create('/babel.config.js', 'module.exports = {};');
|
|
|
|
tree = await schematicRunner
|
|
.runSchematicAsync('babelrc-9.4.0', {}, tree)
|
|
.toPromise();
|
|
|
|
expect(tree.exists('/babel.config.js')).toBe(true);
|
|
expect(tree.exists('/babel.config.json')).toBe(false);
|
|
});
|
|
});
|