59 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| /**
 | |
|  * @license
 | |
|  * Copyright Google Inc. 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.io/license
 | |
|  */
 | |
| import {SchematicTestRunner, UnitTestTree} from '@angular-devkit/schematics/testing';
 | |
| import * as path from 'path';
 | |
| import {Observable} from 'rxjs';
 | |
| import {concatMap} from 'rxjs/operators';
 | |
| 
 | |
| import {Schema as ElementsOptions} from './schema';
 | |
| 
 | |
| 
 | |
| const polyfillPath = 'node_modules/document-register-element/build/document-register-element.js';
 | |
| 
 | |
| // tslint:disable:max-line-length
 | |
| describe('Elements Schematics', () => {
 | |
|   const schematicRunner = new SchematicTestRunner(
 | |
|       '@angular/elements', path.join(__dirname, '../test-collection.json'), );
 | |
|   const defaultOptions: ElementsOptions = {project: 'bar', skipPackageJson: false};
 | |
| 
 | |
|   let appTree: UnitTestTree;
 | |
| 
 | |
|   // tslint:disable-next-line:no-any
 | |
|   const workspaceOptions: any = {
 | |
|     name: 'workspace',
 | |
|     newProjectRoot: 'projects',
 | |
|     version: '6.0.0',
 | |
|   };
 | |
| 
 | |
|   // tslint:disable-next-line:no-any
 | |
|   const appOptions: any = {
 | |
|     name: 'elements',
 | |
|     inlineStyle: false,
 | |
|     inlineTemplate: false,
 | |
|     routing: false,
 | |
|     style: 'css',
 | |
|     skipTests: false,
 | |
|   };
 | |
| 
 | |
|   beforeEach((done) => {
 | |
|     schematicRunner.runExternalSchematicAsync('@schematics/angular', 'workspace', workspaceOptions)
 | |
|         .pipe(concatMap(
 | |
|             (tree) => schematicRunner.runExternalSchematicAsync(
 | |
|                 '@schematics/angular', 'application', appOptions, tree)))
 | |
|         .subscribe((tree: UnitTestTree) => appTree = tree, done.fail, done);
 | |
|   });
 | |
| 
 | |
|   it('should run the ng-add schematic', () => {
 | |
|     const tree = schematicRunner.runSchematic('ng-add', defaultOptions, appTree);
 | |
|     const configText = tree.readContent('/angular.json');
 | |
|     const config = JSON.parse(configText);
 | |
|     const scripts = config.projects.elements.architect.build.options.scripts;
 | |
|     expect(scripts[0].input).toEqual(polyfillPath);
 | |
|   });
 | |
| });
 |