93 lines
2.6 KiB
TypeScript
93 lines
2.6 KiB
TypeScript
import { createTreeWithEmptyWorkspace } from '@nrwl/devkit/testing';
|
|
import { readJson, writeJson, Tree } from '@nrwl/devkit';
|
|
import { updateExistingBabelrcFiles } from './update-existing-babelrc-files';
|
|
|
|
describe('Create missing .babelrc files', () => {
|
|
let tree: Tree;
|
|
|
|
beforeEach(async () => {
|
|
tree = createTreeWithEmptyWorkspace();
|
|
});
|
|
|
|
it(`should add web babel preset if it does not exist`, async () => {
|
|
writeJson(tree, 'workspace.json', {
|
|
projects: {
|
|
'missing-babel-presets': {
|
|
root: 'apps/missing-babel-presets',
|
|
projectType: 'application',
|
|
},
|
|
'web-app': {
|
|
root: 'apps/web-app',
|
|
projectType: 'application',
|
|
},
|
|
'react-app': {
|
|
root: 'apps/react-app',
|
|
projectType: 'application',
|
|
},
|
|
'gatsby-app': {
|
|
root: 'apps/gatsby-app',
|
|
projectType: 'application',
|
|
},
|
|
'not-using-babel': {
|
|
root: 'apps/not-using-babel',
|
|
projectType: 'application',
|
|
},
|
|
'next-app': {
|
|
root: 'apps/next-app',
|
|
projectType: 'application',
|
|
},
|
|
},
|
|
});
|
|
writeJson(tree, 'nx.json', {
|
|
projects: {
|
|
'missing-babel-presets': {},
|
|
'web-app': {},
|
|
'react-app': {},
|
|
'gatsby-app': {},
|
|
'not-using-babel': {},
|
|
'next-app': {},
|
|
},
|
|
});
|
|
writeJson(tree, 'babel.config.json', {
|
|
presets: ['@nrwl/web/babel'],
|
|
});
|
|
writeJson(tree, 'apps/missing-babel-presets/.babelrc', {});
|
|
writeJson(tree, 'apps/web-app/.babelrc', { presets: ['@nrwl/web/babel'] });
|
|
writeJson(tree, 'apps/react-app/.babelrc', {
|
|
presets: ['@nrwl/react/babel'],
|
|
});
|
|
writeJson(tree, 'apps/gatsby-app/.babelrc', {
|
|
presets: ['@nrwl/gatsby/babel'],
|
|
});
|
|
writeJson(tree, 'apps/next-app/.babelrc', {
|
|
presets: ['@nrwl/next/babel'],
|
|
});
|
|
|
|
await updateExistingBabelrcFiles(tree);
|
|
|
|
expect(readJson(tree, 'apps/missing-babel-presets/.babelrc')).toMatchObject(
|
|
{
|
|
presets: ['@nrwl/web/babel'],
|
|
}
|
|
);
|
|
|
|
expect(readJson(tree, 'apps/web-app/.babelrc')).toMatchObject({
|
|
presets: ['@nrwl/web/babel'],
|
|
});
|
|
|
|
expect(readJson(tree, 'apps/react-app/.babelrc')).toMatchObject({
|
|
presets: ['@nrwl/react/babel'],
|
|
});
|
|
|
|
expect(readJson(tree, 'apps/gatsby-app/.babelrc')).toMatchObject({
|
|
presets: ['@nrwl/gatsby/babel'],
|
|
});
|
|
|
|
expect(tree.exists('apps/not-using-babel/.babelrc')).not.toBeTruthy();
|
|
|
|
expect(readJson(tree, 'apps/next-app/.babelrc')).toMatchObject({
|
|
presets: ['@nrwl/next/babel'],
|
|
});
|
|
});
|
|
});
|