nx/packages/angular/src/migrations/update-14-0-0/rename-mf-config.spec.ts
2022-11-23 15:45:13 -05:00

80 lines
2.3 KiB
TypeScript

import { createTreeWithEmptyWorkspace } from '@nrwl/devkit/testing';
import host from '../../generators/host/host';
import renameMFConfig from './rename-mf-config';
describe('Module Federation Config Migration', () => {
it('should rename files in projects that have an mfe.config.js', async () => {
// ARRANGE
const tree = createTreeWithEmptyWorkspace({ layout: 'apps-libs' });
await host(tree, {
name: 'host1',
});
tree.rename(
'apps/host1/module-federation.config.js',
'apps/host1/mfe.config.js'
);
const contentsOfMFEConfig = tree.read('apps/host1/mfe.config.js', 'utf-8');
expect(tree.exists('apps/host1/mfe.config.js')).toBeTruthy();
// ACT
renameMFConfig(tree);
// ASSERT
expect(tree.exists('apps/host1/mfe.config.js')).not.toBeTruthy();
expect(tree.exists('apps/host1/module-federation.config.js')).toBeTruthy();
expect(
tree.read('apps/host1/module-federation.config.js', 'utf-8')
).toEqual(contentsOfMFEConfig);
});
it('should fix dynamic hosts', async () => {
// ARRANGE
const tree = createTreeWithEmptyWorkspace({ layout: 'apps-libs' });
await host(tree, {
name: 'host1',
dynamic: true,
});
tree.rename(
'apps/host1/module-federation.config.js',
'apps/host1/mfe.config.js'
);
tree.rename(
'apps/host1/src/assets/module-federation.manifest.json',
'apps/host1/src/assets/mfe.manifest.json'
);
tree.write(
'apps/host1/src/main.ts',
tree
.read('apps/host1/src/main.ts', 'utf-8')
.replace('module-federation.manifest', 'mfe.manifest')
);
const contentsOfMFEConfig = tree.read('apps/host1/mfe.config.js', 'utf-8');
const contentsOfMFEManifest = tree.read(
'apps/host1/src/assets/mfe.manifest.json',
'utf-8'
);
expect(tree.exists('apps/host1/mfe.config.js')).toBeTruthy();
// ACT
renameMFConfig(tree);
// ASSERT
expect(tree.exists('apps/host1/mfe.config.js')).not.toBeTruthy();
expect(tree.exists('apps/host1/module-federation.config.js')).toBeTruthy();
expect(
tree.read('apps/host1/module-federation.config.js', 'utf-8')
).toEqual(contentsOfMFEConfig);
expect(
tree.read('apps/host1/src/assets/module-federation.config.json', 'utf-8')
).toEqual(contentsOfMFEManifest);
});
});