65 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			65 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| 
								 | 
							
								import {
							 | 
						||
| 
								 | 
							
								  beforeEach,
							 | 
						||
| 
								 | 
							
								  ddescribe,
							 | 
						||
| 
								 | 
							
								  describe,
							 | 
						||
| 
								 | 
							
								  expect,
							 | 
						||
| 
								 | 
							
								  iit,
							 | 
						||
| 
								 | 
							
								  inject,
							 | 
						||
| 
								 | 
							
								  it,
							 | 
						||
| 
								 | 
							
								  xit,
							 | 
						||
| 
								 | 
							
								} from '@angular/core/testing/testing_internal';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import {DartImportGenerator} from '@angular/compiler/src/output/dart_imports';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export function main() {
							 | 
						||
| 
								 | 
							
								  describe('DartImportGenerator', () => {
							 | 
						||
| 
								 | 
							
								    describe('getImportPath', () => {
							 | 
						||
| 
								 | 
							
								      var generator: DartImportGenerator;
							 | 
						||
| 
								 | 
							
								      beforeEach(() => { generator = new DartImportGenerator(); });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      it('should calculate relative paths Dart', () => {
							 | 
						||
| 
								 | 
							
								        expect(generator.getImportPath('asset:somePkg/lib/modPath', 'asset:somePkg/lib/impPath'))
							 | 
						||
| 
								 | 
							
								            .toEqual('impPath');
							 | 
						||
| 
								 | 
							
								      });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      it('should calculate relative paths for different constellations', () => {
							 | 
						||
| 
								 | 
							
								        expect(generator.getImportPath('asset:somePkg/test/modPath', 'asset:somePkg/test/impPath'))
							 | 
						||
| 
								 | 
							
								            .toEqual('impPath');
							 | 
						||
| 
								 | 
							
								        expect(
							 | 
						||
| 
								 | 
							
								            generator.getImportPath('asset:somePkg/lib/modPath', 'asset:somePkg/lib/dir2/impPath'))
							 | 
						||
| 
								 | 
							
								            .toEqual('dir2/impPath');
							 | 
						||
| 
								 | 
							
								        expect(
							 | 
						||
| 
								 | 
							
								            generator.getImportPath('asset:somePkg/lib/dir1/modPath', 'asset:somePkg/lib/impPath'))
							 | 
						||
| 
								 | 
							
								            .toEqual('../impPath');
							 | 
						||
| 
								 | 
							
								        expect(generator.getImportPath('asset:somePkg/lib/dir1/modPath',
							 | 
						||
| 
								 | 
							
								                                       'asset:somePkg/lib/dir2/impPath'))
							 | 
						||
| 
								 | 
							
								            .toEqual('../dir2/impPath');
							 | 
						||
| 
								 | 
							
								      });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      it('should calculate absolute paths', () => {
							 | 
						||
| 
								 | 
							
								        expect(
							 | 
						||
| 
								 | 
							
								            generator.getImportPath('asset:somePkg/lib/modPath', 'asset:someOtherPkg/lib/impPath'))
							 | 
						||
| 
								 | 
							
								            .toEqual('package:someOtherPkg/impPath');
							 | 
						||
| 
								 | 
							
								      });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      it('should not allow absolute imports of non lib modules', () => {
							 | 
						||
| 
								 | 
							
								        expect(() => generator.getImportPath('asset:somePkg/lib/modPath',
							 | 
						||
| 
								 | 
							
								                                             'asset:somePkg/test/impPath'))
							 | 
						||
| 
								 | 
							
								            .toThrowError(
							 | 
						||
| 
								 | 
							
								                `Can't import url asset:somePkg/test/impPath from asset:somePkg/lib/modPath`);
							 | 
						||
| 
								 | 
							
								      });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      it('should not allow non asset urls as base url', () => {
							 | 
						||
| 
								 | 
							
								        expect(
							 | 
						||
| 
								 | 
							
								            () => generator.getImportPath('http:somePkg/lib/modPath', 'asset:somePkg/test/impPath'))
							 | 
						||
| 
								 | 
							
								            .toThrowError(`Url http:somePkg/lib/modPath is not a valid asset: url`);
							 | 
						||
| 
								 | 
							
								      });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      it('should allow non asset urls as import urls and pass them through', () => {
							 | 
						||
| 
								 | 
							
								        expect(generator.getImportPath('asset:somePkg/lib/modPath', 'dart:html'))
							 | 
						||
| 
								 | 
							
								            .toEqual('dart:html');
							 | 
						||
| 
								 | 
							
								      });
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								}
							 |