@nx/angular
Version:
36 lines (35 loc) • 1.64 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.addJest = addJest;
const devkit_1 = require("@nx/devkit");
const versions_1 = require("../../utils/versions");
const version_utils_1 = require("./version-utils");
async function addJest(tree, options) {
if (!options.skipPackageJson) {
process.env.npm_config_legacy_peer_deps ??= 'true';
const pkgVersions = (0, version_utils_1.versions)(tree);
(0, devkit_1.addDependenciesToPackageJson)(tree, {
// TODO(leo): jest-preset-angular still needs this until https://github.com/thymikee/jest-preset-angular/pull/3079 is merged
'@angular/platform-browser-dynamic': pkgVersions.angularVersion,
}, { 'jest-preset-angular': pkgVersions.jestPresetAngularVersion }, undefined, true);
}
const { configurationGenerator } = (0, devkit_1.ensurePackage)('@nx/jest', versions_1.nxVersion);
await configurationGenerator(tree, {
project: options.name,
setupFile: 'angular',
supportTsx: false,
skipSerializers: false,
skipPackageJson: options.skipPackageJson,
skipFormat: true,
addPlugin: options.addPlugin ?? false,
addExplicitTargets: !options.addPlugin,
});
const setupFile = (0, devkit_1.joinPathFragments)(options.projectRoot, 'src', 'test-setup.ts');
if (options.strict && tree.exists(setupFile)) {
const contents = tree.read(setupFile, 'utf-8');
tree.write(setupFile, contents.replace('setupZoneTestEnv();', `setupZoneTestEnv({
errorOnUnknownElements: true,
errorOnUnknownProperties: true
});`));
}
}