73 lines
2.2 KiB
TypeScript
73 lines
2.2 KiB
TypeScript
import {
|
|
checkFilesDoNotExist,
|
|
checkFilesExist,
|
|
cleanupProject,
|
|
createFile,
|
|
isNotWindows,
|
|
killPorts,
|
|
newProject,
|
|
runCLI,
|
|
runCLIAsync,
|
|
runE2ETests,
|
|
setMaxWorkers,
|
|
uniq,
|
|
} from '@nx/e2e/utils';
|
|
import { join } from 'path';
|
|
|
|
describe('Web Components Applications with bundler set as vite', () => {
|
|
beforeEach(() => newProject());
|
|
afterEach(() => cleanupProject());
|
|
|
|
it('should be able to generate a web app', async () => {
|
|
const appName = uniq('app');
|
|
runCLI(`generate @nx/web:app ${appName} --bundler=vite --no-interactive`);
|
|
setMaxWorkers(join('apps', appName, 'project.json'));
|
|
|
|
const lintResults = runCLI(`lint ${appName}`);
|
|
expect(lintResults).toContain('All files pass linting.');
|
|
|
|
runCLI(`build ${appName}`);
|
|
checkFilesExist(`dist/apps/${appName}/index.html`);
|
|
|
|
const testResults = await runCLIAsync(`test ${appName}`);
|
|
|
|
expect(testResults.combinedOutput).toContain('Tests 2 passed (2)');
|
|
|
|
const lintE2eResults = runCLI(`lint ${appName}-e2e`);
|
|
|
|
expect(lintE2eResults).toContain('All files pass linting.');
|
|
|
|
if (isNotWindows() && runE2ETests()) {
|
|
const e2eResults = runCLI(`e2e ${appName}-e2e --no-watch`);
|
|
expect(e2eResults).toContain('All specs passed!');
|
|
expect(await killPorts()).toBeTruthy();
|
|
}
|
|
}, 500000);
|
|
|
|
it('should remove previous output before building', async () => {
|
|
const appName = uniq('app');
|
|
const libName = uniq('lib');
|
|
|
|
runCLI(`generate @nx/web:app ${appName} --bundler=vite --no-interactive`);
|
|
runCLI(
|
|
`generate @nx/react:lib ${libName} --bundler=vite --no-interactive --unitTestRunner=vitest`
|
|
);
|
|
setMaxWorkers(join('apps', appName, 'project.json'));
|
|
|
|
createFile(`dist/apps/${appName}/_should_remove.txt`);
|
|
createFile(`dist/libs/${libName}/_should_remove.txt`);
|
|
createFile(`dist/apps/_should_not_remove.txt`);
|
|
checkFilesExist(
|
|
`dist/apps/${appName}/_should_remove.txt`,
|
|
`dist/apps/_should_not_remove.txt`
|
|
);
|
|
runCLI(`build ${appName} --emptyOutDir`);
|
|
runCLI(`build ${libName} --emptyOutDir`);
|
|
checkFilesDoNotExist(
|
|
`dist/apps/${appName}/_should_remove.txt`,
|
|
`dist/libs/${libName}/_should_remove.txt`
|
|
);
|
|
checkFilesExist(`dist/apps/_should_not_remove.txt`);
|
|
}, 120000);
|
|
});
|