| 
									
										
										
										
											2018-01-26 14:12:46 -08:00
										 |  |  | /** | 
					
						
							|  |  |  |  * @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 {ReflectorHost} from '../src/reflector_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)}); | 
					
						
							|  |  |  |     const reflectorHost = new ReflectorHost(() => undefined as any, mockHost, {basePath: '\\app'}); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-25 15:07:39 +02:00
										 |  |  |     if (process.platform !== 'win32') { | 
					
						
							|  |  |  |       // If we call this in Windows it will cause a 'Maximum call stack size exceeded error'
 | 
					
						
							|  |  |  |       // Because we are spying on the same function that we are call faking
 | 
					
						
							|  |  |  |       spyOn(path, 'join').and.callFake((...args: string[]) => { return path.win32.join(...args); }); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-26 14:12:46 -08:00
										 |  |  |     const result = reflectorHost.moduleNameToFileName('@angular/core'); | 
					
						
							|  |  |  |     expect(result).not.toBeNull('could not find @angular/core using path.win32'); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | }); |