44 lines
1.1 KiB
TypeScript
44 lines
1.1 KiB
TypeScript
import { JestProjectSchema } from '../schema';
|
|
import {
|
|
readProjectConfiguration,
|
|
Tree,
|
|
updateProjectConfiguration,
|
|
joinPathFragments,
|
|
normalizePath,
|
|
} from '@nrwl/devkit';
|
|
|
|
export function updateWorkspace(tree: Tree, options: JestProjectSchema) {
|
|
const projectConfig = readProjectConfiguration(tree, options.project);
|
|
projectConfig.targets.test = {
|
|
executor: '@nrwl/jest:jest',
|
|
outputs: [
|
|
joinPathFragments(
|
|
normalizePath('coverage'),
|
|
normalizePath(projectConfig.root)
|
|
),
|
|
],
|
|
options: {
|
|
jestConfig: joinPathFragments(
|
|
normalizePath(projectConfig.root),
|
|
'jest.config.js'
|
|
),
|
|
passWithNoTests: true,
|
|
},
|
|
};
|
|
|
|
const isUsingTSLint =
|
|
projectConfig.targets.lint?.executor ===
|
|
'@angular-devkit/build-angular:tslint';
|
|
|
|
if (isUsingTSLint) {
|
|
projectConfig.targets.lint.options.tsConfig = [
|
|
...(projectConfig.targets.lint.options.tsConfig || []),
|
|
joinPathFragments(
|
|
normalizePath(projectConfig.root),
|
|
'tsconfig.spec.json'
|
|
),
|
|
];
|
|
}
|
|
updateProjectConfiguration(tree, options.project, projectConfig);
|
|
}
|