66 lines
1.7 KiB
TypeScript
66 lines
1.7 KiB
TypeScript
import {
|
|
e2eCwd,
|
|
exists,
|
|
getPackageManagerCommand,
|
|
getPublishedVersion,
|
|
runCLI,
|
|
} from '@nrwl/e2e/utils';
|
|
import { execSync } from 'child_process';
|
|
import { removeSync } from 'fs-extra';
|
|
|
|
describe('nx init (for NestCLI)', () => {
|
|
const pmc = getPackageManagerCommand({
|
|
packageManager: 'npm',
|
|
});
|
|
const projectName = 'nest-app';
|
|
const projectRoot = `${e2eCwd}/${projectName}`;
|
|
const cliOptions = { cwd: projectRoot };
|
|
|
|
afterEach(() => {
|
|
removeSync(projectRoot);
|
|
});
|
|
|
|
it('should convert NestCLI application to Nx standalone', () => {
|
|
execSync(
|
|
`${pmc.runUninstalledPackage} @nestjs/cli new ${projectName} --package-manager=npm`,
|
|
{
|
|
cwd: e2eCwd,
|
|
encoding: 'utf-8',
|
|
env: process.env,
|
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
}
|
|
);
|
|
|
|
const output = execSync(
|
|
`${
|
|
pmc.runUninstalledPackage
|
|
} nx@${getPublishedVersion()} init -y --cacheable=format`,
|
|
{
|
|
cwd: projectRoot,
|
|
encoding: 'utf-8',
|
|
env: process.env,
|
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
}
|
|
);
|
|
|
|
expect(output).toContain('Enabled computation caching');
|
|
|
|
// nest-cli.json is removed
|
|
expect(exists(`${projectRoot}/nest-cli.json`)).toBeFalsy();
|
|
|
|
// root nx.json exists
|
|
expect(exists(`${projectRoot}/nx.json`)).toBeTruthy();
|
|
// root project.json exists
|
|
expect(exists(`${projectRoot}/project.json`)).toBeTruthy();
|
|
|
|
runCLI('build', cliOptions);
|
|
expect(
|
|
exists(`${projectRoot}/dist/${projectName}/src/main.js`)
|
|
).toBeTruthy();
|
|
|
|
// run build again for cache
|
|
const buildOutput = runCLI('build', cliOptions);
|
|
expect(buildOutput).toContain('Nx read the output from the cache');
|
|
}, 10000);
|
|
});
|