39 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			39 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 fs from 'fs';
							 | 
						||
| 
								 | 
							
								import * as path from 'path';
							 | 
						||
| 
								 | 
							
								import * as ts from 'typescript';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import {Symbol, SymbolExtractor} from './symbol_extractor';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								describe('scenarios', () => {
							 | 
						||
| 
								 | 
							
								  const symbolExtractorSpecDir = path.dirname(
							 | 
						||
| 
								 | 
							
								      require.resolve('angular/tools/symbol-extractor/symbol_extractor_spec/empty.json'));
							 | 
						||
| 
								 | 
							
								  const scenarioFiles = fs.readdirSync(symbolExtractorSpecDir);
							 | 
						||
| 
								 | 
							
								  for (let i = 0; i < scenarioFiles.length; i = i + 2) {
							 | 
						||
| 
								 | 
							
								    let jsFile = scenarioFiles[i];
							 | 
						||
| 
								 | 
							
								    let jsonFile = scenarioFiles[i + 1];
							 | 
						||
| 
								 | 
							
								    let testName = jsFile.substring(0, jsFile.lastIndexOf('.'));
							 | 
						||
| 
								 | 
							
								    if (!jsFile.endsWith('.js')) throw new Error('Expected: .js file found: ' + jsFile);
							 | 
						||
| 
								 | 
							
								    if (!jsonFile.endsWith('.json')) throw new Error('Expected: .json file found: ' + jsonFile);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // Left here so that it is easy to debug single test.
							 | 
						||
| 
								 | 
							
								    // if (testName !== 'hello_world_min_debug') continue;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    it(testName, () => {
							 | 
						||
| 
								 | 
							
								      const jsFileContent = fs.readFileSync(path.join(symbolExtractorSpecDir, jsFile)).toString();
							 | 
						||
| 
								 | 
							
								      const jsonFileContent =
							 | 
						||
| 
								 | 
							
								          fs.readFileSync(path.join(symbolExtractorSpecDir, jsonFile)).toString();
							 | 
						||
| 
								 | 
							
								      const symbols = SymbolExtractor.parse(testName, jsFileContent);
							 | 
						||
| 
								 | 
							
								      const diff = SymbolExtractor.diff(symbols, jsonFileContent);
							 | 
						||
| 
								 | 
							
								      expect(diff).toEqual({});
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								});
							 |