12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- "use strict";
- /**
- * @license
- * Copyright Google LLC All Rights Reserved.
- *
- * Use of this source code is governed by an MIT-style license that can be
- * found in the LICENSE file at https://angular.dev/license
- */
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.SchematicTestRunner = exports.UnitTestTree = void 0;
- const core_1 = require("@angular-devkit/core");
- const rxjs_1 = require("rxjs");
- const src_1 = require("../src");
- const call_1 = require("../src/rules/call");
- const node_1 = require("../tasks/node");
- const tools_1 = require("../tools");
- class UnitTestTree extends src_1.DelegateTree {
- get files() {
- const result = [];
- this.visit((path) => result.push(path));
- return result;
- }
- readContent(path) {
- const buffer = this.read(path);
- if (buffer === null) {
- return '';
- }
- return buffer.toString();
- }
- }
- exports.UnitTestTree = UnitTestTree;
- class SchematicTestRunner {
- _collectionName;
- _engineHost = new tools_1.NodeModulesTestEngineHost();
- _engine = new src_1.SchematicEngine(this._engineHost);
- _collection;
- _logger;
- constructor(_collectionName, collectionPath) {
- this._collectionName = _collectionName;
- this._engineHost.registerCollection(_collectionName, collectionPath);
- this._logger = new core_1.logging.Logger('test');
- const registry = new core_1.schema.CoreSchemaRegistry(src_1.formats.standardFormats);
- registry.addPostTransform(core_1.schema.transforms.addUndefinedDefaults);
- this._engineHost.registerOptionsTransform((0, tools_1.validateOptionsWithSchema)(registry));
- this._engineHost.registerTaskExecutor(node_1.BuiltinTaskExecutor.NodePackage);
- this._engineHost.registerTaskExecutor(node_1.BuiltinTaskExecutor.RepositoryInitializer);
- this._engineHost.registerTaskExecutor(node_1.BuiltinTaskExecutor.RunSchematic);
- this._collection = this._engine.createCollection(this._collectionName);
- }
- get engine() {
- return this._engine;
- }
- get logger() {
- return this._logger;
- }
- get tasks() {
- return [...this._engineHost.tasks];
- }
- registerCollection(collectionName, collectionPath) {
- this._engineHost.registerCollection(collectionName, collectionPath);
- }
- async runSchematic(schematicName, opts, tree) {
- const schematic = this._collection.createSchematic(schematicName, true);
- const host = (0, rxjs_1.of)(tree || new src_1.HostTree());
- this._engineHost.clearTasks();
- const newTree = await (0, rxjs_1.lastValueFrom)(schematic.call(opts || {}, host, { logger: this._logger }));
- return new UnitTestTree(newTree);
- }
- async runExternalSchematic(collectionName, schematicName, opts, tree) {
- const externalCollection = this._engine.createCollection(collectionName);
- const schematic = externalCollection.createSchematic(schematicName, true);
- const host = (0, rxjs_1.of)(tree || new src_1.HostTree());
- this._engineHost.clearTasks();
- const newTree = await (0, rxjs_1.lastValueFrom)(schematic.call(opts || {}, host, { logger: this._logger }));
- return new UnitTestTree(newTree);
- }
- callRule(rule, tree, parentContext) {
- const context = this._engine.createContext({}, parentContext);
- return (0, call_1.callRule)(rule, (0, rxjs_1.of)(tree), context);
- }
- }
- exports.SchematicTestRunner = SchematicTestRunner;
|