/** * Testing file for internal schematics */ import { SchematicTestRunner } from '@angular-devkit/schematics/testing'; import { join } from 'path'; import { Tree } from '@angular-devkit/schematics'; import { TestingArchitectHost } from '@angular-devkit/architect/testing'; import { schema } from '@angular-devkit/core'; import { Architect } from '@angular-devkit/architect'; import { MockBuilderContext } from '@nrwl/workspace/testing'; const testRunner = new SchematicTestRunner( '@nrwl/nx-plugin', join(__dirname, '../../collection.json') ); export function runSchematic(schematicName: string, options: T, tree: Tree) { return testRunner.runSchematicAsync(schematicName, options, tree).toPromise(); } export async function getTestArchitect() { const architectHost = new TestingArchitectHost('/root', '/root'); const registry = new schema.CoreSchemaRegistry(); registry.addPostTransform(schema.transforms.addUndefinedDefaults); const architect = new Architect(architectHost, registry); await architectHost.addBuilderFromPackage(join(__dirname, '../..')); return [architect, architectHost] as [Architect, TestingArchitectHost]; } export async function getMockContext() { const [architect, architectHost] = await getTestArchitect(); const context = new MockBuilderContext(architect, architectHost); await context.addBuilderFromPackage(join(__dirname, '../..')); return context; }