feat(testing): added test for ts options required by nest

This commit is contained in:
da-mkay 2019-11-18 17:19:21 +01:00 committed by Victor Savkin
parent 6a14b6661f
commit 18d0798b13

View File

@ -2,6 +2,7 @@ import { execSync, fork, spawn } from 'child_process';
import * as http from 'http';
import * as path from 'path';
import * as treeKill from 'tree-kill';
import * as ts from 'typescript';
import {
ensureProject,
exists,
@ -13,7 +14,11 @@ import {
forEachCli,
checkFilesExist,
tmpProjPath,
workspaceConfigName
workspaceConfigName,
cleanup,
runNew,
runNgAdd,
copyMissingPackages
} from './utils';
function getData(): Promise<any> {
@ -125,6 +130,35 @@ forEachCli(currentCLIName => {
});
}, 30000);
fit('should have correct ts options for nest application', async () => {
if (currentCLIName === 'angular') {
// Usually the tests use ensureProject() to setup the test workspace. But it will trigger
// the nx workspace schematic which creates a tsconfig file containing the parameters
// required by nest.
// However, when creating an Angular workspace and adding the workspace capability (as
// described in the docs) the tsconfig file could miss required options if Angular removes
// them from their config files as happened with emitDecoratorMetadata.
cleanup();
runNew('', false, false);
runNgAdd('add @nrwl/workspace --npmScope projscope --skip-install');
copyMissingPackages();
} else {
ensureProject();
}
const nestapp = uniq('nestapp');
runCLI(`generate @nrwl/nest:app ${nestapp} --linter=${linter}`);
const configPath = tmpProjPath(`apps/${nestapp}/tsconfig.app.json`);
const json = ts.readConfigFile(configPath, ts.sys.readFile);
const config = ts.parseJsonConfigFileContent(
json.config,
ts.sys,
path.dirname(configPath)
); // respects "extends" inside tsconfigs
expect(config.options.emitDecoratorMetadata).toEqual(true); // required by nest to function properly
}, 30000);
it('should be able to generate a nest application', async done => {
ensureProject();
const nestapp = uniq('nestapp');