82 lines
2.9 KiB
TypeScript
82 lines
2.9 KiB
TypeScript
import type { Tree } from '@nx/devkit';
|
|
import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing';
|
|
import { generateTestApplication } from '../../generators/utils/testing';
|
|
import removeBrowserlistConfig, {
|
|
DEFAULT_BROWSERS,
|
|
} from './remove-browserlist-config';
|
|
|
|
describe('Migration to delete Browserslist configurations', () => {
|
|
let tree: Tree;
|
|
|
|
beforeEach(async () => {
|
|
tree = createTreeWithEmptyWorkspace({ layout: 'apps-libs' });
|
|
await generateTestApplication(tree, {
|
|
name: 'test',
|
|
});
|
|
});
|
|
|
|
describe('given the Browserslist config matches the default', () => {
|
|
it('should delete ".browserslistrc" file', async () => {
|
|
tree.write(
|
|
'apps/test/src/app/.browserslistrc',
|
|
DEFAULT_BROWSERS.join('\n')
|
|
);
|
|
expect(tree.exists('apps/test/src/app/.browserslistrc')).toBeTruthy();
|
|
|
|
await removeBrowserlistConfig(tree);
|
|
expect(tree.exists('apps/test/src/app/.browserslistrc')).toBeFalsy();
|
|
});
|
|
|
|
it(`should not delete "browserslist" in 'node_modules'`, async () => {
|
|
tree.write('node_modules/browserslist', DEFAULT_BROWSERS.join('\n'));
|
|
tree.write('node_modules/.browserslistrc', DEFAULT_BROWSERS.join('\n'));
|
|
|
|
await removeBrowserlistConfig(tree);
|
|
expect(tree.exists('node_modules/browserslist')).toBeTruthy();
|
|
expect(tree.exists('node_modules/.browserslistrc')).toBeTruthy();
|
|
});
|
|
});
|
|
|
|
describe('given the Browserslist config does not match the default', () => {
|
|
it('should not delete "browserslist"', async () => {
|
|
tree.write('apps/test/src/app/browserslist', 'last 1 Chrome version');
|
|
|
|
await removeBrowserlistConfig(tree);
|
|
expect(tree.exists('apps/test/src/app/browserslist')).toBeTruthy();
|
|
});
|
|
|
|
it('should not delete ".browserslistrc"', async () => {
|
|
tree.write('apps/test/src/app/.browserslistrc', 'last 1 Chrome version');
|
|
|
|
await removeBrowserlistConfig(tree);
|
|
expect(tree.exists('apps/test/src/app/.browserslistrc')).toBeTruthy();
|
|
});
|
|
|
|
it('should delete ".browserslistrc" file when it only includes non supported ES5 browsers', async () => {
|
|
tree.write(
|
|
'apps/test/src/app/.browserslistrc',
|
|
[...DEFAULT_BROWSERS, 'IE 10'].join('\n')
|
|
);
|
|
expect(tree.exists('apps/test/src/app/.browserslistrc')).toBeTruthy();
|
|
|
|
await removeBrowserlistConfig(tree);
|
|
expect(tree.exists('apps/test/src/app/.browserslistrc')).toBeFalsy();
|
|
});
|
|
|
|
it('should not delete ".browserslistrc" file when it includes additional config sections', async () => {
|
|
tree.write(
|
|
'apps/test/src/app/.browserslistrc',
|
|
`
|
|
${DEFAULT_BROWSERS.join('\n')}
|
|
[modern]
|
|
last 1 chrome version
|
|
`
|
|
);
|
|
expect(tree.exists('apps/test/src/app/.browserslistrc')).toBeTruthy();
|
|
|
|
await removeBrowserlistConfig(tree);
|
|
expect(tree.exists('apps/test/src/app/.browserslistrc')).toBeTruthy();
|
|
});
|
|
});
|
|
});
|