The output of the compiler has to be the same given the same input. Requiring a unique id for every type already during compilation makes it hard to parallelize compilation. Part of #3605 Closes #4397
		
			
				
	
	
		
			89 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import {
 | 
						|
  AsyncTestCompleter,
 | 
						|
  beforeEach,
 | 
						|
  ddescribe,
 | 
						|
  describe,
 | 
						|
  el,
 | 
						|
  expect,
 | 
						|
  iit,
 | 
						|
  inject,
 | 
						|
  it,
 | 
						|
  xit,
 | 
						|
  TestComponentBuilder
 | 
						|
} from 'angular2/test_lib';
 | 
						|
 | 
						|
import {
 | 
						|
  CompileDirectiveMetadata,
 | 
						|
  CompileTypeMetadata,
 | 
						|
  CompileTemplateMetadata
 | 
						|
} from 'angular2/src/compiler/directive_metadata';
 | 
						|
import {ViewEncapsulation} from 'angular2/src/core/render/api';
 | 
						|
import {ChangeDetectionStrategy} from 'angular2/src/core/change_detection';
 | 
						|
import {LifecycleHooks} from 'angular2/src/core/compiler/interfaces';
 | 
						|
 | 
						|
export function main() {
 | 
						|
  describe('DirectiveMetadata', () => {
 | 
						|
    var fullTypeMeta: CompileTypeMetadata;
 | 
						|
    var fullTemplateMeta: CompileTemplateMetadata;
 | 
						|
    var fullDirectiveMeta: CompileDirectiveMetadata;
 | 
						|
 | 
						|
    beforeEach(() => {
 | 
						|
      fullTypeMeta = new CompileTypeMetadata({name: 'SomeType', moduleId: 'someUrl'});
 | 
						|
      fullTemplateMeta = new CompileTemplateMetadata({
 | 
						|
        encapsulation: ViewEncapsulation.Emulated,
 | 
						|
        template: '<a></a>',
 | 
						|
        templateUrl: 'someTemplateUrl',
 | 
						|
        styles: ['someStyle'],
 | 
						|
        styleUrls: ['someStyleUrl'],
 | 
						|
        ngContentSelectors: ['*']
 | 
						|
      });
 | 
						|
      fullDirectiveMeta = CompileDirectiveMetadata.create({
 | 
						|
        selector: 'someSelector',
 | 
						|
        isComponent: true,
 | 
						|
        dynamicLoadable: true,
 | 
						|
        type: fullTypeMeta, template: fullTemplateMeta,
 | 
						|
        changeDetection: ChangeDetectionStrategy.Default,
 | 
						|
        properties: ['someProp'],
 | 
						|
        events: ['someEvent'],
 | 
						|
        host: {'(event1)': 'handler1', '[prop1]': 'expr1', 'attr1': 'attrValue2'},
 | 
						|
        lifecycleHooks: [LifecycleHooks.OnChanges]
 | 
						|
      });
 | 
						|
 | 
						|
    });
 | 
						|
 | 
						|
    describe('DirectiveMetadata', () => {
 | 
						|
      it('should serialize with full data', () => {
 | 
						|
        expect(CompileDirectiveMetadata.fromJson(fullDirectiveMeta.toJson()))
 | 
						|
            .toEqual(fullDirectiveMeta);
 | 
						|
      });
 | 
						|
 | 
						|
      it('should serialize with no data', () => {
 | 
						|
        var empty = CompileDirectiveMetadata.create();
 | 
						|
        expect(CompileDirectiveMetadata.fromJson(empty.toJson())).toEqual(empty);
 | 
						|
      });
 | 
						|
    });
 | 
						|
 | 
						|
    describe('TypeMetadata', () => {
 | 
						|
      it('should serialize with full data', () => {
 | 
						|
        expect(CompileTypeMetadata.fromJson(fullTypeMeta.toJson())).toEqual(fullTypeMeta);
 | 
						|
      });
 | 
						|
 | 
						|
      it('should serialize with no data', () => {
 | 
						|
        var empty = new CompileTypeMetadata();
 | 
						|
        expect(CompileTypeMetadata.fromJson(empty.toJson())).toEqual(empty);
 | 
						|
      });
 | 
						|
    });
 | 
						|
 | 
						|
    describe('TemplateMetadata', () => {
 | 
						|
      it('should serialize with full data', () => {
 | 
						|
        expect(CompileTemplateMetadata.fromJson(fullTemplateMeta.toJson()))
 | 
						|
            .toEqual(fullTemplateMeta);
 | 
						|
      });
 | 
						|
 | 
						|
      it('should serialize with no data', () => {
 | 
						|
        var empty = new CompileTemplateMetadata();
 | 
						|
        expect(CompileTemplateMetadata.fromJson(empty.toJson())).toEqual(empty);
 | 
						|
      });
 | 
						|
    });
 | 
						|
  });
 | 
						|
} |