89 lines
3.0 KiB
TypeScript
89 lines
3.0 KiB
TypeScript
import {
|
|
ensureProject,
|
|
runCLI,
|
|
uniq,
|
|
newApp,
|
|
newLib,
|
|
updateFile,
|
|
readFile,
|
|
runCLIAsync,
|
|
checkFilesExist
|
|
} from '../utils';
|
|
|
|
describe('Web Applications', () => {
|
|
it('should be able to generate a react application', async () => {
|
|
ensureProject();
|
|
const appName = uniq('app');
|
|
const libName = uniq('lib');
|
|
|
|
newApp(`${appName} --framework react`);
|
|
newLib(`${libName} --framework none`);
|
|
|
|
const mainPath = `apps/${appName}/src/main.tsx`;
|
|
updateFile(mainPath, `import '@proj/${libName}';\n` + readFile(mainPath));
|
|
|
|
const lintResults = runCLI(`lint ${appName}`);
|
|
expect(lintResults).toContain('All files pass linting.');
|
|
runCLI(`build ${appName}`);
|
|
checkFilesExist(
|
|
`dist/apps/${appName}/index.html`,
|
|
`dist/apps/${appName}/polyfills.js`,
|
|
`dist/apps/${appName}/runtime.js`,
|
|
`dist/apps/${appName}/vendor.js`,
|
|
`dist/apps/${appName}/main.js`,
|
|
`dist/apps/${appName}/styles.js`
|
|
);
|
|
runCLI(`build ${appName} --prod --output-hashing none`);
|
|
checkFilesExist(
|
|
`dist/apps/${appName}/index.html`,
|
|
`dist/apps/${appName}/polyfills.js`,
|
|
`dist/apps/${appName}/runtime.js`,
|
|
`dist/apps/${appName}/main.js`,
|
|
`dist/apps/${appName}/styles.css`
|
|
);
|
|
const testResults = await runCLIAsync(`test ${appName}`);
|
|
expect(testResults.stderr).toContain('Test Suites: 1 passed, 1 total');
|
|
const lintE2eResults = runCLI(`lint ${appName}-e2e`);
|
|
expect(lintE2eResults).toContain('All files pass linting.');
|
|
const e2eResults = runCLI(`e2e ${appName}-e2e`);
|
|
expect(e2eResults).toContain('All specs passed!');
|
|
}, 30000);
|
|
|
|
it('should be able to generate a web-components application', async () => {
|
|
ensureProject();
|
|
const appName = uniq('app');
|
|
const libName = uniq('lib');
|
|
|
|
newApp(`${appName} --framework web-components`);
|
|
newLib(`${libName} --framework none`);
|
|
|
|
const mainPath = `apps/${appName}/src/main.ts`;
|
|
updateFile(mainPath, `import '@proj/${libName}';\n` + readFile(mainPath));
|
|
|
|
const lintResults = runCLI(`lint ${appName}`);
|
|
expect(lintResults).toContain('All files pass linting.');
|
|
runCLI(`build ${appName}`);
|
|
checkFilesExist(
|
|
`dist/apps/${appName}/index.html`,
|
|
`dist/apps/${appName}/polyfills.js`,
|
|
`dist/apps/${appName}/runtime.js`,
|
|
`dist/apps/${appName}/main.js`,
|
|
`dist/apps/${appName}/styles.js`
|
|
);
|
|
runCLI(`build ${appName} --prod --output-hashing none`);
|
|
checkFilesExist(
|
|
`dist/apps/${appName}/index.html`,
|
|
`dist/apps/${appName}/polyfills.js`,
|
|
`dist/apps/${appName}/runtime.js`,
|
|
`dist/apps/${appName}/main.js`,
|
|
`dist/apps/${appName}/styles.css`
|
|
);
|
|
const testResults = await runCLIAsync(`test ${appName}`);
|
|
expect(testResults.stderr).toContain('Test Suites: 1 passed, 1 total');
|
|
const lintE2eResults = runCLI(`lint ${appName}-e2e`);
|
|
expect(lintE2eResults).toContain('All files pass linting.');
|
|
const e2eResults = runCLI(`e2e ${appName}-e2e`);
|
|
expect(e2eResults).toContain('All specs passed!');
|
|
}, 30000);
|
|
});
|