nx/e2e/next-core/src/next-lock-file.test.ts

44 lines
1.1 KiB
TypeScript

import { detectPackageManager, joinPathFragments } from '@nx/devkit';
import {
checkFilesExist,
cleanupProject,
getPackageManagerCommand,
newProject,
packageManagerLockFile,
runCLI,
runCommand,
tmpProjPath,
uniq,
} from '@nx/e2e/utils';
describe('Next.js Lock File', () => {
let proj: string;
let originalEnv: string;
let packageManager;
beforeEach(() => {
proj = newProject();
packageManager = detectPackageManager(tmpProjPath());
originalEnv = process.env.NODE_ENV;
});
afterEach(() => {
process.env.NODE_ENV = originalEnv;
cleanupProject();
});
it('should build and install pruned lock file', () => {
const appName = uniq('app');
runCLI(`generate @nx/next:app ${appName} --no-interactive --style=css`);
const result = runCLI(`build ${appName} --generateLockfile=true`);
expect(result).not.toMatch(/Graph is not consistent/);
checkFilesExist(
`dist/apps/${appName}/${packageManagerLockFile[packageManager]}`
);
runCommand(`${getPackageManagerCommand().ciInstall}`, {
cwd: joinPathFragments(tmpProjPath(), 'dist/apps', appName),
});
}, 1_000_000);
});