72 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import {ddescribe, describe, it, iit, expect, beforeEach} from '@angular/core/testing';
 | 
						|
import {ViewResolver} from '@angular/compiler/src/view_resolver';
 | 
						|
import {Component, ViewMetadata} from '@angular/core/src/metadata';
 | 
						|
 | 
						|
class SomeDir {}
 | 
						|
class SomePipe {}
 | 
						|
 | 
						|
@Component({
 | 
						|
  selector: 'sample',
 | 
						|
  template: "some template",
 | 
						|
  directives: [SomeDir],
 | 
						|
  pipes: [SomePipe],
 | 
						|
  styles: ["some styles"]
 | 
						|
})
 | 
						|
class ComponentWithView {
 | 
						|
}
 | 
						|
 | 
						|
@Component({
 | 
						|
  selector: 'sample',
 | 
						|
  template: "some template",
 | 
						|
  directives: [SomeDir],
 | 
						|
  pipes: [SomePipe],
 | 
						|
  styles: ["some styles"]
 | 
						|
})
 | 
						|
class ComponentWithTemplate {
 | 
						|
}
 | 
						|
 | 
						|
@Component({selector: 'sample', template: "some template"})
 | 
						|
class ComponentWithViewTemplate {
 | 
						|
}
 | 
						|
 | 
						|
@Component({selector: 'sample', templateUrl: "some template url", template: "some template"})
 | 
						|
class ComponentWithViewTemplateUrl {
 | 
						|
}
 | 
						|
 | 
						|
@Component({selector: 'sample'})
 | 
						|
class ComponentWithoutView {
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
class SimpleClass {}
 | 
						|
 | 
						|
export function main() {
 | 
						|
  describe("ViewResolver", () => {
 | 
						|
    var resolver: ViewResolver;
 | 
						|
 | 
						|
    beforeEach(() => { resolver = new ViewResolver(); });
 | 
						|
 | 
						|
    it('should read out the View metadata from the Component metadata', () => {
 | 
						|
      var viewMetadata = resolver.resolve(ComponentWithTemplate);
 | 
						|
      expect(viewMetadata)
 | 
						|
          .toEqual(new ViewMetadata({
 | 
						|
            template: "some template",
 | 
						|
            directives: [SomeDir],
 | 
						|
            pipes: [SomePipe],
 | 
						|
            styles: ["some styles"]
 | 
						|
          }));
 | 
						|
    });
 | 
						|
 | 
						|
    it('should throw when Component has no View decorator and no template is set', () => {
 | 
						|
      expect(() => resolver.resolve(ComponentWithoutView))
 | 
						|
          .toThrowErrorWith(
 | 
						|
              "Component 'ComponentWithoutView' must have either 'template' or 'templateUrl' set");
 | 
						|
    });
 | 
						|
 | 
						|
    it('should throw when simple class has no View decorator and no template is set', () => {
 | 
						|
      expect(() => resolver.resolve(SimpleClass))
 | 
						|
          .toThrowErrorWith("Could not compile 'SimpleClass' because it is not a component.");
 | 
						|
    });
 | 
						|
  });
 | 
						|
}
 |