67 lines
2.7 KiB
TypeScript
67 lines
2.7 KiB
TypeScript
import {checkFilesExists, cleanup, newApp, readFile, runCLI, runSchematic, updateFile} from '../utils';
|
|
|
|
describe('Nrwl Convert to Nx Workspace', () => {
|
|
beforeEach(cleanup);
|
|
|
|
fit('should generate a workspace', () => {
|
|
newApp('new proj --skip-install');
|
|
|
|
// update package.json
|
|
const packageJson = JSON.parse(readFile('proj/package.json'));
|
|
packageJson.description = "some description";
|
|
packageJson.dependencies['@ngrx/store'] = "4.0.3";
|
|
packageJson.devDependencies['@ngrx/router-store'] = "4.0.3";
|
|
updateFile('proj/package.json', JSON.stringify(packageJson, null, 2));
|
|
|
|
// update tsconfig.json
|
|
const tsconfigJson = JSON.parse(readFile('proj/tsconfig.json'));
|
|
tsconfigJson.compilerOptions.paths = {
|
|
'a': ['b']
|
|
};
|
|
updateFile('proj/tsconfig.json', JSON.stringify(tsconfigJson, null, 2));
|
|
|
|
|
|
// run the command
|
|
runSchematic('@nrwl/schematics:convert-to-workspace', { projectName: 'proj' });
|
|
|
|
// check that files have been moved!
|
|
checkFilesExists('proj/apps/proj/src/main.ts', 'proj/apps/proj/src/app/app.module.ts');
|
|
|
|
// check that package.json got merged
|
|
const updatedPackageJson = JSON.parse(readFile('proj/package.json'));
|
|
expect(updatedPackageJson.description).toEqual('some description');
|
|
expect(updatedPackageJson.dependencies['@ngrx/store']).toEqual('4.0.3');
|
|
expect(updatedPackageJson.devDependencies['@ngrx/router-store']).toEqual('4.0.3');
|
|
expect(updatedPackageJson.devDependencies['@nrwl/schematics']).toBeDefined();
|
|
expect(updatedPackageJson.dependencies['@nrwl/nx']).toBeDefined();
|
|
|
|
// check if angular-cli.json get merged
|
|
const updatedAngularCLIJson = JSON.parse(readFile('proj/.angular-cli.json'));
|
|
expect(updatedAngularCLIJson.apps[0].root).toEqual('apps/proj/src');
|
|
expect(updatedAngularCLIJson.apps[0].outDir).toEqual('dist/apps/proj');
|
|
expect(updatedAngularCLIJson.apps[0].test).toEqual('../../../test.js');
|
|
expect(updatedAngularCLIJson.apps[0].tsconfig).toEqual('../../../tsconfig.app.json');
|
|
expect(updatedAngularCLIJson.apps[0].testTsconfig).toEqual('../../../tsconfig.spec.json');
|
|
|
|
// check if tsconfig.json get merged
|
|
const updatedTsConfig = JSON.parse(readFile('proj/tsconfig.json'));
|
|
expect(updatedTsConfig.compilerOptions.paths).toEqual({
|
|
"a": ["b"],
|
|
"*": [
|
|
"*",
|
|
"libs/*",
|
|
"apps/*"
|
|
]
|
|
});
|
|
});
|
|
|
|
it('should build and test', () => {
|
|
newApp('new proj');
|
|
runSchematic('@nrwl/schematics:convert-to-workspace', { projectName: 'proj' });
|
|
|
|
expect(runCLI('build', { projectName: 'proj' })).toContain('{main} main.bundle.js');
|
|
expect(runCLI('test --single-run', { projectName: 'proj' })).toContain('Executed 3 of 3 SUCCESS');
|
|
});
|
|
});
|
|
|