@testing-library/angular
Version:
Test your Angular components with the dom-testing-library
38 lines (37 loc) • 1.84 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = default_1;
exports.installDependencies = installDependencies;
const schematics_1 = require("@angular-devkit/schematics");
const dependencies_1 = require("@schematics/angular/utility/dependencies");
const tasks_1 = require("@angular-devkit/schematics/tasks");
function default_1({ installJestDom, installUserEvent }) {
return () => {
return (0, schematics_1.chain)([
addDependency('@testing-library/dom', '^10.0.0', dependencies_1.NodeDependencyType.Dev),
installJestDom ? addDependency('@testing-library/jest-dom', '^6.4.8', dependencies_1.NodeDependencyType.Dev) : (0, schematics_1.noop)(),
installUserEvent ? addDependency('@testing-library/user-event', '^14.5.2', dependencies_1.NodeDependencyType.Dev) : (0, schematics_1.noop)(),
installDependencies(),
]);
};
}
function addDependency(packageName, version, dependencyType) {
return (tree, context) => {
const dtlDep = (0, dependencies_1.getPackageJsonDependency)(tree, packageName);
if (dtlDep) {
context.logger.info(`Skipping installation of '${packageName}' because it's already installed.`);
}
else {
context.logger.info(`Adding '${packageName}' as a dev dependency.`);
(0, dependencies_1.addPackageJsonDependency)(tree, { name: packageName, type: dependencyType, overwrite: false, version });
}
return tree;
};
}
function installDependencies() {
return (_tree, context) => {
context.addTask(new tasks_1.NodePackageInstallTask());
context.logger.info(`Correctly installed @testing-library/angular.
See our docs at https://testing-library.com/docs/angular-testing-library/intro/ to get started.`);
};
}
;