41 lines
1.4 KiB
TypeScript
41 lines
1.4 KiB
TypeScript
/**
|
|
* 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<T>(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;
|
|
}
|