59 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			59 lines
		
	
	
		
			1.5 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 * as path from 'path';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import {readConfiguration} from '../src/perform_compile';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import {TestSupport, setup} from './test_support';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								describe('perform_compile', () => {
							 | 
						||
| 
								 | 
							
								  let support: TestSupport;
							 | 
						||
| 
								 | 
							
								  let basePath: string;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  beforeEach(() => {
							 | 
						||
| 
								 | 
							
								    support = setup();
							 | 
						||
| 
								 | 
							
								    basePath = support.basePath;
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  function writeSomeConfigs() {
							 | 
						||
| 
								 | 
							
								    support.writeFiles({
							 | 
						||
| 
								 | 
							
								      'tsconfig-level-1.json': `{
							 | 
						||
| 
								 | 
							
								          "extends": "./tsconfig-level-2.json",
							 | 
						||
| 
								 | 
							
								          "angularCompilerOptions": {
							 | 
						||
| 
								 | 
							
								            "annotateForClosureCompiler": true
							 | 
						||
| 
								 | 
							
								          }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								      `,
							 | 
						||
| 
								 | 
							
								      'tsconfig-level-2.json': `{
							 | 
						||
| 
								 | 
							
								          "extends": "./tsconfig-level-3.json",
							 | 
						||
| 
								 | 
							
								          "angularCompilerOptions": {
							 | 
						||
| 
								 | 
							
								            "skipMetadataEmit": true
							 | 
						||
| 
								 | 
							
								          }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								      `,
							 | 
						||
| 
								 | 
							
								      'tsconfig-level-3.json': `{
							 | 
						||
| 
								 | 
							
								          "angularCompilerOptions": {
							 | 
						||
| 
								 | 
							
								            "annotateForClosureCompiler": false,
							 | 
						||
| 
								 | 
							
								            "annotationsAs": "decorators"
							 | 
						||
| 
								 | 
							
								          }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								      `,
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  it('should merge tsconfig "angularCompilerOptions"', () => {
							 | 
						||
| 
								 | 
							
								    writeSomeConfigs();
							 | 
						||
| 
								 | 
							
								    const {options} = readConfiguration(path.resolve(basePath, 'tsconfig-level-1.json'));
							 | 
						||
| 
								 | 
							
								    expect(options.annotateForClosureCompiler).toBe(true);
							 | 
						||
| 
								 | 
							
								    expect(options.annotationsAs).toBe('decorators');
							 | 
						||
| 
								 | 
							
								    expect(options.skipMetadataEmit).toBe(true);
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								});
							 |