Skip to content

Instantly share code, notes, and snippets.

Jonathan Campos jonbcampos

Block or report user

Report or block jonbcampos

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View schematics_simple-schematic_src_simple-schematic_index_spec.ts
import { Tree } from '@angular-devkit/schematics';
import { SchematicTestRunner } from '@angular-devkit/schematics/testing';
import * as path from 'path';
const collectionPath = path.join(__dirname, '../collection.json');
describe('simple-schematic', () => {
it('works', () => {
const runner = new SchematicTestRunner('schematics', collectionPath);
const tree = runner.runSchematic('simple-schematic', {}, Tree.empty());
View schematics_simple-schematic_src_simple-schematic_index_spec_p1.ts
const angularCollectionPath = require.resolve(
'../../node_modules/@schematics/angular/collection.json'
);
View schematics_simple-schematic_src_simple-schematic_index_spec_p3.ts
import {Schema as WorkspaceOptions} from '@schematics/angular/workspace/schema';
import {Schema as ApplicationOptions} from '@schematics/angular/application/schema';
...
const workspaceOptions: WorkspaceOptions = {
name: 'workspace',
newProjectRoot: 'projects',
version: '6.0.0',
};
View schematics_simple-schematic_src_simple-schematic_index_spec_p4.ts
let appTree: UnitTestTree;
beforeEach(() => {
appTree = testRunner.runExternalSchematic(
'@schematics/angular', 'workspace', workspaceOptions);
appTree = testRunner.runExternalSchematic(
'@schematics/angular', 'application', appOptions, appTree);
});
View schematics_simple-schematic_src_simple-schematic_index_spec_p5.ts
it('fails with missing tree', () => {
expect(() => testRunner.runSchematic(
'simple-schematic',
{name: "test"},
Tree.empty())).toThrow();
});
View schematics_simple-schematic_src_simple-schematic_index_spec_p6.ts
it('fails with missing params', () => {
expect(() => testRunner.runSchematic(
'simple-schematic',
{},
appTree)).toThrowError(InvalidInputOptions,
'Schematic input does not validate against the Schema: {"spec":true,"flat":false}\n'+
'Errors:\n\n'+
' Data path "" should have required property \'name\'.');
});
View schematics_simple-schematic_src_simple-schematic_index_spec_p7.ts
it('works', () => {
const tree = testRunner.runSchematic('simple-schematic', {
name: "test"
}, appTree);
//[see assertions below]
});
View schematics_simple-schematic_src_simple-schematic_index_spec_p8.ts
expect(tree.files).toEqual([
"/README.md",
"/angular.json",
"/package.json",
"/tsconfig.json",
"/tslint.json",
"/.editorconfig",
"/.gitignore",
...
"/projects/bar/src/app/test/test.spec.ts",
View schematics_simple-schematic_src_simple-schematic_index_spec_p9.ts
expect(tree.files).toContain("/projects/bar/src/app/test/test.spec.ts");
expect(tree.files).toContain("/projects/bar/src/app/test/test.ts");
You can’t perform that action at this time.