UNPKG

@nrwl/workspace

Version:

The Workspace plugin contains executors and generators that are useful for any Nx workspace. It should be present in every Nx workspace and other plugins build on it.

140 lines 4.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MockBuilderContext = exports.createEmptyWorkspace = exports.getFileContent = void 0; const tslib_1 = require("tslib"); const core_1 = require("@angular-devkit/core/src/workspace/core"); function getFileContent(tree, path) { const fileEntry = tree.get(path); if (!fileEntry) { throw new Error(`The file (${path}) does not exist.`); } return fileEntry.content.toString(); } exports.getFileContent = getFileContent; function createEmptyWorkspace(tree) { (0, core_1._test_addWorkspaceFile)('workspace.json', core_1.WorkspaceFormat.JSON); tree.create('/workspace.json', JSON.stringify({ version: 1, projects: {}, newProjectRoot: '' })); tree.create('/package.json', JSON.stringify({ name: 'test-name', dependencies: {}, devDependencies: {}, })); tree.create('/nx.json', JSON.stringify({ npmScope: 'proj', projects: {}, affected: { defaultBase: 'main', }, tasksRunnerOptions: { default: { runner: 'nx/tasks-runners/default', options: { cacheableOperations: ['build', 'lint', 'test', 'e2e'], }, }, }, })); tree.create('/tsconfig.base.json', JSON.stringify({ compilerOptions: { paths: {} } })); tree.create('/tslint.json', JSON.stringify({ rules: { 'nx-enforce-module-boundaries': [ true, { npmScope: '<%= npmScope %>', lazyLoad: [], allow: [], }, ], }, })); return tree; } exports.createEmptyWorkspace = createEmptyWorkspace; class NoopLogger { constructor() { this._log = ''; } createChild(name) { return new NoopLogger(); } includes(substr) { return this._log.includes(substr); } debug(message, metadata) { this._log += message; } error(message, metadata) { this._log += message; } fatal(message, metadata) { this._log += message; } info(message, metadata) { this._log += message; } log(level, message, metadata) { this._log += message; } warn(message, metadata) { this._log += message; } } /** * Mock context which makes testing builders easier */ class MockBuilderContext { get currentDirectory() { return this.architectHost.currentDirectory; } get workspaceRoot() { return this.architectHost.workspaceRoot; } constructor(architect, architectHost) { this.architect = architect; this.architectHost = architectHost; this.builder = {}; this.analytics = null; this.target = { project: null, target: null, }; this.logger = new NoopLogger(); } addBuilderFromPackage(path) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return yield this.architectHost.addBuilderFromPackage(path); }); } addTarget(target, builderName) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return this.architectHost.addTarget(target, builderName); }); } getBuilderNameForTarget(target) { return this.architectHost.getBuilderNameForTarget(target); } scheduleTarget(target, overrides, scheduleOptions) { return this.architect.scheduleTarget(target, overrides, scheduleOptions); } scheduleBuilder(name, overrides, scheduleOptions) { return this.architect.scheduleBuilder(name, overrides, scheduleOptions); } getTargetOptions(target) { return this.architectHost.getOptionsForTarget(target); } validateOptions(options, builderName) { return Promise.resolve(options); } reportRunning() { } reportStatus(status) { } reportProgress(current, total, status) { } addTeardown(teardown) { } getProjectMetadata(target) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return (this.architectHost && this.architectHost.getProjectMetadata(target)); }); } } exports.MockBuilderContext = MockBuilderContext; //# sourceMappingURL=testing-utils.js.map