The 2.6 version of TypeScript's `resolveModuleName` started to require paths passed to be separated by '/' instead of being able to handle '\'. `ngc` and `ng` already do this transformation. Fixes: #21811 PR Close #21812
		
			
				
	
	
		
			37 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.4 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 * as ts from 'typescript';
 | |
| 
 | |
| import {createLanguageService} from '../src/language_service';
 | |
| import {ReflectorHost} from '../src/reflector_host';
 | |
| import {Completions, LanguageService} from '../src/types';
 | |
| import {TypeScriptServiceHost} from '../src/typescript_host';
 | |
| 
 | |
| import {toh} from './test_data';
 | |
| import {MockTypescriptHost} from './test_utils';
 | |
| 
 | |
| describe('reflector_host_spec', () => {
 | |
| 
 | |
|   // Regression #21811
 | |
|   it('should be able to find angular under windows', () => {
 | |
|     const originalJoin = path.join;
 | |
|     let mockHost = new MockTypescriptHost(
 | |
|         ['/app/main.ts', '/app/parsing-cases.ts'], toh, 'app/node_modules',
 | |
|         {...path, join: (...args: string[]) => originalJoin.apply(path, args)});
 | |
|     let service = ts.createLanguageService(mockHost);
 | |
|     let ngHost = new TypeScriptServiceHost(mockHost, service);
 | |
|     let ngService = createLanguageService(ngHost);
 | |
|     const reflectorHost = new ReflectorHost(() => undefined as any, mockHost, {basePath: '\\app'});
 | |
| 
 | |
|     spyOn(path, 'join').and.callFake((...args: string[]) => { return path.win32.join(...args); });
 | |
|     const result = reflectorHost.moduleNameToFileName('@angular/core');
 | |
|     expect(result).not.toBeNull('could not find @angular/core using path.win32');
 | |
|   });
 | |
| }); |