nx/e2e/nx-init/src/nx-init-monorepo.test.ts
2023-04-19 18:32:51 +01:00

56 lines
1.4 KiB
TypeScript

import {
createNonNxProjectDirectory,
getPackageManagerCommand,
getPublishedVersion,
getSelectedPackageManager,
runCLI,
runCommand,
updateFile,
} from '@nrwl/e2e/utils';
describe('nx init (Monorepo)', () => {
const pmc = getPackageManagerCommand({
packageManager: getSelectedPackageManager(),
});
it('should convert to an Nx workspace', () => {
createNonNxProjectDirectory();
runCommand(pmc.install);
updateFile(
'packages/package-a/package.json',
JSON.stringify({
name: 'package-a',
scripts: {
serve: 'some serve',
build: 'echo "build successful"',
test: 'some test',
},
})
);
updateFile(
'packages/package-b/package.json',
JSON.stringify({
name: 'package-b',
scripts: {
lint: 'some lint',
},
})
);
const output = runCommand(
`${
pmc.runUninstalledPackage
} nx@${getPublishedVersion()} init --cacheable=build --no-interactive`
);
expect(output).toContain('🎉 Done!');
// check build
const buildOutput = runCLI('build package-a');
expect(buildOutput).toContain('build successful');
// run build again for cache
const cachedBuildOutput = runCLI('build package-a');
expect(cachedBuildOutput).toContain('build successful');
expect(cachedBuildOutput).toContain('Nx read the output from the cache');
});
});